openpond-sdk 0.12.18 → 0.12.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/TRAINING_WORKFLOWS.md +15 -0
  2. package/dist/{chunk-EBB36D5X.js → chunk-LEVXD73U.js} +5 -3
  3. package/dist/chunk-LEVXD73U.js.map +1 -0
  4. package/dist/{chunk-JMXFHO2W.js → chunk-QCRNQMN4.js} +2 -2
  5. package/dist/{chunk-UVQENVTW.js → chunk-YV6PPDXZ.js} +25 -4
  6. package/dist/chunk-YV6PPDXZ.js.map +1 -0
  7. package/dist/model-starter-catalog.js +2 -2
  8. package/dist/model-starters.js +2 -2
  9. package/dist/training-bundle.js +2 -2
  10. package/dist/training.js +19 -10
  11. package/dist/training.js.map +1 -1
  12. package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts +52 -0
  13. package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts.map +1 -1
  14. package/dist/types/packages/sdk/src/training-experiment-learning-intent.d.ts +10 -0
  15. package/dist/types/packages/sdk/src/training-experiment-learning-intent.d.ts.map +1 -1
  16. package/dist/types/packages/sdk/src/training-experiment-learning.d.ts +16 -0
  17. package/dist/types/packages/sdk/src/training-experiment-learning.d.ts.map +1 -1
  18. package/dist/types/packages/sdk/src/training-experiment-setup.d.ts +30 -0
  19. package/dist/types/packages/sdk/src/training-experiment-setup.d.ts.map +1 -1
  20. package/dist/types/packages/sdk/src/training-job-contracts.d.ts +18 -0
  21. package/dist/types/packages/sdk/src/training-job-contracts.d.ts.map +1 -1
  22. package/dist/types/packages/sdk/src/training-supervised.d.ts +25 -2
  23. package/dist/types/packages/sdk/src/training-supervised.d.ts.map +1 -1
  24. package/dist/types/packages/sdk/src/training.d.ts +19 -1
  25. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/chunk-EBB36D5X.js.map +0 -1
  28. package/dist/chunk-UVQENVTW.js.map +0 -1
  29. /package/dist/{chunk-JMXFHO2W.js.map → chunk-QCRNQMN4.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/managed-serving-usage.ts","../src/engram-model-serving.ts","../src/engram-model-version.ts","../src/engram-adapter.ts","../src/neuron-steering.ts","../src/model-serving-pool.ts","../src/engram-inference.ts","../src/steering-profile-publication.ts","../src/steering-experiment-source.ts","../src/steering-model-selection.ts","../src/activation-reference.ts","../src/training-result.ts","../src/decision-model-version.ts","../src/decision-model-training.ts","../src/decision-model.ts","../src/decision-model-data.ts","../src/decision-model-artifact.ts","../src/decision-experiment-draft.ts","../src/weight-model-versions.ts","../src/alphaedit.ts","../src/alphaedit-artifact.ts","../src/neuron-training.ts","../src/neuron-training-result.ts","../src/neuron-training-artifact.ts","../src/alphaedit-experiment-draft.ts","../src/neuron-training-experiment-draft.ts","../src/experiment-result-reference.ts","../src/model-modification-capabilities.ts","../src/experiment-draft-storage.ts","../src/training-experiment-setup.ts","../src/training-preparations.ts","../src/evaluation-experiment-draft.ts","../src/hosted-evaluation-experiment-draft.ts","../src/activation-experiment-draft.ts","../src/engram-experiment-draft.ts","../src/training-experiment-learning-intent.ts","../src/steering-experiment-source-verification.ts","../src/experiment-starting-model.ts","../src/managed-modification-executions.ts","../src/managed-modification-compilation.ts","../src/managed-engram-executions.ts","../src/managed-decision-executions.ts","../src/managed-alphaedit-executions.ts","../src/managed-neuron-training-executions.ts","../src/alphaedit-model-serving.ts","../src/weight-inference.ts","../src/neuron-training-model-serving.ts","../src/decision-model-scoring.ts","../src/decision-model-serving.ts","../src/decision-experiment-authoring.ts","../src/weight-experiment-authoring.ts","../src/engram-experiment-authoring.ts","../src/training-executions.ts","../src/training-acceptance.ts","../src/training.ts","../src/training-experiment-learning.ts","../src/training-estimates.ts","../src/training-estimate-workload.ts","../src/training-funding.ts","../src/dataset-training-review.ts","../src/training-model-save.ts","../src/training-model-serving.ts","../src/training-model-serving-control.ts","../src/steering-model-serving.ts","../src/steering-inference.ts","../src/neuron-residual-calibration.ts","../src/neuron-calibration-records.ts","../src/activation-result-comparison.ts","../src/modification-recordings.ts","../src/training-hardware-catalog.ts","../src/training-harness-sources.ts","../src/training-candidate-decisions.ts","../src/training-evaluation-results.ts","../src/activation-form-compiler.ts","../src/steering-experiment-authoring.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ComputeAppliedPriceSchema, canonicalComputeSpendCap } from \"./managed-compute-price.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nfunction computeUsdMicros(value: string): number {\n if (!/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/.test(value) || value.length > 24)\n throw new Error(\"invalid_compute_amount\");\n const [whole, fraction = \"\"] = value.split(\".\");\n const micros = BigInt(whole!) * 1_000_000n + BigInt(fraction.padEnd(6, \"0\"));\n if (micros > BigInt(Number.MAX_SAFE_INTEGER)) throw new Error(\"invalid_compute_amount\");\n return Number(micros);\n}\nfunction normalizedComputeUsd(value: string): string {\n const micros = BigInt(computeUsdMicros(value));\n return `${micros / 1_000_000n}.${(micros % 1_000_000n).toString().padStart(6, \"0\")}`;\n}\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Image = z.string().regex(/^sha256:[a-f0-9]{64}$/);\nconst Timestamp = z.iso\n .datetime()\n .refine((value) => new Date(value).toISOString() === value);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)\\.\\d{6}$/).max(24).refine((value) => {\n try {\n return normalizedComputeUsd(value) === value;\n } catch {\n return false;\n }\n});\nexport const ManagedServingUsageMethodSchema = z.enum([\n \"training\",\n \"steering\",\n \"engram\",\n \"decision\",\n \"alphaedit\",\n \"selective_neuron_training\",\n]);\nexport type ManagedServingUsageMethod = z.infer<\n typeof ManagedServingUsageMethodSchema\n>;\nexport const ManagedServingUsagePriceSchema = ComputeAppliedPriceSchema.extend({\n service: z.literal(\"model_serving\"),\n});\n\n/** Portable review. Provider account, Pod identity and allocation credentials\n * remain in the private physical owner, never in customer approval documents. */\nexport const ManagedServingUsageReviewSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageReview.v1\"),\n teamId: Id,\n modelProjectId: Id,\n versionHash: Hash,\n method: ManagedServingUsageMethodSchema,\n price: ManagedServingUsagePriceSchema,\n runtimeHash: Hash,\n workerImageDigest: Image,\n providerConfigurationHash: Hash,\n idleTimeoutSeconds: z.literal(300),\n rules: z\n .object({\n billableStart: z.literal(\"provider_allocation\"),\n startupBillable: z.literal(true),\n idleBillable: z.literal(true),\n explicitStop: z.literal(\"logical_admission_closed\"),\n postTrainingReuseBillable: z.literal(false),\n minimumBillableMillis: z.literal(0),\n tokenRetailUsd: z.literal(\"0.000000\"),\n })\n .strict(),\n nativeControl: z\n .object({\n protocol: z.literal(\"openpond.workerComputeControl.v1\"),\n executionLeaseMillis: z.literal(30000),\n stopHeadroomMillis: z.literal(60000),\n qualificationHash: Hash,\n })\n .strict(),\n workDeadlineAt: Timestamp,\n expiresAt: Timestamp,\n contentHash: Hash,\n })\n .strict();\nexport type ManagedServingUsageReview = z.infer<\n typeof ManagedServingUsageReviewSchema\n>;\n\n/** Omitted usageApproval retains the original token-billed serving contract.\n * The field, when present, is an explicit price/context approval; null cap means\n * available shared credit, while a positive cap limits cumulative retail. */\nexport const ManagedServingUsageApprovalSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageApproval.v1\"),\n reviewHash: Hash,\n customerCapUsd: Money.refine(\n (value) => computeUsdMicros(value) > 0,\n ).nullable(),\n })\n .strict();\nexport type ManagedServingUsageApproval = z.infer<\n typeof ManagedServingUsageApprovalSchema\n>;\n\nexport const ManagedServingUsageSnapshotSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsage.v1\"),\n deploymentKey: Id,\n reviewHash: Hash,\n price: ManagedServingUsagePriceSchema,\n customerCapUsd: Money.nullable(),\n fundingState: z.enum([\"pending\", \"active\", \"exhausted\", \"closed\"]),\n stopReason: z\n .enum([\n \"explicit_stop\",\n \"idle_timeout\",\n \"credit_exhausted\",\n \"cap_reached\",\n \"control_expired\",\n \"policy_changed\",\n \"member_cap_reached\",\n \"native_unavailable\",\n \"work_deadline\",\n ])\n .nullable(),\n startedAt: Timestamp.nullable(),\n lastActivityAt: Timestamp.nullable(),\n idleExpiresAt: Timestamp.nullable(),\n billableStoppedAt: Timestamp.nullable(),\n quantityMillis: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),\n chargedUsd: Money,\n reservationId: Id.nullable(),\n })\n .strict();\nexport type ManagedServingUsageSnapshot = z.infer<\n typeof ManagedServingUsageSnapshotSchema\n>;\n\nexport const ManagedServingUsageReviewResultSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageReviewResult.v1\"),\n availability: z.enum([\"reviewable\", \"unavailable\"]),\n reason: Id.nullable(),\n review: ManagedServingUsageReviewSchema.nullable(),\n usage: ManagedServingUsageSnapshotSchema.nullable(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (\n (value.availability === \"reviewable\") !== (value.review !== null) ||\n (value.availability === \"reviewable\") !== (value.reason === null)\n )\n ctx.addIssue({\n code: \"custom\",\n message: \"Serving price review availability is inconsistent\",\n });\n });\n\nexport type ManagedServingUsageReviewResult = z.infer<typeof ManagedServingUsageReviewResultSchema>;\n\n/** Validate nested price context as well as the containing status receipt hash. */\nexport async function verifyManagedServingUsageBilling(\n value: ManagedServingUsageReviewResult | undefined,\n expected: { teamId: string; modelProjectId: string; versionHash: string; method: ManagedServingUsageMethod },\n control?: { usage?: ManagedServingUsageSnapshot } | null,\n) {\n if (!value) return;\n const { review, usage } = ManagedServingUsageReviewResultSchema.parse(value);\n if (await canonicalSha256(usage) !== await canonicalSha256(control?.usage ?? null))\n throw new OpenPondProtocolError(\"managed_serving_usage_mismatch\", \"Serving usage differs from the retained deployment owner.\");\n if (!review) return;\n const { contentHash, ...content } = review;\n if (contentHash !== await canonicalSha256(content) ||\n review.teamId !== expected.teamId || review.modelProjectId !== expected.modelProjectId ||\n review.versionHash !== expected.versionHash || review.method !== expected.method ||\n Date.parse(review.expiresAt) > Date.parse(review.workDeadlineAt) ||\n usage && (usage.reviewHash !== contentHash || await canonicalSha256(usage.price) !== await canonicalSha256(review.price)))\n throw new OpenPondProtocolError(\"managed_serving_usage_mismatch\", \"Serving pricing differs from the exact saved Model, runtime or accepted terms.\");\n}\n\n/** A successful activation must retain the exact reviewed cap and price owner. */\nexport function managedServingUsageApprovalMatches(\n request: { action: \"activate\" | \"stop\"; usageApproval?: ManagedServingUsageApproval },\n control: { usage?: ManagedServingUsageSnapshot },\n) {\n if (request.action === \"stop\") return true;\n const approved = request.usageApproval, usage = control.usage;\n if (!approved) return usage === undefined;\n return Boolean(usage && usage.reviewHash === approved.reviewHash && usage.customerCapUsd === approved.customerCapUsd);\n}\n\n/** Accept a fresh verified price without reserving credit or starting serving. */\nexport async function createManagedServingUsageApproval(\n rawReview: ManagedServingUsageReview,\n spendingLimit?: string | null,\n): Promise<ManagedServingUsageApproval> {\n const review = ManagedServingUsageReviewSchema.parse(rawReview);\n const { contentHash, ...content } = review;\n if (contentHash !== await canonicalSha256(content) || Date.parse(review.expiresAt) <= Date.now() ||\n Date.parse(review.workDeadlineAt) <= Date.now())\n throw new OpenPondProtocolError(\"managed_serving_review_expired\", \"Refresh the exact Model's serving price before activation.\");\n return ManagedServingUsageApprovalSchema.parse({\n schemaVersion: \"openpond.managedServingUsageApproval.v1\",\n reviewHash: contentHash,\n customerCapUsd: canonicalComputeSpendCap(spendingLimit),\n });\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EngramModelVersionSchema, parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { EngramInferenceReceiptSchema, parseAndVerifyResolvedEngramSelection } from \"./engram-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nconst Timestamp = z.iso.datetime();\n\nexport const EngramModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n defaultEnabled: z.boolean(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type EngramModelServingControlRequest = z.infer<typeof EngramModelServingControlRequestSchema>;\nexport const EngramModelServingControlIntentSchema = EngramModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const EngramModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: EngramModelServingControlRequestSchema }).strict();\n\nexport const EngramModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), defaultEnabled: z.boolean(),\n desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: Timestamp,\n}).strict();\nexport type EngramModelServingControl = z.infer<typeof EngramModelServingControlSchema>;\n\nexport const EngramServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: Id, poolId: Id, versionHash: Hash,\n}).strict();\nexport const EngramServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"module_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const EngramModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: Timestamp, version: EngramModelVersionSchema,\n defaultEnabled: z.boolean(),\n availability: EngramServingAvailabilitySchema,\n control: EngramModelServingControlSchema.nullable(), cleanup: z.array(EngramModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(EngramServingBindingSchema).max(100),\n lastVerifiedInference: EngramInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const EngramModelServingSchema = EngramModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type EngramModelServing = z.infer<typeof EngramModelServingSchema>;\nexport const EngramModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramModelServingControlReceipt.v1\"),\n teamId: Id, modelProjectId: Id, actorId: Id,\n request: EngramModelServingControlRequestSchema, version: EngramModelVersionSchema,\n control: EngramModelServingControlSchema,\n}).strict();\nexport const EngramModelServingControlReceiptSchema = EngramModelServingControlReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type EngramModelServingControlReceipt = z.infer<typeof EngramModelServingControlReceiptSchema>;\n\nfunction validControl(value: EngramModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n\nexport function engramModelServingState(value: Pick<EngramModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): EngramModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\n\nexport async function parseAndVerifyEngramModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: EngramModelServingControlRequest; actorId?: string;\n}) {\n const value = EngramModelServingControlReceiptSchema.parse(raw), request = EngramModelServingControlRequestSchema.parse(expected.request);\n const {contentHash, ...content} = value, control = value.control;\n await parseAndVerifyEngramModelVersion(value.version, {teamId: request.teamId, modelProjectId: expected.modelProjectId});\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId\n || control.actorId !== value.actorId || control.operationId !== request.operationId || control.versionHash !== request.versionHash\n || control.revision !== request.expectedRevision + 1 || control.idleTimeoutSeconds !== request.idleTimeoutSeconds\n || control.defaultEnabled !== request.defaultEnabled || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"engram_serving_control_mismatch\", \"The serving receipt differs from the exact memory Model or original command.\");\n return value;\n}\n\nexport async function parseAndVerifyEngramModelServing(raw: unknown, expected: {teamId: string; modelProjectId: string; versionHash: string}) {\n const value = EngramModelServingSchema.parse(raw), {contentHash, ...content} = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"engram\" }, value.control);\n await parseAndVerifyEngramModelVersion(value.version, expected);\n function fail(): never {throw new OpenPondProtocolError(\"engram_model_serving_mismatch\", \"The serving evidence differs from the exact memory Model or retained capacity.\");}\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== engramModelServingState(value)\n || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && (control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")\n || control.versionHash === expected.versionHash && control.defaultEnabled !== value.defaultEnabled)) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding && !value.bindings.some(row => row.id === control.binding!.id && row.revision === control.binding!.revision\n && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n parseAndVerifyResolvedEngramSelection(inference.selection, {savedModel: inference.selection.savedModel,\n ...(inference.selection.requested === \"inherit\" ? {} : {engram: inference.selection.requested === \"on\"})});\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || inference.selection.savedModel.modelProjectId !== expected.modelProjectId || inference.selection.savedModel.versionHash !== expected.versionHash\n || inference.selection.module.id !== value.version.artifact.id || inference.selection.module.contentHash !== value.version.artifact.contentHash\n || inference.selection.module.payloadSha256 !== value.version.artifact.manifest.payload.sha256\n || inference.selection.modelHash !== await canonicalSha256(value.version.artifact.manifest.pins.baseModel)\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createEngramModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {async controlEngramModelServing(modelProjectId: string, raw: EngramModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = EngramModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyEngramModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body),\n }), {modelProjectId: id, request: body});\n }};\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EngramTrainingResultSchema, parseAndVerifyEngramAdapterArtifact } from \"./engram-adapter.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const EngramModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramModelVersion.v1\"), teamId: Id, ownerUserId: Id,\n modelProjectId: Id, portableProjectId: Id, baseModel: ModelProjectBaseModelSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash}).strict(),\n artifact: EngramTrainingResultSchema.shape.artifact, createdAt: z.iso.datetime(),\n}).strict();\nexport const EngramModelVersionSchema = EngramModelVersionContentSchema.extend({contentHash: Hash});\nexport type EngramModelVersion = z.infer<typeof EngramModelVersionSchema>;\nexport const SavedEngramExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type SavedEngramExperimentSource = z.infer<typeof SavedEngramExperimentSourceSchema>;\nexport async function parseAndVerifyEngramModelVersion(raw: unknown, expected: {teamId?: string; modelProjectId?: string; ownerUserId?: string} = {}) {\n const value = EngramModelVersionSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyEngramAdapterArtifact(value.artifact.manifest);\n const files = value.artifact.files, metadata = files.find(file => file.path === \"manifest.json\"), tensor = files.find(file => file.path === \"adapter.safetensors\");\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId\n || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId || expected.ownerUserId && value.ownerUserId !== expected.ownerUserId\n || value.baseModel.modelId !== manifest.pins.baseModel.modelId || value.baseModel.revision !== manifest.pins.baseModel.revision\n || value.source.runtimeHash !== manifest.pins.runtimeHash || value.artifact.contentHash !== manifest.contentHash\n || !metadata || !tensor || metadata.sha256 !== await canonicalSha256(manifest)\n || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || files.some(file => file.artifactId !== value.artifact.id))\n throw new OpenPondProtocolError(\"engram_model_version_mismatch\", \"The saved Model differs from its exact trained memory module.\");\n return value;\n}\nexport const EngramResultSaveRequestSchema = z.object({\n teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the exact existing Model revision, or create a new Model.\"});\nexport type EngramResultSaveRequest = z.infer<typeof EngramResultSaveRequestSchema>;\nexport const EngramResultSaveReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramResultSaveReceipt.v1\"), teamId: Id, actorId: Id,\n operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema, version: EngramModelVersionSchema,\n}).strict();\nexport const EngramResultSaveReceiptSchema = EngramResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type EngramResultSaveReceipt = z.infer<typeof EngramResultSaveReceiptSchema>;\nexport async function parseAndVerifyEngramResultSaveReceipt(raw: unknown, input: EngramResultSaveRequest) {\n const request = EngramResultSaveRequestSchema.parse(input), value = EngramResultSaveReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyEngramModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || value.operationId !== request.operationId || value.requestHash !== await canonicalSha256(request)\n || value.version.source.executionId !== request.executionId || value.version.source.resultHash !== request.resultHash\n || value.version.artifact.contentHash !== request.artifactHash || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1 || request.modelProjectId && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"engram_model_save_mismatch\", \"The saved Model differs from the original execution, module or Model revision.\");\n return value;\n}\nexport function createEngramModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveEngramResultModel(raw: EngramResultSaveRequest) {\n const body = EngramResultSaveRequestSchema.parse(raw);\n return parseAndVerifyEngramResultSaveReceipt(await request(`/v1/training/modification-executions/${encodeURIComponent(body.executionId)}/model`, {\n method: \"POST\", body: canonicalJson(body),\n }), body);\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\nexport const ENGRAM_ADAPTER_MAX_BYTES = 2_147_483_648;\n\n/** Independent implementation of arXiv:2608.29327v1, section 3 and appendix B.\n * Explicit boundary, initialization and history choices identify this runtime;\n * the paper's reported retention is not a guarantee for a trained module. */\nexport const EngramAdapterConfigSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramAdapterConfig.v1\"),\n implementation: z.literal(\"openpond_qwen_engram_paper_v1\"),\n hook: z.literal(\"self_attn.input\"),\n injectLayers: z.tuple([z.literal(1), z.literal(3), z.literal(7), z.literal(15)]),\n suffixOrders: z.tuple([z.literal(2), z.literal(3)]),\n previousOrders: z.tuple([z.literal(3)]),\n numHashes: z.literal(4), tableSize: z.literal(90_007),\n perHashDim: z.union([z.literal(128), z.literal(256)]),\n alpha: z.literal(0.2), memoryInitStd: z.literal(0.02),\n adapterDtype: z.literal(\"float32\"), projectionInit: z.literal(\"zeros\"),\n gateInit: z.literal(\"zeros_no_bias\"), boundary: z.literal(\"incomplete_group_off_v1\"),\n occupancy: z.literal(\"training_before_lookup_v1\"),\n history: z.literal(\"request_absolute_positions_v1\"), batchSize: z.literal(1),\n}).strict();\nexport type EngramAdapterConfig = z.infer<typeof EngramAdapterConfigSchema>;\n\nexport const EngramTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.001),\n weightDecay: z.number().finite().min(0).max(0.1),\n maxSteps: z.number().int().min(1).max(128),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n maxSequenceLength: z.number().int().min(2).max(8192),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n}).strict();\nexport type EngramTrainingSettings = z.infer<typeof EngramTrainingSettingsSchema>;\nexport const EngramTrainingDataSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport const EngramArtifactReferenceSchema = z.object({ id: Id, contentHash: Hash }).strict();\nexport const EngramTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramTrainingRequest.v1\"),\n model: NeuronSteeringModelSchema,\n data: EngramTrainingDataSchema,\n config: EngramAdapterConfigSchema,\n training: EngramTrainingSettingsSchema,\n parentArtifact: EngramArtifactReferenceSchema.nullable(),\n}).strict().superRefine((value, context) => {\n if (value.model.intermediateSizes.length <= 15 || value.model.dtype !== \"bfloat16\")\n context.addIssue({code: \"custom\", path: [\"model\"], message: \"This Engram implementation requires the exact compatible BF16 dense base.\"});\n});\nexport type EngramTrainingRequest = z.infer<typeof EngramTrainingRequestSchema>;\n\nexport const EngramSupervisedEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramSupervisedEncoding.v1\"),\n implementation: z.literal(\"supervised_trainer.prepare_example.v1\"),\n modelHash: Hash, tokenizerHash: Hash,\n maxSequenceLength: z.number().int().min(2).max(8192),\n completionOnly: z.literal(true), enableThinking: z.literal(false),\n truncation: z.literal(\"left_prompt_preserve_final_target_v1\"),\n}).strict();\n\n/** Declares the exact existing supervised encoder. This is not a claim that\n * the caller measured tokenization or inspected private Dataset examples. */\nexport async function engramSupervisedEncoding(model: z.infer<typeof NeuronSteeringModelSchema>, maxSequenceLength: number) {\n return EngramSupervisedEncodingSchema.parse({\n schemaVersion: \"openpond.engramSupervisedEncoding.v1\",\n implementation: \"supervised_trainer.prepare_example.v1\",\n modelHash: await canonicalSha256(NeuronSteeringModelSchema.parse(model)),\n tokenizerHash: model.tokenizerHash, maxSequenceLength,\n completionOnly: true, enableThinking: false,\n truncation: \"left_prompt_preserve_final_target_v1\",\n });\n}\nexport async function parseAndVerifyEngramTrainingRequest(raw: unknown) {\n const request = EngramTrainingRequestSchema.parse(raw);\n if (request.data.encodingHash !== await canonicalSha256(await engramSupervisedEncoding(request.model, request.training.maxSequenceLength)))\n throw new OpenPondProtocolError(\"engram_encoding_mismatch\", \"The Engram request differs from its exact supervised encoder.\");\n return request;\n}\n\nexport const EngramArtifactPinsSchema = z.object({\n baseModel: NeuronSteeringModelSchema,\n adapterConfigHash: Hash, recipeHash: Hash, dataHash: Hash,\n data: EngramTrainingDataSchema, runtimeHash: Hash,\n parentArtifactHash: Hash.nullable(),\n}).strict();\nexport const EngramAdapterTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.-]{1,200}$/),\n shape: z.array(z.number().int().positive().max(10_000_000)).min(1).max(2),\n dtype: z.enum([\"F32\", \"BOOL\"]),\n}).strict();\nexport const EngramAdapterArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramAdapterArtifact.v1\"),\n method: z.literal(\"engram_adapter\"), config: EngramAdapterConfigSchema,\n pins: EngramArtifactPinsSchema,\n payload: z.object({\n path: z.literal(\"adapter.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n tensors: z.array(EngramAdapterTensorSchema).min(1).max(100),\n }).strict(),\n}).strict();\nexport const EngramAdapterArtifactSchema = EngramAdapterArtifactContentSchema.extend({contentHash: Hash});\nexport type EngramAdapterArtifact = z.infer<typeof EngramAdapterArtifactSchema>;\n\nexport function engramAdapterTensorInventory(config: EngramAdapterConfig, hiddenSize: number) {\n const parsed = EngramAdapterConfigSchema.parse(config);\n const hidden = z.number().int().positive().max(1_000_000).parse(hiddenSize);\n const items: z.infer<typeof EngramAdapterTensorSchema>[] = [];\n for (const group of [\"suffix2\", \"suffix3\", \"previous3\"]) {\n for (let head = 0; head < parsed.numHashes; head++) {\n items.push({name: `shared.embeddings.${group}.${head}.weight`, dtype: \"F32\", shape: [parsed.tableSize, parsed.perHashDim]});\n items.push({name: `shared.occupancy.${group}.h${head}`, dtype: \"BOOL\", shape: [parsed.tableSize]});\n }\n }\n const memoryWidth = 3 * parsed.numHashes * parsed.perHashDim;\n for (const layer of parsed.injectLayers) {\n items.push({name: `layers.${layer}.projection.weight`, dtype: \"F32\", shape: [hidden, memoryWidth]});\n items.push({name: `layers.${layer}.gate_memory`, dtype: \"F32\", shape: [memoryWidth]});\n items.push({name: `layers.${layer}.gate_hidden`, dtype: \"F32\", shape: [hidden]});\n }\n return items.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\n\n/** Metadata verification does not prove possession of the tensor bytes. The\n * artifact custodian must separately verify their size, digest and inventory. */\nexport async function parseAndVerifyEngramAdapterArtifact(raw: unknown, expected?: {\n request: EngramTrainingRequest; runtimeHash: string;\n}) {\n const value = EngramAdapterArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const fail = (): never => {throw new OpenPondProtocolError(\"engram_artifact_mismatch\", \"The Engram module differs from its exact configuration, data or parent.\");};\n if (contentHash !== await canonicalSha256(content)\n || value.pins.adapterConfigHash !== await canonicalSha256(value.config)\n || value.pins.dataHash !== await canonicalSha256(value.pins.data)\n || new Set(value.payload.tensors.map(row => row.name)).size !== value.payload.tensors.length\n || canonicalJson([...value.payload.tensors].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0))\n !== canonicalJson(engramAdapterTensorInventory(value.config, value.pins.baseModel.hiddenSize))) fail();\n if (expected) {\n const request = await parseAndVerifyEngramTrainingRequest(expected.request);\n if (canonicalJson(value.config) !== canonicalJson(request.config)\n || canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data)\n || value.pins.recipeHash !== await canonicalSha256(request.training)\n || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== (request.parentArtifact?.contentHash ?? null)\n || value.payload.sizeBytes > request.training.maxCheckpointBytes) fail();\n }\n return value;\n}\n\nexport const EngramModuleFileSchema = z.object({\n path: z.enum([\"manifest.json\", \"adapter.safetensors\"]),\n artifactId: Id, sha256: Hash,\n sizeBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n}).strict();\nexport const EngramTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramTrainingResult.v1\"),\n inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash,\n optimizerSteps: z.number().int().min(1).max(128),\n examplesProcessed: z.number().int().positive().max(4096),\n targetTokens: z.number().int().positive().max(33_554_432),\n forwardTokenWork: z.number().int().positive().max(100_000_000),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n baseWeightsHashBefore: Hash, baseWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n artifact: z.object({\n id: Id, contentHash: Hash, manifest: EngramAdapterArtifactSchema,\n files: z.array(EngramModuleFileSchema).length(2),\n }).strict(),\n}).strict();\nexport const EngramTrainingResultSchema = EngramTrainingResultContentSchema.extend({contentHash: Hash});\nexport type EngramTrainingResult = z.infer<typeof EngramTrainingResultSchema>;\n\n/** Successful results require exact committed file custody as well as the\n * producer's training evidence. A manifest alone is not a trained Model. */\nexport async function parseAndVerifyEngramTrainingResult(raw: unknown, expected: {\n request: EngramTrainingRequest; runtimeHash: string;\n}) {\n const request = await parseAndVerifyEngramTrainingRequest(expected.request);\n const value = EngramTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyEngramAdapterArtifact(value.artifact.manifest, expected);\n const tensor = value.artifact.files.find(file => file.path === \"adapter.safetensors\");\n const metadata = value.artifact.files.find(file => file.path === \"manifest.json\");\n if (contentHash !== await canonicalSha256(content)\n || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model)\n || value.dataHash !== await canonicalSha256(request.data)\n || value.runtimeHash !== expected.runtimeHash\n || value.optimizerSteps !== request.training.maxSteps\n || value.examplesProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.targetTokens > value.forwardTokenWork\n || value.durationMs > request.training.maxDurationSeconds * 1000\n || value.baseWeightsHashBefore !== request.model.weightsHash\n || value.baseWeightsHashAfter !== value.baseWeightsHashBefore\n || value.artifact.contentHash !== manifest.contentHash\n || !tensor || !metadata || metadata.sizeBytes > 262_144\n || metadata.sha256 !== await canonicalSha256(manifest)\n || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((total, file) => total + file.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"engram_training_result_mismatch\", \"The Engram training result differs from its exact run, frozen base or committed module.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronSteeringReferenceSchema = z.object({ id: Id, revision: z.number().int().positive(), contentHash: Hash }).strict();\n\n/** Reference identity is verified against tensor state, configuration and\n * tokenizer descriptors. It is not a registry publication or worker release. */\nexport const NeuronSteeringModelSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronSteeringModel.v1\"), modelId: Id, revision: Id,\n configHash: Hash, weightsHash: Hash, tokenizerHash: Hash,\n weightIdentity: z.literal(\"torch_state_dict_sha256_v1\"), architecture: z.literal(\"dense_decoder\"),\n dtype: z.enum([\"float32\", \"float16\", \"bfloat16\"]), quantization: z.literal(\"none\"), adapter: z.null(),\n hiddenSize: z.number().int().positive().max(1_000_000),\n intermediateSizes: z.array(z.number().int().positive().max(10_000_000)).min(1).max(512),\n}).strict();\nexport type NeuronSteeringModel = z.infer<typeof NeuronSteeringModelSchema>;\nexport const NeuronSteeringEntrySchema = z.object({\n layer: z.number().int().nonnegative().max(511), neuron: z.number().int().nonnegative().max(9_999_999), dose: z.number().finite(),\n}).strict();\nexport const NeuronSteeringTokenScopeSchema = z.object({\n phase: z.enum([\"prompt_and_decode\", \"prompt_only\", \"decode_only\"]),\n positions: z.enum([\"all_non_padding\", \"after_position_zero\"]),\n}).strict();\nexport const NeuronSteeringNormalizationSchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"baseline_prompt_residual_median\"), statistic: z.literal(\"midpoint_median_fp32\"),\n sample: z.literal(\"non_padding_prompt_after_position_zero\") }).strict(),\n z.object({ mode: z.literal(\"fixed_residual_reference\"), calibration: NeuronSteeringReferenceSchema }).strict(),\n]);\nexport const NeuronSteeringProfileContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronSteeringProfile.v1\"),\n model: NeuronSteeringModelSchema, hook: z.literal(\"mlp.down_proj.input\"), operation: z.literal(\"add\"),\n normalization: NeuronSteeringNormalizationSchema, tokenScope: NeuronSteeringTokenScopeSchema,\n entries: z.array(NeuronSteeringEntrySchema).min(1).max(64),\n}).strict().superRefine((value, ctx) => {\n const seen = new Set<string>();\n value.entries.forEach((entry, index) => {\n const key = `${entry.layer}:${entry.neuron}`;\n if (seen.has(key) || entry.layer >= value.model.intermediateSizes.length || entry.neuron >= (value.model.intermediateSizes[entry.layer] ?? 0))\n ctx.addIssue({ code: \"custom\", path: [\"entries\", index], message: \"Each coordinate must be unique and within this exact dense model.\" });\n seen.add(key);\n });\n});\nexport const NeuronSteeringProfileSchema = NeuronSteeringProfileContentSchema.safeExtend({ contentHash: Hash });\nexport type NeuronSteeringProfile = z.infer<typeof NeuronSteeringProfileSchema>;\nexport async function createNeuronSteeringProfile(raw: z.input<typeof NeuronSteeringProfileContentSchema>): Promise<NeuronSteeringProfile> {\n const content = NeuronSteeringProfileContentSchema.parse(raw);\n return { ...content, contentHash: await canonicalSha256(content) };\n}\nexport async function parseAndVerifyNeuronSteeringProfile(raw: unknown, model?: NeuronSteeringModel) {\n const value = NeuronSteeringProfileSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || model && await canonicalSha256(value.model) !== await canonicalSha256(NeuronSteeringModelSchema.parse(model)))\n throw new OpenPondProtocolError(\"neuron_steering_profile_mismatch\", \"The intervention differs from its exact model or retained payload.\");\n return value;\n}\n\nexport const NeuronResidualCalibrationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibration.v1\"), id: Id, revision: z.number().int().positive(), modelHash: Hash,\n source: z.object({ id: Id, contentHash: Hash }).strict(), statistic: z.literal(\"midpoint_median_fp32\"),\n sample: z.literal(\"non_padding_prompt_after_position_zero\"),\n layers: z.array(z.object({ layer: z.number().int().nonnegative().max(511), median: z.number().finite().positive(),\n sampleCount: z.number().int().positive() }).strict()).min(1).max(512),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.layers.map(layer => layer.layer)).size !== value.layers.length)\n ctx.addIssue({ code: \"custom\", path: [\"layers\"], message: \"Calibration layers must be unique.\" });\n});\nexport const NeuronResidualCalibrationSchema = NeuronResidualCalibrationContentSchema.safeExtend({ contentHash: Hash });\nexport type NeuronResidualCalibration = z.infer<typeof NeuronResidualCalibrationSchema>;\nexport async function parseAndVerifyNeuronResidualCalibration(raw: unknown, model: NeuronSteeringModel, reference?: z.infer<typeof NeuronSteeringReferenceSchema>) {\n const value = NeuronResidualCalibrationSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || value.modelHash !== await canonicalSha256(NeuronSteeringModelSchema.parse(model))\n || reference && (reference.id !== value.id || reference.revision !== value.revision || reference.contentHash !== value.contentHash)\n || value.layers.some(layer => layer.layer >= model.intermediateSizes.length))\n throw new OpenPondProtocolError(\"neuron_calibration_mismatch\", \"The residual calibration differs from its exact model or immutable reference.\");\n return value;\n}\n","import { z } from \"zod\";\n\n/** New serving activations use one five-minute idle window. Historical\n * requests/receipts keep their original value for exact replay and Stop. */\nexport const MODEL_SERVING_IDLE_TIMEOUT_SECONDS = 300;\n\nconst Id = z.string().trim().min(1).max(500);\n\nexport const TrainingServingPoolSchema = z.object({\n id: Id, provider: Id, state: z.enum([\"requested\", \"provisioning\", \"ready\", \"degraded\", \"deleting\", \"deleted\", \"failed\"]),\n workersMin: z.number().int().nonnegative(), workersMax: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().nonnegative(), workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),\n endpointRecorded: z.boolean(), activeDeployments: z.number().int().nonnegative(), activeBindings: z.number().int().nonnegative(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(), retirementBlocked: z.boolean(),\n}).strict();\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const EngramModuleReferenceSchema = z.object({id: Id, contentHash: Hash, payloadSha256: Hash}).strict();\nexport const SavedEngramModelSelectionSchema = z.object({modelProjectId: Id, versionHash: Hash}).strict();\n/** An omitted switch inherits the retained serving default. Each request/KV\n * namespace pins one committed module, including when the switch is Off. */\nexport const EngramInferenceOptionsSchema = z.object({\n savedModel: SavedEngramModelSelectionSchema.optional(), engram: z.boolean().optional(),\n}).strict();\nexport type EngramInferenceOptions = z.infer<typeof EngramInferenceOptionsSchema>;\nexport const ResolvedEngramSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedEngramSelection.v1\"),\n requested: z.enum([\"inherit\", \"on\", \"off\"]), savedModel: SavedEngramModelSelectionSchema,\n defaultEnabled: z.boolean(), effectiveEnabled: z.boolean(), module: EngramModuleReferenceSchema, modelHash: Hash,\n}).strict();\nexport type ResolvedEngramSelection = z.infer<typeof ResolvedEngramSelectionSchema>;\n\nexport function parseAndVerifyResolvedEngramSelection(raw: unknown, options: EngramInferenceOptions) {\n const value = ResolvedEngramSelectionSchema.parse(raw), request = EngramInferenceOptionsSchema.parse(options);\n if (value.requested !== (request.engram === undefined ? \"inherit\" : request.engram ? \"on\" : \"off\")\n || value.effectiveEnabled !== (request.engram ?? value.defaultEnabled)\n || request.savedModel && canonicalJson(request.savedModel) !== canonicalJson(value.savedModel))\n throw new OpenPondProtocolError(\"engram_selection_mismatch\", \"The admitted memory module differs from this exact Model or request.\");\n return value;\n}\n\nexport const EngramInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedEngramSelectionSchema,\n poolId: Id, routingBinding: z.object({id: Id, revision: z.number().int().positive()}).strict(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash, completedAt: z.iso.datetime(),\n}).strict();\nexport const EngramInferenceReceiptSchema = EngramInferenceReceiptContentSchema.extend({contentHash: Hash});\nexport type EngramInferenceReceipt = z.infer<typeof EngramInferenceReceiptSchema>;\nexport async function parseAndVerifyEngramInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; options: EngramInferenceOptions;\n selection: ResolvedEngramSelection; poolId: string; routingBinding: {id: string; revision: number};\n runtimeHash: string; workerImageDigest: string; engineGeneration: number; cacheNamespace: string;\n}) {\n const value = EngramInferenceReceiptSchema.parse(raw), {contentHash, ...content} = value;\n parseAndVerifyResolvedEngramSelection(value.selection, expected.options);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.requestId !== expected.requestId\n || value.requestHash !== expected.requestHash || canonicalJson(value.selection) !== canonicalJson(expected.selection)\n || value.poolId !== expected.poolId || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"engram_inference_receipt_mismatch\", \"The completed inference differs from its admitted memory module, runtime or cache.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelProjectBaseModelSchema, HostedModelProjectSummarySchema } from \"./model-projects.js\";\nimport { NeuronSteeringProfileSchema, parseAndVerifyNeuronSteeringProfile } from \"./neuron-steering.js\";\nimport { ActivationReferenceOutcomeSchema } from \"./activation-reference.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { EngramModelVersionSchema, parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { AlphaEditModelVersionSchema, NeuronTrainingModelVersionSchema,\n parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SteeringProfilePublicationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringProfilePublication.v1\"), id: Id, revision: z.literal(1),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: z.string().trim().min(1).max(200),\n baseModel: ModelProjectBaseModelSchema, profile: NeuronSteeringProfileSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash, variantId: Id}).strict(),\n calibrationEvidence: z.array(z.object({promptId: Id, calibration: ActivationReferenceOutcomeSchema.shape.calibration}).strict()).min(1).max(8),\n createdAt: z.iso.datetime(),\n}).strict();\nexport const SteeringProfilePublicationSchema = SteeringProfilePublicationContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfilePublication = z.infer<typeof SteeringProfilePublicationSchema>;\nexport async function parseAndVerifySteeringProfilePublication(raw: unknown, expected: {teamId?: string; ownerUserId?: string; id?: string} = {}) {\n const value = SteeringProfilePublicationSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyNeuronSteeringProfile(value.profile);\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId ||\n expected.ownerUserId && value.ownerUserId !== expected.ownerUserId || expected.id && value.id !== expected.id ||\n value.baseModel.modelId !== value.profile.model.modelId || value.baseModel.revision !== value.profile.model.revision ||\n new Set(value.calibrationEvidence.map(row => row.promptId)).size !== value.calibrationEvidence.length)\n throw new OpenPondProtocolError(\"steering_publication_mismatch\", \"The immutable steering profile differs from its exact source or workspace.\");\n return value;\n}\nexport const SteeringModelVersionContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringModelVersion.v1\"),\n teamId: Id, modelProjectId: Id, portableProjectId: Id, publication: SteeringProfilePublicationSchema, createdAt: z.iso.datetime()}).strict();\nexport const SteeringModelVersionSchema = SteeringModelVersionContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringModelVersion = z.infer<typeof SteeringModelVersionSchema>;\nexport const SavedModelVersionSchema = z.discriminatedUnion(\"schemaVersion\", [TrainingModelVersionSchema, SteeringModelVersionSchema, EngramModelVersionSchema, DecisionModelVersionSchema, AlphaEditModelVersionSchema, NeuronTrainingModelVersionSchema]);\nexport type SavedModelVersion = z.infer<typeof SavedModelVersionSchema>;\nexport async function parseAndVerifySavedModelVersion(raw: unknown, expected: {teamId?: string; modelProjectId?: string} = {}): Promise<SavedModelVersion> {\n const value = SavedModelVersionSchema.parse(raw);\n if (value.schemaVersion === \"openpond.trainingModelVersion.v1\") return parseAndVerifyTrainingModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.engramModelVersion.v1\") return parseAndVerifyEngramModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.decisionModelVersion.v1\") return parseAndVerifyDecisionModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.alphaEditModelVersion.v1\") return parseAndVerifyAlphaEditModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.neuronTrainingModelVersion.v1\") return parseAndVerifyNeuronTrainingModelVersion(value, expected);\n const {contentHash, ...content} = value;\n await parseAndVerifySteeringProfilePublication(value.publication, expected);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== value.publication.teamId ||\n expected.teamId && value.teamId !== expected.teamId || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId)\n throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The saved steering Model version differs from its immutable publication.\");\n return value;\n}\nexport const SteeringProfileRecordContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfileRecord.v1\"),\n publication: SteeringProfilePublicationSchema, revision: z.number().int().positive(), archived: z.boolean(), updatedAt: z.iso.datetime()}).strict();\nexport const SteeringProfileRecordSchema = SteeringProfileRecordContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfileRecord = z.infer<typeof SteeringProfileRecordSchema>;\nexport async function parseAndVerifySteeringProfileRecord(raw: unknown, expected: {teamId?: string; ownerUserId?: string; id?: string} = {}) {\n const value = SteeringProfileRecordSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifySteeringProfilePublication(value.publication, expected);\n if (contentHash !== await canonicalSha256(content)) throw new OpenPondProtocolError(\"steering_profile_record_mismatch\", \"The retained profile record changed.\");\n return value;\n}\nexport const SteeringProfileSaveRequestSchema = z.object({teamId: Id, operationId: Id, executionId: Id, variantId: Id,\n resultHash: Hash, profileHash: Hash, name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(),\n expectedModelRevision: z.number().int().nonnegative()}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the exact existing Model revision, or create a new Model.\"});\nexport type SteeringProfileSaveRequest = z.infer<typeof SteeringProfileSaveRequestSchema>;\nexport const SteeringProfileArchiveRequestSchema = z.object({teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(), contentHash: Hash}).strict();\nexport const SteeringProfileReceiptContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfileReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, record: SteeringProfileRecordSchema,\n model: HostedModelProjectSummarySchema.nullable(), version: SteeringModelVersionSchema.nullable()}).strict();\nexport const SteeringProfileReceiptSchema = SteeringProfileReceiptContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfileReceipt = z.infer<typeof SteeringProfileReceiptSchema>;\nexport async function parseAndVerifySteeringProfileReceipt(raw: unknown, request: SteeringProfileSaveRequest | z.infer<typeof SteeringProfileArchiveRequestSchema>, id?: string) {\n const value = SteeringProfileReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifySteeringProfileRecord(value.record, {teamId: request.teamId, ownerUserId: value.actorId, id});\n const saving = \"executionId\" in request;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.operationId !== request.operationId ||\n value.requestHash !== await canonicalSha256(saving ? request : {id, request})) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"Retry the original steering Model command.\");\n if (saving) {\n const publication = value.record.publication;\n if (!value.model || !value.version || publication.source.executionId !== request.executionId || publication.source.variantId !== request.variantId ||\n publication.source.resultHash !== request.resultHash || publication.profile.contentHash !== request.profileHash || publication.name !== request.name ||\n value.model.name !== request.name || request.modelProjectId && value.model.id !== request.modelProjectId ||\n value.model.revision !== request.expectedModelRevision + 1) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The saved Model differs from the selected result variant.\");\n await parseAndVerifySavedModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id});\n if (canonicalJson(value.version.publication) !== canonicalJson(publication)) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The Model version has a different publication.\");\n } else if (!value.record.archived || value.record.revision !== request.expectedRevision + 1 || value.record.publication.contentHash !== request.contentHash || value.model || value.version)\n throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The archive receipt differs from its original immutable profile.\");\n return value;\n}\nexport const SteeringProfileListQuerySchema = z.object({projectId: Id.optional(), modelProjectId: Id.optional(), archived: z.boolean().default(false), limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional()}).strict();\nexport const SteeringProfileSummarySchema = z.object({id: Id, teamId: Id, ownerUserId: Id, projectId: Id.nullable(), modelProjectId: Id, name: z.string().min(1).max(200), publicationHash: Hash, profileHash: Hash,\n baseModel: ModelProjectBaseModelSchema, source: SteeringProfilePublicationContentSchema.shape.source,\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: z.iso.datetime(), updatedAt: z.iso.datetime()}).strict();\nexport const SteeringProfileReadQuerySchema = z.object({teamId: Id}).strict();\nexport const SteeringProfilePageContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfilePage.v1\"), teamId: Id, ownerUserId: Id,\n query: SteeringProfileListQuerySchema, items: z.array(SteeringProfileSummarySchema).max(100), nextCursor: z.string().min(1).max(2048).nullable()}).strict();\nexport const SteeringProfilePageSchema = SteeringProfilePageContentSchema.extend({contentHash: Hash}).strict();\nexport const SavedModelVersionReadSchema = z.object({schemaVersion: z.literal(\"openpond.savedModelVersionRead.v1\"), teamId: Id, model: HostedModelProjectSummarySchema, version: SavedModelVersionSchema.nullable()}).strict();\nexport async function parseAndVerifySavedModelVersionRead(raw: unknown, teamId: string, modelProjectId: string, versionHash?: string) {\n const value = SavedModelVersionReadSchema.parse(raw);\n if (value.teamId !== teamId || value.model.teamId !== teamId || value.model.id !== modelProjectId) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"Choose this Model's workspace.\");\n if (versionHash !== undefined && value.version?.contentHash !== versionHash) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The response differs from the exact saved Model version.\");\n if (value.version) { await parseAndVerifySavedModelVersion(value.version, {teamId, modelProjectId});\n if (value.version.portableProjectId !== value.model.portableProjectId) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The saved version belongs to another Model.\"); }\n return value;\n}\nexport function createSteeringProfileClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveModificationResultModel(raw: SteeringProfileSaveRequest) { const body = SteeringProfileSaveRequestSchema.parse(raw);\n return parseAndVerifySteeringProfileReceipt(await request(\"/v1/training/steering-profiles\", {method: \"POST\", body: JSON.stringify(body)}), body); },\n async getSteeringProfile(teamId: string, id: string) { return parseAndVerifySteeringProfileRecord(await request(`/v1/training/steering-profiles/${encodeURIComponent(Id.parse(id))}?${new URLSearchParams({teamId: Id.parse(teamId)})}`), {teamId, id}); },\n async archiveSteeringProfile(id: string, raw: z.infer<typeof SteeringProfileArchiveRequestSchema>) { const body = SteeringProfileArchiveRequestSchema.parse(raw);\n return parseAndVerifySteeringProfileReceipt(await request(`/v1/training/steering-profiles/${encodeURIComponent(Id.parse(id))}/archive`, {method: \"POST\", body: JSON.stringify(body)}), body, id); },\n async listSteeringProfiles(teamId: string, raw: z.input<typeof SteeringProfileListQuerySchema> = {}) { const query = Object.fromEntries(Object.entries(SteeringProfileListQuerySchema.parse(raw)).filter(([, value]) => value !== undefined)) as z.infer<typeof SteeringProfileListQuerySchema>;\n const params = new URLSearchParams({teamId: Id.parse(teamId)}); for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = SteeringProfilePageSchema.parse(await request(`/v1/training/steering-profiles?${params}`)), {contentHash, ...content} = page;\n if (page.teamId !== teamId || canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content) || page.items.length > query.limit ||\n new Set(page.items.map(row => row.id)).size !== page.items.length || page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor))\n throw new OpenPondProtocolError(\"steering_profile_page_mismatch\", \"Refresh this profile history.\");\n for (const [index, item] of page.items.entries()) {\n if (item.teamId !== teamId || item.ownerUserId !== page.ownerUserId || query.projectId && item.projectId !== query.projectId || query.modelProjectId && item.modelProjectId !== query.modelProjectId || item.archived !== query.archived || index && page.items[index - 1]!.id >= item.id) throw new OpenPondProtocolError(\"steering_profile_page_mismatch\", \"The profile list scope changed.\"); }\n return page; },\n async modelVersion(modelProjectId: string, query: {teamId: string; versionHash?: string}) {\n const params = new URLSearchParams({teamId: Id.parse(query.teamId)});\n if (query.versionHash !== undefined) params.set(\"versionHash\", Hash.parse(query.versionHash));\n return parseAndVerifySavedModelVersionRead(await request(`/v1/training/models/${encodeURIComponent(Id.parse(modelProjectId))}/version?${params}`), query.teamId, modelProjectId, query.versionHash);\n },\n };\n}\n\nexport type SteeringProfilePage = z.infer<typeof SteeringProfilePageSchema>;\nexport type SteeringProfileSummary = z.infer<typeof SteeringProfileSummarySchema>;\n","import { z } from \"zod\";\nimport { SavedSteeringModelSelectionSchema, SteeringPublicationReferenceSchema } from \"./steering-model-selection.js\";\n\n/** Compact untrusted authoring provenance. Resolve and verify the full saved\n * version before using its profile; these pins alone grant no authority. */\nexport const SavedSteeringExperimentSourceSchema = SavedSteeringModelSelectionSchema.extend({\n publication: SteeringPublicationReferenceSchema,\n profileHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict();\nexport type SavedSteeringExperimentSource = z.infer<typeof SavedSteeringExperimentSourceSchema>;\nexport const ActivationStartingProfileSchema = SavedSteeringExperimentSourceSchema.extend({\n variantId: z.string().trim().min(1).max(500),\n}).strict();\n\n/** The full source stays with authoring/resolution; request hashes bind its\n * compact provenance even when a prepare command omits the authoring form. */\nexport function activationStartingProfileSource(value: z.infer<typeof ActivationStartingProfileSchema>): SavedSteeringExperimentSource {\n const {variantId: _variant, ...source} = ActivationStartingProfileSchema.parse(value);\n return source;\n}\n","import { z } from \"zod\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** An immutable publication identity, never a mutable profile record revision. */\nexport const SteeringPublicationReferenceSchema = z.object({\n id: Id, revision: z.number().int().positive(), contentHash: Hash,\n}).strict();\nexport type SteeringPublicationReference = z.infer<typeof SteeringPublicationReferenceSchema>;\n\n/** Pins a saved Model without copying its publication or result evidence. */\nexport const SavedSteeringModelSelectionSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n}).strict();\nexport type SavedSteeringModelSelection = z.infer<typeof SavedSteeringModelSelectionSchema>;\n","import { ActivationStartingProfileSchema } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronSteeringModelSchema, NeuronSteeringProfileSchema, parseAndVerifyNeuronSteeringProfile } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ActivationReferencePromptSchema = z.object({ id: Id,\n tokenIds: z.array(z.number().int().nonnegative().max(2_147_483_647)).min(1).max(4096),\n attentionMask: z.array(z.union([z.literal(0), z.literal(1)])).min(1).max(4096),\n}).strict().superRefine((value, ctx) => {\n if (value.tokenIds.length !== value.attentionMask.length || !value.attentionMask.some(Boolean) || value.attentionMask.at(-1) !== 1)\n ctx.addIssue({ code: \"custom\", message: \"Use matching tokens and a nonempty left-padded prompt.\" });\n let foundToken = false;\n for (const mask of value.attentionMask) {\n if (mask) foundToken = true;\n else if (foundToken) ctx.addIssue({ code: \"custom\", path: [\"attentionMask\"], message: \"The reference admits only contiguous left padding.\" });\n }\n});\nexport const ActivationReferenceRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.activationReferenceRequest.v1\"), model: NeuronSteeringModelSchema,\n startingProfile: ActivationStartingProfileSchema.optional(),\n prompts: z.array(ActivationReferencePromptSchema).min(1).max(8),\n variants: z.array(z.object({ id: Id, profile: z.lazy(() => NeuronSteeringProfileSchema).nullable() }).strict()).min(1).max(17),\n capture: z.array(z.object({ layer: z.number().int().nonnegative().max(511),\n neurons: z.array(z.number().int().nonnegative().max(9_999_999)).min(1).max(64) }).strict()).min(1).max(64),\n maxNewTokens: z.number().int().nonnegative().max(128), eosTokenIds: z.array(z.number().int().nonnegative().max(2_147_483_647)).max(16),\n maximumCapturedValues: z.number().int().positive().max(65_536),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000), maximumDurationSeconds: z.number().finite().positive().max(300),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.prompts.map(item => item.id)).size !== value.prompts.length || new Set(value.variants.map(item => item.id)).size !== value.variants.length)\n ctx.addIssue({ code: \"custom\", message: \"Prompt and variant IDs must be unique.\" });\n if (value.startingProfile) {\n const reference = value.variants.find(row => row.id === value.startingProfile!.variantId);\n if (!reference?.profile || reference.profile.contentHash !== value.startingProfile.profileHash || !value.variants.some(row => row.profile === null))\n ctx.addIssue({code: \"custom\", path: [\"startingProfile\"], message: \"Retain the exact saved profile variant and a separate Off control.\"});\n }\n const seen = new Set<string>();\n for (const row of value.capture) for (const neuron of row.neurons) {\n const key = `${row.layer}:${neuron}`;\n if (seen.has(key) || neuron >= (value.model.intermediateSizes[row.layer] ?? 0)) ctx.addIssue({ code: \"custom\", path: [\"capture\"], message: \"Capture coordinates must be unique and inside the model.\" });\n seen.add(key);\n }\n});\nexport type ActivationReferenceRequest = z.infer<typeof ActivationReferenceRequestSchema>;\nexport async function parseAndVerifyActivationReferenceRequest(raw: unknown) {\n const value = ActivationReferenceRequestSchema.parse(raw);\n for (const variant of value.variants) if (variant.profile) await parseAndVerifyNeuronSteeringProfile(variant.profile, value.model);\n const coordinates = value.capture.reduce((sum, row) => sum + row.neurons.length, 0), n = value.maxNewTokens;\n const captures = value.prompts.reduce((sum, row) => sum + row.attentionMask.filter(Boolean).length + n, 0) * value.variants.length * coordinates * 2;\n const work = value.prompts.reduce((sum, prompt) => sum + value.variants.reduce((subtotal, variant) => subtotal\n + (n + 1) * prompt.tokenIds.length + n * (n + 1) / 2\n + (variant.profile?.normalization.mode === \"baseline_prompt_residual_median\" ? prompt.tokenIds.length : 0), 0), 0);\n if (captures > value.maximumCapturedValues || work > value.maximumForwardTokenWork)\n throw new OpenPondProtocolError(\"activation_reference_budget_exceeded\", \"The full requested capture and forward work exceed their declared bounds.\");\n return value;\n}\n\nexport const ActivationReferenceCaptureSchema = z.object({ promptId: Id, variantId: Id,\n layer: z.number().int().nonnegative(), neuron: z.number().int().nonnegative(), tokenIndex: z.number().int().nonnegative(),\n tokenId: z.number().int().nonnegative(), before: z.number().finite(), after: z.number().finite(),\n}).strict();\nexport const ActivationReferenceOutcomeSchema = z.object({ promptId: Id, variantId: Id, profileHash: Hash.nullable(),\n generatedTokenIds: z.array(z.number().int().nonnegative()).max(128), forwardTokenWork: z.number().int().positive(),\n calibration: z.array(z.object({ layer: z.number().int().nonnegative(), median: z.number().finite().positive(), sampleCount: z.number().int().positive(),\n columnNorms: z.array(z.object({ neuron: z.number().int().nonnegative(), norm: z.number().finite().positive() }).strict()).max(64),\n }).strict()).max(64), durationMs: z.number().finite().nonnegative(), captureCount: z.number().int().nonnegative(),\n}).strict();\nexport const ActivationReferenceResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.activationReferenceResult.v1\"), requestHash: Hash, modelHash: Hash,\n runtime: z.object({ implementation: z.literal(\"torch_dense_serial_reference_v1\"), implementationHash: Hash, torchVersion: Id, device: Id }).strict(),\n outcomes: z.array(ActivationReferenceOutcomeSchema).min(1).max(136), captures: z.array(ActivationReferenceCaptureSchema).max(32_768),\n}).strict();\nexport const ActivationReferenceResultSchema = ActivationReferenceResultContentSchema.extend({ contentHash: Hash }).strict();\nexport type ActivationReferenceResult = z.infer<typeof ActivationReferenceResultSchema>;\nexport async function parseAndVerifyActivationReferenceResult(raw: unknown, input: ActivationReferenceRequest) {\n const request = await parseAndVerifyActivationReferenceRequest(input), value = ActivationReferenceResultSchema.parse(raw), { contentHash, ...content } = value;\n const fail = () => { throw new OpenPondProtocolError(\"activation_reference_result_mismatch\", \"The inspection differs from its exact prompt, model, intervention or capture bounds.\"); };\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.captures.length * 2 > request.maximumCapturedValues\n || value.outcomes.length !== request.prompts.length * request.variants.length\n || value.outcomes.reduce((sum, row) => sum + row.forwardTokenWork, 0) > request.maximumForwardTokenWork) fail();\n const pairs = new Set<string>(), counts = new Map<string, number>(), captureKeys = new Set<string>();\n const prompts = new Map(request.prompts.map(row => [row.id, row])), variants = new Map(request.variants.map(row => [row.id, row]));\n for (const capture of value.captures) {\n const key = JSON.stringify([capture.promptId, capture.variantId]), token = JSON.stringify([key, capture.layer, capture.neuron, capture.tokenIndex]);\n if (captureKeys.has(token) || !prompts.has(capture.promptId) || !variants.has(capture.variantId)\n || !request.capture.some(row => row.layer === capture.layer && row.neurons.includes(capture.neuron))) fail();\n captureKeys.add(token); counts.set(key, (counts.get(key) ?? 0) + 1);\n }\n for (const row of value.outcomes) {\n const key = JSON.stringify([row.promptId, row.variantId]), prompt = prompts.get(row.promptId), variant = variants.get(row.variantId);\n if (!prompt || !variant || pairs.has(key) || row.profileHash !== (variant?.profile?.contentHash ?? null)\n || row.generatedTokenIds.length > request.maxNewTokens || row.captureCount !== (counts.get(key) ?? 0)) fail();\n pairs.add(key);\n const tokenIds = prompt!.tokenIds.filter((_, index) => prompt!.attentionMask[index] === 1).concat(row.generatedTokenIds);\n const n = row.generatedTokenIds.length, coordinates = request.capture.reduce((sum, item) => sum + item.neurons.length, 0);\n const work = (n + 1) * prompt!.tokenIds.length + n * (n + 1) / 2\n + (variant!.profile?.normalization.mode === \"baseline_prompt_residual_median\" ? prompt!.tokenIds.length : 0);\n if (row.captureCount !== tokenIds.length * coordinates || row.forwardTokenWork !== work\n || variant!.profile === null && row.calibration.length !== 0) fail();\n if (n < request.maxNewTokens && (!n || !request.eosTokenIds.includes(row.generatedTokenIds[n - 1]!))\n || row.generatedTokenIds.slice(0, -1).some(token => request.eosTokenIds.includes(token))) fail();\n if (variant!.profile) {\n const targets = new Map<number, Set<number>>();\n for (const entry of variant!.profile.entries) { const neurons = targets.get(entry.layer) ?? new Set<number>(); neurons.add(entry.neuron); targets.set(entry.layer, neurons); }\n if (row.calibration.length !== targets.size || new Set(row.calibration.map(item => item.layer)).size !== targets.size\n || row.calibration.some(item => !targets.has(item.layer) || item.columnNorms.length !== targets.get(item.layer)!.size\n || new Set(item.columnNorms.map(column => column.neuron)).size !== item.columnNorms.length\n || item.columnNorms.some(column => !targets.get(item.layer)!.has(column.neuron))\n || variant!.profile!.normalization.mode === \"baseline_prompt_residual_median\" && item.sampleCount !== tokenIds.length - n - 1)) fail();\n }\n if (value.captures.some(capture => capture.promptId === row.promptId && capture.variantId === row.variantId && tokenIds[capture.tokenIndex] !== capture.tokenId)) fail();\n }\n return value;\n}\n","import { z } from \"zod\";\nimport { TrainingJobSchema, TrainingJobOutputsSchema, TrainingJobSourceSchema } from \"./training-job-contracts.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingResultSourceSchema = z.object({\n submissionHash: Hash,\n source: z.lazy(() => TrainingJobSourceSchema),\n baseModel: ModelProjectBaseModelSchema,\n recipe: z.record(z.string(), z.unknown()),\n}).strict();\nexport const TrainingResultCandidateSchema = z.object({\n artifact: ModelProjectImmutableRefSchema,\n checkpointId: Id,\n /** Canonical registry publication is independent of saving a named Model. */\n registryArtifactId: Id.nullable(),\n composition: z.enum([\"base\", \"residual_append\", \"shared\", \"sequential_merge\"]),\n parent: z.object({ jobId: Id, artifact: ModelProjectImmutableRefSchema, checkpointId: Id }).strict().nullable(),\n}).strict();\nexport const TrainingModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingModelVersion.v1\"),\n teamId: Id, modelProjectId: Id, portableProjectId: Id, jobId: Id,\n request: TrainingResultSourceSchema,\n candidate: TrainingResultCandidateSchema.omit({ registryArtifactId: true }),\n executionReceipt: ModelProjectImmutableRefSchema,\n createdAt: z.string().datetime({ offset: true }),\n}).strict();\nexport const TrainingModelVersionSchema = TrainingModelVersionContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingModelVersion = z.infer<typeof TrainingModelVersionSchema>;\n\nexport async function parseAndVerifyTrainingModelVersion(raw: unknown, expected: { teamId?: string; modelProjectId?: string; jobId?: string } = {}) {\n const value = TrainingModelVersionSchema.parse(raw);\n const { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId && value.teamId !== expected.teamId\n || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId\n || expected.jobId && value.jobId !== expected.jobId\n || value.request.source.modelProject.id !== value.modelProjectId\n || value.request.source.modelProject.portableProjectId !== value.portableProjectId\n || (value.candidate.composition === \"base\") !== (value.candidate.parent === null))\n throw new OpenPondProtocolError(\"training_model_version_mismatch\", \"The saved Model version differs from its original training result.\");\n return value;\n}\nexport const TrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResult.v1\"),\n teamId: Id,\n name: z.string().min(1).max(500),\n job: z.lazy(() => TrainingJobSchema),\n model: z.lazy(() => HostedModelProjectSummarySchema).nullable(),\n savedVersion: TrainingModelVersionSchema.nullable(),\n request: TrainingResultSourceSchema.nullable(),\n outputs: z.lazy(() => TrainingJobOutputsSchema),\n candidate: TrainingResultCandidateSchema.nullable(),\n candidateState: z.enum([\"not_finished\", \"request_unavailable\", \"qualification_only\", \"not_model_training\", \"cleanup_pending\", \"artifact_pending\", \"retained\"]),\n}).strict();\nexport const TrainingResultSchema = TrainingResultContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingResult = z.infer<typeof TrainingResultSchema>;\n\n/** Verify an exact result read without interpreting retained weights as serving\n * readiness, quality approval or authority to start another training Job. */\nexport async function parseAndVerifyTrainingResult(raw: unknown, expected: { teamId?: string; jobId: string }) {\n const value = TrainingResultSchema.parse(raw);\n const { contentHash, ...content } = value;\n function fail(): never { throw new OpenPondProtocolError(\"training_result_mismatch\", \"The trained result differs from its producing Job, request or outputs.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== value.job.teamId\n || value.job.id !== expected.jobId || expected.teamId && value.teamId !== expected.teamId\n || value.outputs.outputs.some(output => output.jobId !== value.job.id)\n || new Set(value.outputs.outputs.map(output => output.id)).size !== value.outputs.outputs.length) fail();\n if (value.model && (value.model.id !== value.job.modelProjectId || value.model.teamId !== value.teamId\n || value.model.portableProjectId !== value.job.portableProjectId)) fail();\n const request = value.request;\n if (request && (request.submissionHash !== value.job.submissionHash\n || request.source.modelProject.id !== value.job.modelProjectId\n || request.source.modelProject.portableProjectId !== value.job.portableProjectId\n || request.source.modelProject.revision !== value.job.sourceProjectRevision)) fail();\n const receipt = value.outputs.receipt;\n const payloadOutputs = value.outputs.outputs.filter(output => output.kind !== \"receipt\");\n const receiptOutputs = value.outputs.outputs.filter(output => output.kind === \"receipt\");\n if (receipt && (receipt.jobId !== value.job.id || receipt.teamId !== value.teamId\n || receipt.submissionHash !== value.job.submissionHash\n || receipt.outputs.length !== payloadOutputs.length\n || payloadOutputs.some(output => !receipt.outputs.some(ref => ref.id === output.id && ref.contentHash === output.contentHash))\n || new Set(receipt.outputs.map(ref => ref.id)).size !== receipt.outputs.length)) fail();\n // The receipt's recipeHash identifies the compiled worker recipe, while\n // request.recipe retains the original public training settings.\n if (receipt && request && receipt.manifestHash !== request.source.harnessRunManifest.contentHash) fail();\n if (receiptOutputs.length > 1 || !receipt && receiptOutputs.length\n || receiptOutputs[0] && (receiptOutputs[0].id !== `${receipt!.id}:output`\n || receiptOutputs[0].contentHash !== await canonicalSha256(receipt))) fail();\n if ((value.candidate !== null) !== (value.candidateState === \"retained\")) fail();\n if (value.candidate) {\n const candidate = value.candidate;\n const artifact = value.outputs.outputs.find(output => output.id === candidate.artifact.id && output.contentHash === candidate.artifact.contentHash);\n if (!request || value.job.state !== \"succeeded\" || value.job.kind !== \"policy_optimize\" || value.job.executionMode\n || !receipt?.cleanupComplete || !artifact || artifact.kind !== \"adapter\"\n || artifact.metadata.checkpointId !== candidate.checkpointId\n || candidate.composition === \"base\" && candidate.parent !== null\n || candidate.composition !== \"base\" && candidate.parent === null) fail();\n for (const ref of [request.source.harnessRunManifest, request.source.harnessRelease, request.source.tasksetRelease, request.source.dataset, ...request.source.evidenceSets])\n if (!receipt!.inputs.some(item => item.id === ref.id && item.contentHash === ref.contentHash)) fail();\n }\n if (value.savedVersion) {\n const saved = await parseAndVerifyTrainingModelVersion(value.savedVersion, { teamId: value.teamId, modelProjectId: value.job.modelProjectId, jobId: value.job.id });\n const candidate = value.candidate;\n if (!request || !candidate) fail();\n const { registryArtifactId: _registry, ...savedCandidate } = candidate;\n if (await canonicalSha256(saved.request) !== await canonicalSha256(request)\n || await canonicalSha256(saved.candidate) !== await canonicalSha256(savedCandidate)) fail();\n }\n return value;\n}\n\nexport function createTrainingResultClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async result(jobId: string, expected: { teamId?: string } = {}) {\n const id = Id.parse(jobId);\n return parseAndVerifyTrainingResult(await request(`/v1/training/jobs/${encodeURIComponent(id)}/result`), { ...expected, jobId: id });\n } };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { DecisionTrainingRequestSchema, DecisionTrainingResultSchema, parseAndVerifyDecisionTrainingRequest } from \"./decision-model-training.js\";\nimport { parseAndVerifyDecisionAdapterArtifact } from \"./decision-model-artifact.js\";\nimport { DecisionExperimentFormDraftSchema, SavedDecisionExperimentSourceSchema,\n type DecisionExperimentFormDraft, type SavedDecisionExperimentSource } from \"./decision-experiment-draft.js\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelVersion.v1\"),\n teamId: Id, ownerUserId: Id, modelProjectId: Id, portableProjectId: Id,\n baseModel: ModelProjectBaseModelSchema, request: DecisionTrainingRequestSchema,\n source: z.object({ executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash }).strict(),\n artifact: DecisionTrainingResultSchema.shape.artifact, createdAt: z.iso.datetime(),\n}).strict();\nexport const DecisionModelVersionSchema = DecisionModelVersionContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelVersion = z.infer<typeof DecisionModelVersionSchema>;\n\n/** Verifies an immutable metadata publication. Only the authenticated execution\n * owner can establish that resultHash names its actual completed result and\n * that every artifact file was committed; no numerical evidence is invented. */\nexport async function parseAndVerifyDecisionModelVersion(raw: unknown, expected: {\n teamId?: string; modelProjectId?: string; ownerUserId?: string; versionHash?: string;\n} = {}) {\n assertBoundedTaskJson(raw, 524_288);\n const value = DecisionModelVersionSchema.parse(raw), { contentHash, ...content } = value;\n const request = await parseAndVerifyDecisionTrainingRequest(value.request);\n const manifest = await parseAndVerifyDecisionAdapterArtifact(value.artifact.manifest, {\n model: request.model, inputHash: await canonicalSha256(request), recipeHash: await canonicalSha256(request.training),\n dataHash: await canonicalSha256(request.data), runtimeHash: value.source.runtimeHash,\n parentArtifactHash: request.parentArtifact?.contentHash ?? null,\n });\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_version_mismatch\", \"The saved decision Model differs from its exact trained source, runtime or committed artifact.\"); }\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId !== undefined && value.teamId !== expected.teamId\n || expected.modelProjectId !== undefined && value.modelProjectId !== expected.modelProjectId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || expected.versionHash !== undefined && value.contentHash !== expected.versionHash\n || canonicalJson(value.baseModel) !== canonicalJson(request.model.source)\n || value.source.inputHash !== manifest.pins.inputHash || value.artifact.contentHash !== manifest.contentHash\n || new Set(value.artifact.files.map(file => file.path)).size !== 4\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n const tensor = value.artifact.files.find(file => file.path === \"adapter_model.safetensors\");\n if (!tensor || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes) fail();\n for (const [path, payload] of [\n [\"manifest.json\", manifest], [\"adapter_config.json\", manifest.adapterConfig], [\"decision_contract.json\", manifest.contract],\n ] as const) {\n const file = value.artifact.files.find(row => row.path === path);\n if (!file || file.sha256 !== await canonicalSha256(payload) || file.sizeBytes !== canonicalJsonByteLength(payload) || file.sizeBytes > 262_144) fail();\n }\n return value;\n}\n\nexport async function verifySavedDecisionExperimentSource(source: SavedDecisionExperimentSource, raw: unknown, expected: {\n teamId?: string; ownerUserId?: string;\n} = {}) {\n const pin = SavedDecisionExperimentSourceSchema.parse(source);\n const version = await parseAndVerifyDecisionModelVersion(raw, { ...expected, modelProjectId: pin.modelProjectId, versionHash: pin.versionHash });\n if (version.artifact.id !== pin.artifact.id || version.artifact.contentHash !== pin.artifact.contentHash\n || await canonicalSha256(version.request.model) !== pin.modelHash)\n throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"Retain the exact saved decision Model and trained adapter.\");\n return version;\n}\n\n/** Reuses the current editable train/score form and its original data, limits,\n * name and cap. The selected exact saved artifact replaces its source; its\n * released backbone is ancestry, never a substitute for the learned adapter. */\nexport async function decisionFormFromModelVersion(form: DecisionExperimentFormDraft, raw: unknown, expected: {\n teamId?: string; ownerUserId?: string;\n} = {}): Promise<DecisionExperimentFormDraft> {\n const current = DecisionExperimentFormDraftSchema.parse(form), version = await parseAndVerifyDecisionModelVersion(raw, expected);\n return DecisionExperimentFormDraftSchema.parse({ ...current, baseModel: version.baseModel,\n parentArtifact: { id: version.artifact.id, contentHash: version.artifact.contentHash },\n startingDecision: { modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash }, modelHash: await canonicalSha256(version.request.model) },\n });\n}\n\nexport const DecisionResultSaveRequestSchema = z.object({\n teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId === null ? value.expectedModelRevision === 0 : value.expectedModelRevision > 0,\n { message: \"Retain the exact existing Model revision, or create a new Model.\" });\nexport type DecisionResultSaveRequest = z.infer<typeof DecisionResultSaveRequestSchema>;\nexport const DecisionResultSaveReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionResultSaveReceipt.v1\"), teamId: Id, actorId: Id,\n operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema, version: DecisionModelVersionSchema,\n}).strict();\nexport const DecisionResultSaveReceiptSchema = DecisionResultSaveReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionResultSaveReceipt = z.infer<typeof DecisionResultSaveReceiptSchema>;\nexport async function parseAndVerifyDecisionResultSaveReceipt(raw: unknown, input: DecisionResultSaveRequest, actorId?: string) {\n const request = DecisionResultSaveRequestSchema.parse(input), value = DecisionResultSaveReceiptSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyDecisionModelVersion(value.version, { teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId });\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || actorId !== undefined && value.actorId !== actorId || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(request) || value.version.source.executionId !== request.executionId\n || value.version.source.resultHash !== request.resultHash || value.version.artifact.contentHash !== request.artifactHash\n || value.model.name !== request.name || value.model.revision !== request.expectedModelRevision + 1\n || request.modelProjectId !== null && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"decision_model_save_mismatch\", \"The saved Model differs from the original decision training result, artifact or Model revision.\");\n return value;\n}\nexport function createDecisionModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveDecisionResultModel(raw: DecisionResultSaveRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const body = DecisionResultSaveRequestSchema.parse(raw);\n return parseAndVerifyDecisionResultSaveReceipt(await request(`/v1/training/modification-executions/${encodeURIComponent(body.executionId)}/model`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), body, options?.actorId);\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport {\n DECISION_ADAPTER_MAXIMUM_BYTES, DECISION_PROMPT_CODE_SHA256,\n DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity, type DecisionModelIdentity,\n} from \"./decision-model.js\";\nimport { DecisionArtifactReferenceSchema } from \"./decision-model-data.js\";\nimport {\n DecisionAdapterArtifactSchema, DecisionModuleFileSchema,\n parseAndVerifyDecisionAdapterArtifact,\n} from \"./decision-model-artifact.js\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.001),\n weightDecay: z.number().finite().min(0).max(0.1),\n maxSteps: z.number().int().min(1).max(4096),\n gradientAccumulationSteps: z.number().int().min(1).max(64),\n maximumPromptTokens: z.number().int().min(1).max(2048),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().min(173_113_345).max(DECISION_ADAPTER_MAXIMUM_BYTES),\n}).strict();\nexport type DecisionTrainingSettings = z.infer<typeof DecisionTrainingSettingsSchema>;\nexport const DecisionTrainingDataSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport type DecisionTrainingData = z.infer<typeof DecisionTrainingDataSchema>;\n\nexport const DecisionSupervisedEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionSupervisedEncoding.v1\"),\n implementation: z.literal(\"nimble_reference_candidate_logits_v1\"),\n modelHash: Hash, tokenizerHash: Hash,\n promptCodeSha256: z.literal(DECISION_PROMPT_CODE_SHA256),\n maximumPromptTokens: z.number().int().min(1).max(2048),\n stateEncoding: z.literal(\"canonical_json_utf8_v1\"), integerLevels: z.literal(\"decimal_enum_strings_v1\"),\n labelsOutsidePrompt: z.literal(true), objective: z.literal(\"candidate_cross_entropy_v1\"),\n temperature: z.literal(1), enableThinking: z.literal(false), truncation: z.literal(false),\n microBatchSize: z.literal(1),\n}).strict();\nexport type DecisionSupervisedEncoding = z.infer<typeof DecisionSupervisedEncodingSchema>;\n\n/** This declares a reproducible encoder/objective, not measured token rows or\n * a grant to train. The Dataset owner must resolve and authorize the reviewed\n * batch; the trainer must verify actual prompt/candidate boundary tokenization. */\nexport async function decisionSupervisedEncoding(model: DecisionModelIdentity, maximumPromptTokens: number) {\n const verified = await parseAndVerifyDecisionModelIdentity(model);\n return DecisionSupervisedEncodingSchema.parse({\n schemaVersion: \"openpond.decisionSupervisedEncoding.v1\", implementation: \"nimble_reference_candidate_logits_v1\",\n modelHash: await canonicalSha256(verified), tokenizerHash: verified.tokenizer.contentHash,\n promptCodeSha256: DECISION_PROMPT_CODE_SHA256, maximumPromptTokens,\n stateEncoding: \"canonical_json_utf8_v1\", integerLevels: \"decimal_enum_strings_v1\",\n labelsOutsidePrompt: true, objective: \"candidate_cross_entropy_v1\", temperature: 1,\n enableThinking: false, truncation: false, microBatchSize: 1,\n });\n}\n\nexport const DecisionTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionTrainingRequest.v1\"),\n model: DecisionModelIdentitySchema, data: DecisionTrainingDataSchema,\n training: DecisionTrainingSettingsSchema,\n // Null initializes the exact released Nimble adapter, never random LoRA or a bare base.\n parentArtifact: DecisionArtifactReferenceSchema.nullable(),\n}).strict();\nexport type DecisionTrainingRequest = z.infer<typeof DecisionTrainingRequestSchema>;\nexport async function parseAndVerifyDecisionTrainingRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = DecisionTrainingRequestSchema.parse(raw);\n if (value.data.encodingHash !== await canonicalSha256(await decisionSupervisedEncoding(value.model, value.training.maximumPromptTokens)))\n throw new OpenPondProtocolError(\"decision_encoding_mismatch\", \"The decision request differs from its exact candidate-only supervised encoder.\");\n return value;\n}\n\nexport const DecisionTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionTrainingResult.v1\"),\n inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash, preparedRowsHash: Hash,\n initialAdapterSourceHash: Hash,\n optimizerSteps: z.number().int().min(1).max(4096),\n examplesProcessed: z.number().int().min(1).max(262_144),\n questionRowsProcessed: z.number().int().min(1).max(262_144),\n targetTokens: z.number().int().min(1).max(262_144),\n forwardTokenWork: z.number().int().positive().max(536_870_912),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n trainableParameterCount: z.literal(43_278_336),\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n frozenBackboneState: z.object({\n algorithm: z.literal(\"torch_state_dict_sha256_v1\"), sourceManifestHash: Hash,\n before: Hash, after: Hash,\n }).strict(),\n artifact: z.object({\n id: z.string().min(1).max(500), contentHash: Hash,\n manifest: DecisionAdapterArtifactSchema, files: z.array(DecisionModuleFileSchema).length(4),\n }).strict(),\n}).strict();\nexport const DecisionTrainingResultSchema = DecisionTrainingResultContentSchema.extend({ contentHash: Hash });\nexport type DecisionTrainingResult = z.infer<typeof DecisionTrainingResultSchema>;\n\n/** Sealed metadata is necessary but not sufficient for a trained Model. Actual\n * custody/producer authentication and native frozen-state measurement remain\n * owner responsibilities. A measured torch-state hash is never compared to a\n * source-file manifest hash; the algorithm and source provenance stay distinct. */\nexport async function parseAndVerifyDecisionTrainingResult(raw: unknown, expected: {\n request: DecisionTrainingRequest; runtimeHash: string;\n}) {\n assertBoundedTaskJson(raw, 524_288);\n const request = await parseAndVerifyDecisionTrainingRequest(expected.request);\n const value = DecisionTrainingResultSchema.parse(raw), { contentHash, ...content } = value;\n const manifest = await parseAndVerifyDecisionAdapterArtifact(value.artifact.manifest, {\n model: request.model, inputHash: await canonicalSha256(request),\n recipeHash: await canonicalSha256(request.training), dataHash: await canonicalSha256(request.data),\n runtimeHash: Hash.parse(expected.runtimeHash), parentArtifactHash: request.parentArtifact?.contentHash ?? null,\n });\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_training_result_mismatch\", \"The decision result differs from its exact run, frozen backbone evidence or committed artifact.\"); };\n if (contentHash !== await canonicalSha256(content)\n || value.inputHash !== manifest.pins.inputHash || value.modelHash !== await canonicalSha256(request.model)\n || value.runtimeHash !== expected.runtimeHash || value.dataHash !== manifest.pins.dataHash\n || value.initialAdapterSourceHash !== (request.parentArtifact?.contentHash ?? request.model.originalAdapter.contentHash)\n || value.optimizerSteps !== request.training.maxSteps\n || value.questionRowsProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.examplesProcessed > value.questionRowsProcessed || value.targetTokens !== value.questionRowsProcessed\n || value.forwardTokenWork < value.questionRowsProcessed\n || value.forwardTokenWork > value.questionRowsProcessed * request.training.maximumPromptTokens\n || value.durationMs > request.training.maxDurationSeconds * 1000\n || value.frozenBackboneState.sourceManifestHash !== request.model.backbone.source.contentHash\n || value.frozenBackboneState.before !== value.frozenBackboneState.after\n || value.artifact.contentHash !== manifest.contentHash\n || new Set(value.artifact.files.map(file => file.path)).size !== 4\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n const tensor = value.artifact.files.find(file => file.path === \"adapter_model.safetensors\");\n if (!tensor || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes) fail();\n for (const [path, payload] of [\n [\"manifest.json\", manifest], [\"adapter_config.json\", manifest.adapterConfig], [\"decision_contract.json\", manifest.contract],\n ] as const) {\n const file = value.artifact.files.find(row => row.path === path);\n // Metadata files are canonical JSON UTF-8 with no trailing newline.\n if (!file || file.sha256 !== await canonicalSha256(payload)\n || file.sizeBytes !== canonicalJsonByteLength(payload)\n || file.sizeBytes > 262_144) fail();\n }\n // Include all original parent/source and authored setting fields in the run hash.\n if (canonicalJson(request.model) !== canonicalJson(manifest.model)) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const DECISION_SOURCE_REPOSITORY = \"bespokelabs/Bespoke-Nimble-9B\";\nexport const DECISION_SOURCE_REVISION = \"e93fabce8fcee46e7e8b45e2d955b8a4f0035917\";\nexport const DECISION_BACKBONE_REPOSITORY = \"Qwen/Qwen3.5-9B\";\nexport const DECISION_BACKBONE_REVISION = \"c202236235762e1c871ad0ccb60c8ee5ba337b9a\";\nexport const DECISION_PROMPT_CODE_SHA256 = \"a0a0f94d0f65e972bc20d088678ad3d595ff1c42b9c0d78f96034526303f63fc\";\nexport const DECISION_CHAT_TEMPLATE_SHA256 = \"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715\";\nexport const DECISION_ADAPTER_MAXIMUM_BYTES = 268_435_456;\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionSourceFileSchema = z.object({\n path: z.string().regex(/^[A-Za-z0-9_.-]{1,120}$/), sha256: Hash,\n sizeBytes: z.number().int().positive().max(25_000_000_000),\n}).strict();\nexport const DecisionSourceManifestContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionSourceManifest.v1\"),\n repository: z.enum([DECISION_SOURCE_REPOSITORY, DECISION_BACKBONE_REPOSITORY]),\n revision: z.string().regex(/^[a-f0-9]{40}$/),\n files: z.array(DecisionSourceFileSchema).min(1).max(16),\n}).strict();\nexport const DecisionSourceManifestSchema = DecisionSourceManifestContentSchema.extend({ contentHash: Hash });\nexport type DecisionSourceManifest = z.infer<typeof DecisionSourceManifestSchema>;\n\nexport const DecisionModelIdentityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelIdentity.v1\"),\n source: ModelProjectBaseModelSchema,\n backbone: z.object({\n architecture: z.literal(\"Qwen3_5ForConditionalGeneration\"), modelType: z.literal(\"qwen3_5\"),\n dtype: z.literal(\"bfloat16\"),\n weightIdentity: z.literal(\"source_file_manifest_sha256_v1\"),\n source: DecisionSourceManifestSchema,\n }).strict(),\n originalAdapter: DecisionSourceManifestSchema,\n tokenizer: DecisionSourceManifestSchema,\n reference: DecisionSourceManifestSchema,\n license: z.object({ spdx: z.literal(\"Apache-2.0\"), files: z.array(DecisionSourceManifestSchema).length(2) }).strict(),\n}).strict();\nexport const DecisionModelIdentitySchema = DecisionModelIdentityContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelIdentity = z.infer<typeof DecisionModelIdentitySchema>;\n\ntype SourceFile = z.infer<typeof DecisionSourceFileSchema>;\nconst file = (path: string, sizeBytes: number, sha256: string): SourceFile => ({ path, sizeBytes, sha256 });\nconst backboneFiles = [\n file(\"config.json\", 3126, \"d0883072e01861ed0b2d47be3c16c36a8e81c224c7ffaa310c6558fb3f932b05\"),\n file(\"model.safetensors.index.json\", 79657, \"26d3539b516be613f39563617cb9d33b3f83d401298125be392c80cefb8f7fe5\"),\n file(\"model.safetensors-00001-of-00004.safetensors\", 5276436216, \"db6f444b43d318c92f360a13a25561a6a65b10c0631b8ed305a426dbaa6c380e\"),\n file(\"model.safetensors-00002-of-00004.safetensors\", 5335161512, \"31c7d7e2dd5d207840b31cc59083c8f4c4718959149e0358c0364052bb9a0330\"),\n file(\"model.safetensors-00003-of-00004.safetensors\", 5368717440, \"7ec36ba3a4176a44c3c0876ad80c56a2f70c84bf008d82e9501df642f17dadec\"),\n file(\"model.safetensors-00004-of-00004.safetensors\", 3325995712, \"b62b0c4cd7e44edee103ee8f4fe225f246d5e768e07bfd5f25b63a8aa1fdd0c6\"),\n];\nconst adapterFiles = [\n file(\"adapter_config.json\", 1296, \"4064100b5c7c92b20b6aba8ec08af2e2a956d1fbb06263f814324301b710b3f2\"),\n file(\"adapter_model.safetensors\", 173188512, \"ba7e28acb97f973e80fa51f3aa6fc6f75ea4081b89632ed45d8e5f3a1d7bfa6b\"),\n];\nconst tokenizerFiles = [\n file(\"chat_template.jinja\", 7756, DECISION_CHAT_TEMPLATE_SHA256),\n file(\"tokenizer.json\", 19989325, \"06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523\"),\n file(\"tokenizer_config.json\", 1125, \"9cf04fffe3d8c3b85e439fb35c7acad0761ab51c422a8c4256d9f887c3a0be7d\"),\n];\nconst referenceFiles = [\n file(\"inference.py\", 5375, \"95c37c0ee94b065858fcca8fe90cfa685ecde8713443c1b0555ed99012f5abfd\"),\n file(\"parallel_schema.py\", 6628, DECISION_PROMPT_CODE_SHA256),\n file(\"requirements.txt\", 126, \"7cfedd0abb35fe0b69677040ae800fa420f6c1d3162584a379785ca239ba04ea\"),\n file(\"schema_config.json\", 15838, \"601c6fe561a33cbe9e88ed948503289c61c6f53876255ecb6988428824a57075\"),\n];\nconst licenseFiles = [file(\"LICENSE\", 11544, \"bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a\")];\n\nasync function sourceManifest(repository: DecisionSourceManifest[\"repository\"], revision: string, files: SourceFile[]) {\n const content = DecisionSourceManifestContentSchema.parse({\n schemaVersion: \"openpond.decisionSourceManifest.v1\", repository, revision, files,\n });\n return { ...content, contentHash: await canonicalSha256(content) };\n}\n\n/** Pins released source files, not a measured in-memory torch state or runtime\n * qualification. Large backbone digests originate in the exact Hub revision's\n * LFS metadata; a loader must still verify every downloaded file before use.\n * The complete conditional-generation config/index is retained, including its\n * vision and auxiliary tensors, even though this protocol supplies text only. */\nexport async function decisionModelIdentity(): Promise<DecisionModelIdentity> {\n const release = (files: SourceFile[]) => sourceManifest(DECISION_SOURCE_REPOSITORY, DECISION_SOURCE_REVISION, files);\n const content = DecisionModelIdentityContentSchema.parse({\n schemaVersion: \"openpond.decisionModelIdentity.v1\",\n source: {\n schemaVersion: \"openpond.baseModelPreference.v1\", modelId: DECISION_SOURCE_REPOSITORY,\n revision: DECISION_SOURCE_REVISION, tokenizerRevision: DECISION_SOURCE_REVISION,\n chatTemplateHash: DECISION_CHAT_TEMPLATE_SHA256, modelAssetId: null, source: \"managed\",\n },\n backbone: {\n architecture: \"Qwen3_5ForConditionalGeneration\", modelType: \"qwen3_5\", dtype: \"bfloat16\",\n weightIdentity: \"source_file_manifest_sha256_v1\",\n source: await sourceManifest(DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION, backboneFiles),\n },\n originalAdapter: await release(adapterFiles), tokenizer: await release(tokenizerFiles),\n reference: await release(referenceFiles),\n license: { spdx: \"Apache-2.0\", files: [\n await sourceManifest(DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION, licenseFiles),\n await release(licenseFiles),\n ] },\n });\n return { ...content, contentHash: await canonicalSha256(content) };\n}\n\nexport async function parseAndVerifyDecisionModelIdentity(raw: unknown): Promise<DecisionModelIdentity> {\n const value = DecisionModelIdentitySchema.parse(raw);\n if (canonicalJson(value) !== canonicalJson(await decisionModelIdentity()))\n throw new OpenPondProtocolError(\"decision_model_identity_mismatch\", \"The decision Model differs from the exact released adapter, tokenizer or complete backbone source.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity } from \"./decision-model.js\";\nimport { assertCanonicalPayloadSize, canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Text = z.string().min(1).max(2000).refine(value => value.trim().length > 0);\nconst Name = z.string().regex(/^[A-Za-z][A-Za-z0-9_-]{0,79}$/)\n .refine(value => ![\"constructor\", \"prototype\"].includes(value));\nconst Level = z.number().int().min(-1_000_000).max(1_000_000);\nexport const DecisionValueSchema = z.union([z.string().min(1).max(256), z.boolean(), Level]);\nexport const DecisionArtifactReferenceSchema = z.object({ id: z.string().min(1).max(500), contentHash: Hash }).strict();\n\nexport const DecisionStateSchema = z.record(z.string().max(256), z.json()).superRefine((value, context) => {\n try { assertBoundedTaskJson(value, 65_536); }\n catch { context.addIssue({ code: \"custom\", message: \"Decision state must be bounded finite JSON of at most 64 KiB.\" }); }\n});\nconst question = { id: Name, description: Text };\nexport const DecisionQuestionSchema = z.discriminatedUnion(\"type\", [\n z.object({ ...question, type: z.literal(\"choice\"), choices: z.array(z.object({\n value: z.string().min(1).max(256).refine(value => value.trim().length > 0), description: Text,\n }).strict()).min(2).max(26) }).strict(),\n z.object({ ...question, type: z.literal(\"boolean\"), choices: z.tuple([\n z.object({ value: z.literal(false), description: Text }).strict(),\n z.object({ value: z.literal(true), description: Text }).strict(),\n ]) }).strict(),\n z.object({ ...question, type: z.literal(\"integer_levels\"), choices: z.array(z.object({\n value: Level, description: Text,\n }).strict()).min(2).max(26) }).strict(),\n]).superRefine((value, context) => {\n if (new Set(value.choices.map(choice => choice.value)).size !== value.choices.length)\n context.addIssue({ code: \"custom\", path: [\"choices\"], message: \"Decision choices must be distinct.\" });\n if (value.type === \"integer_levels\" && value.choices.some((choice, index) => index > 0 && choice.value <= value.choices[index - 1]!.value))\n context.addIssue({ code: \"custom\", path: [\"choices\"], message: \"Integer levels must retain strictly increasing authored order.\" });\n});\nexport type DecisionQuestion = z.infer<typeof DecisionQuestionSchema>;\nexport const DecisionQuestionsSchema = z.array(DecisionQuestionSchema).min(1).max(8).superRefine((value, context) => {\n if (new Set(value.map(row => row.id)).size !== value.length)\n context.addIssue({ code: \"custom\", message: \"Decision question names must be distinct.\" });\n});\nexport const DecisionScoringInputSchema = z.object({ state: DecisionStateSchema, questions: DecisionQuestionsSchema }).strict();\nexport type DecisionScoringInput = z.infer<typeof DecisionScoringInputSchema>;\nexport const DecisionTrainingExampleSchema = DecisionScoringInputSchema.extend({\n id: z.string().min(1).max(500),\n targets: z.array(z.object({ questionId: Name, value: DecisionValueSchema }).strict()).min(1).max(8),\n}).superRefine((value, context) => {\n if (value.targets.length !== value.questions.length || value.questions.some((row, index) => {\n const target = value.targets[index];\n return !target || target.questionId !== row.id || !row.choices.some(choice => choice.value === target.value);\n })) context.addIssue({ code: \"custom\", path: [\"targets\"], message: \"Targets must match every named question and real choice in authored order.\" });\n});\nexport type DecisionTrainingExample = z.infer<typeof DecisionTrainingExampleSchema>;\n\n/** This is the raw reviewed-data projection, not training authorization. The\n * hosted owner must resolve the approved batch and verify these exact bytes. */\nexport const DecisionTrainingExamplesSchema = z.array(DecisionTrainingExampleSchema).min(1).max(4096)\n .superRefine((value, context) => {\n if (new Set(value.map(row => row.id)).size !== value.length)\n context.addIssue({ code: \"custom\", message: \"Decision example IDs must be distinct.\" });\n try { assertCanonicalPayloadSize(value, 8_388_608, \"Decision examples\"); }\n catch { context.addIssue({ code: \"custom\", message: \"Decision examples exceed the 8 MiB input boundary.\" }); }\n });\n\nexport async function parseAndVerifyDecisionTrainingExamples(raw: unknown, examplesSha256?: string) {\n assertBoundedTaskJson(raw, 8_388_608);\n const value = DecisionTrainingExamplesSchema.parse(raw);\n if (examplesSha256 !== undefined && Hash.parse(examplesSha256) !== await canonicalSha256(value))\n throw new OpenPondProtocolError(\"decision_examples_mismatch\", \"The decision examples differ from the exact reviewed projection digest.\");\n return value;\n}\n\n/** Targets are deliberately absent. Pass this ordered schema to the pinned\n * prepare_prompts implementation; it checks actual answer-boundary tokens and\n * rejects overlong input instead of truncating. Integer levels are rendered as\n * enum strings and converted back to typed numbers only after scoring. */\nexport function decisionReferenceInput(raw: DecisionScoringInput) {\n assertBoundedTaskJson(raw, 131_072);\n const input = DecisionScoringInputSchema.parse(raw);\n const schema = Object.fromEntries(input.questions.map(row => [row.id, {\n type: row.type === \"boolean\" ? \"boolean\" : \"enum\",\n description: row.description,\n choices: row.choices.map(choice => row.type === \"integer_levels\" ? String(choice.value) : choice.value),\n choice_descriptions: Object.fromEntries(row.choices.map(choice => [String(choice.value), choice.description])),\n }]));\n return { context: canonicalJson(input.state), schema };\n}\n\nexport const DecisionScoringRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionScoringRequest.v1\"),\n model: DecisionModelIdentitySchema,\n artifact: DecisionArtifactReferenceSchema.nullable(),\n input: DecisionScoringInputSchema,\n limits: z.object({\n maximumPromptTokens: z.number().int().min(1).max(2048),\n maximumForwardTokenWork: z.number().int().min(1).max(65_536),\n maximumDurationSeconds: z.number().finite().positive().max(300),\n }).strict(),\n}).strict();\nexport type DecisionScoringRequest = z.infer<typeof DecisionScoringRequestSchema>;\n\nexport async function parseAndVerifyDecisionScoringRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = DecisionScoringRequestSchema.parse(raw);\n await parseAndVerifyDecisionModelIdentity(value.model);\n return value;\n}\n\nexport const DecisionQuestionDistributionSchema = z.object({\n questionId: Name, promptTokenCount: z.number().int().min(1).max(2048),\n candidates: z.array(z.object({\n value: DecisionValueSchema, code: z.string().regex(/^[A-Z]$/),\n tokenId: z.number().int().min(0).max(248_319),\n logit: z.number().finite(), probability: z.number().finite().min(0).max(1),\n }).strict()).min(2).max(26),\n prediction: DecisionValueSchema,\n expectedLevel: z.number().finite().min(-1_000_000).max(1_000_000).nullable(),\n}).strict();\nexport type DecisionQuestionDistribution = z.infer<typeof DecisionQuestionDistributionSchema>;\nexport const DecisionScoringResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionScoringResult.v1\"),\n requestHash: Hash, modelHash: Hash, runtimeHash: Hash, preparedRowsHash: Hash,\n artifact: DecisionArtifactReferenceSchema.nullable(), temperature: z.literal(1),\n distributions: z.array(DecisionQuestionDistributionSchema).min(1).max(8),\n forwardTokenWork: z.number().int().positive().max(65_536),\n durationMs: z.number().finite().nonnegative().max(300_000),\n}).strict();\nexport const DecisionScoringResultSchema = DecisionScoringResultContentSchema.extend({ contentHash: Hash });\nexport type DecisionScoringResult = z.infer<typeof DecisionScoringResultSchema>;\n\n/** Verifies the arithmetic and exact request/runtime pin; it does not attest\n * that a producer actually executed the pinned model or measured these logits. */\nexport async function parseAndVerifyDecisionScoringResult(raw: unknown, expected: {\n request: DecisionScoringRequest; runtimeHash: string;\n}) {\n assertBoundedTaskJson(raw, 131_072);\n const request = await parseAndVerifyDecisionScoringRequest(expected.request);\n const value = DecisionScoringResultSchema.parse(raw), { contentHash, ...content } = value;\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_score_mismatch\", \"The decision distributions differ from the exact request, complete T1 candidate scores or runtime.\"); };\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.runtimeHash !== Hash.parse(expected.runtimeHash)\n || canonicalJson(value.artifact) !== canonicalJson(request.artifact)\n || value.distributions.length !== request.input.questions.length\n || value.forwardTokenWork > request.limits.maximumForwardTokenWork\n || value.durationMs > request.limits.maximumDurationSeconds * 1000) fail();\n let promptWork = 0;\n for (const [index, question] of request.input.questions.entries()) {\n const row = value.distributions[index]!;\n if (row.questionId !== question.id || row.candidates.length !== question.choices.length\n || row.promptTokenCount > request.limits.maximumPromptTokens\n || new Set(row.candidates.map(candidate => candidate.tokenId)).size !== row.candidates.length) fail();\n const maximum = Math.max(...row.candidates.map(candidate => candidate.logit));\n const weights = row.candidates.map(candidate => Math.exp(candidate.logit - maximum));\n const total = weights.reduce((sum, weight) => sum + weight, 0);\n let best = 0, expectedLevel = 0;\n for (const [candidateIndex, candidate] of row.candidates.entries()) {\n if (candidate.value !== question.choices[candidateIndex]!.value\n || candidate.code !== String.fromCharCode(65 + candidateIndex)\n || Math.abs(candidate.probability - weights[candidateIndex]! / total) > 1e-8) fail();\n if (candidate.logit > row.candidates[best]!.logit) best = candidateIndex;\n if (question.type === \"integer_levels\") expectedLevel += question.choices[candidateIndex]!.value * candidate.probability;\n }\n if (Math.abs(row.candidates.reduce((sum, candidate) => sum + candidate.probability, 0) - 1) > 1e-8\n || row.prediction !== question.choices[best]!.value\n || (question.type === \"integer_levels\" ? row.expectedLevel === null || Math.abs(row.expectedLevel - expectedLevel) > 1e-8 : row.expectedLevel !== null)) fail();\n promptWork += row.promptTokenCount;\n }\n if (value.forwardTokenWork < promptWork) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport {\n DECISION_ADAPTER_MAXIMUM_BYTES, DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION,\n DECISION_PROMPT_CODE_SHA256, DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity,\n type DecisionModelIdentity,\n} from \"./decision-model.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst targetModules = [\"o_proj\", \"down_proj\", \"k_proj\", \"gate_proj\", \"in_proj_b\", \"in_proj_z\", \"in_proj_a\", \"out_proj\", \"q_proj\", \"in_proj_qkv\", \"v_proj\", \"up_proj\"] as const;\n\n/** Portable PEFT output configuration. Tensor names and shapes remain specific\n * to the full pinned Qwen3.5 hybrid backbone, not an ordinary dense LoRA model. */\nexport const DecisionAdapterConfigSchema = z.object({\n base_model_name_or_path: z.literal(DECISION_BACKBONE_REPOSITORY),\n revision: z.literal(DECISION_BACKBONE_REVISION),\n peft_type: z.literal(\"LORA\"), peft_version: z.literal(\"0.21.0\"), task_type: z.literal(\"CAUSAL_LM\"),\n r: z.literal(16), lora_alpha: z.literal(32), lora_dropout: z.literal(0.05),\n bias: z.literal(\"none\"), inference_mode: z.literal(true),\n fan_in_fan_out: z.literal(false), use_dora: z.literal(false), use_rslora: z.literal(false),\n modules_to_save: z.null(),\n target_modules: z.array(z.enum(targetModules)).length(12),\n}).strict().superRefine((value, context) => {\n if (canonicalJson(value.target_modules) !== canonicalJson(targetModules))\n context.addIssue({ code: \"custom\", path: [\"target_modules\"], message: \"The adapter must retain the exact released hybrid target modules.\" });\n});\nexport type DecisionAdapterConfig = z.infer<typeof DecisionAdapterConfigSchema>;\nexport function decisionAdapterConfig(): DecisionAdapterConfig {\n return DecisionAdapterConfigSchema.parse({\n base_model_name_or_path: DECISION_BACKBONE_REPOSITORY, revision: DECISION_BACKBONE_REVISION,\n peft_type: \"LORA\", peft_version: \"0.21.0\", task_type: \"CAUSAL_LM\", r: 16,\n lora_alpha: 32, lora_dropout: 0.05, bias: \"none\", inference_mode: true,\n fan_in_fan_out: false, use_dora: false, use_rslora: false, modules_to_save: null,\n target_modules: [...targetModules],\n });\n}\n\nexport const DecisionArtifactContractSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionArtifactContract.v1\"),\n task: z.literal(\"schema_candidate_classification_v1\"),\n modelHash: Hash, tokenizerHash: Hash, promptCodeSha256: z.literal(DECISION_PROMPT_CODE_SHA256),\n stateEncoding: z.literal(\"canonical_json_utf8_v1\"),\n integerLevels: z.literal(\"decimal_enum_strings_v1\"),\n objective: z.literal(\"candidate_cross_entropy_v1\"), labelsOutsidePrompt: z.literal(true),\n temperature: z.literal(1), maximumPromptTokens: z.literal(2048),\n enableThinking: z.literal(false), truncation: z.literal(false),\n}).strict();\nexport type DecisionArtifactContract = z.infer<typeof DecisionArtifactContractSchema>;\nexport async function decisionArtifactContract(model: DecisionModelIdentity): Promise<DecisionArtifactContract> {\n const verified = await parseAndVerifyDecisionModelIdentity(model);\n return DecisionArtifactContractSchema.parse({\n schemaVersion: \"openpond.decisionArtifactContract.v1\", task: \"schema_candidate_classification_v1\",\n modelHash: await canonicalSha256(verified), tokenizerHash: verified.tokenizer.contentHash,\n promptCodeSha256: DECISION_PROMPT_CODE_SHA256, stateEncoding: \"canonical_json_utf8_v1\",\n integerLevels: \"decimal_enum_strings_v1\", objective: \"candidate_cross_entropy_v1\",\n labelsOutsidePrompt: true, temperature: 1, maximumPromptTokens: 2048,\n enableThinking: false, truncation: false,\n });\n}\n\nexport const DecisionAdapterTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.]{1,200}$/),\n shape: z.tuple([z.number().int().positive().max(12_288), z.number().int().positive().max(12_288)]),\n dtype: z.literal(\"F32\"),\n}).strict();\n\n/** Exact 496-tensor inventory observed in the original adapter's safetensors\n * header. Full-attention layers occur at indices 3,7,...31; other layers use\n * linear attention. Neither the language head nor vision weights are adapted. */\nexport function decisionAdapterTensorInventory(): z.infer<typeof DecisionAdapterTensorSchema>[] {\n const items: z.infer<typeof DecisionAdapterTensorSchema>[] = [];\n for (let layer = 0; layer < 32; layer++) {\n const modules: Array<[string, number, number]> = [\n [\"mlp.down_proj\", 12_288, 4096], [\"mlp.gate_proj\", 4096, 12_288], [\"mlp.up_proj\", 4096, 12_288],\n ...(layer % 4 === 3 ? [\n [\"self_attn.q_proj\", 4096, 8192], [\"self_attn.k_proj\", 4096, 1024],\n [\"self_attn.v_proj\", 4096, 1024], [\"self_attn.o_proj\", 4096, 4096],\n ] as Array<[string, number, number]> : [\n [\"linear_attn.in_proj_a\", 4096, 32], [\"linear_attn.in_proj_b\", 4096, 32],\n [\"linear_attn.in_proj_qkv\", 4096, 8192], [\"linear_attn.in_proj_z\", 4096, 4096],\n [\"linear_attn.out_proj\", 4096, 4096],\n ] as Array<[string, number, number]>),\n ];\n for (const [name, input, output] of modules) {\n const prefix = `base_model.model.model.language_model.layers.${layer}.${name}`;\n items.push({ name: `${prefix}.lora_A.weight`, shape: [16, input], dtype: \"F32\" });\n items.push({ name: `${prefix}.lora_B.weight`, shape: [output, 16], dtype: \"F32\" });\n }\n }\n return items.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\n\nexport const DecisionAdapterArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionAdapterArtifact.v1\"), method: z.literal(\"decision_model\"),\n model: DecisionModelIdentitySchema, adapterConfig: DecisionAdapterConfigSchema,\n contract: DecisionArtifactContractSchema,\n pins: z.object({\n inputHash: Hash, recipeHash: Hash, dataHash: Hash, runtimeHash: Hash, parentArtifactHash: Hash.nullable(),\n }).strict(),\n payload: z.object({\n path: z.literal(\"adapter_model.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(DECISION_ADAPTER_MAXIMUM_BYTES),\n tensors: z.array(DecisionAdapterTensorSchema).length(496),\n }).strict(),\n}).strict();\nexport const DecisionAdapterArtifactSchema = DecisionAdapterArtifactContentSchema.extend({ contentHash: Hash });\nexport type DecisionAdapterArtifact = z.infer<typeof DecisionAdapterArtifactSchema>;\nexport type DecisionArtifactExpectation = {\n model: DecisionModelIdentity; inputHash: string; recipeHash: string; dataHash: string;\n runtimeHash: string; parentArtifactHash: string | null;\n};\n\n/** Verifies manifest metadata only. The existing authenticated artifact owner\n * must separately seal actual file bytes, sizes, digests and tensor inventory. */\nexport async function parseAndVerifyDecisionAdapterArtifact(raw: unknown, expected?: DecisionArtifactExpectation) {\n const value = DecisionAdapterArtifactSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyDecisionModelIdentity(value.model);\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_artifact_mismatch\", \"The decision artifact differs from its exact hybrid module, source, recipe or data.\"); };\n if (contentHash !== await canonicalSha256(content)\n || canonicalJson(value.contract) !== canonicalJson(await decisionArtifactContract(value.model))\n || canonicalJson(value.payload.tensors) !== canonicalJson(decisionAdapterTensorInventory())\n || value.payload.sizeBytes < value.payload.tensors.reduce((sum, row) => sum + row.shape[0] * row.shape[1] * 4, 0)) fail();\n if (expected && (canonicalJson(value.model) !== canonicalJson(expected.model)\n || value.pins.inputHash !== expected.inputHash || value.pins.recipeHash !== expected.recipeHash\n || value.pins.dataHash !== expected.dataHash || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== expected.parentArtifactHash)) fail();\n return value;\n}\n\nexport const DecisionModuleFileSchema = z.object({\n path: z.enum([\"manifest.json\", \"adapter_model.safetensors\", \"adapter_config.json\", \"decision_contract.json\"]),\n artifactId: z.string().min(1).max(500), sha256: Hash,\n sizeBytes: z.number().int().positive().max(DECISION_ADAPTER_MAXIMUM_BYTES),\n}).strict();\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { DecisionArtifactReferenceSchema } from \"./decision-model-data.js\";\nimport {\n DECISION_CHAT_TEMPLATE_SHA256, DECISION_SOURCE_REPOSITORY, DECISION_SOURCE_REVISION,\n} from \"./decision-model.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Field = z.string().max(100);\nexport const SavedDecisionExperimentSourceSchema = z.object({\n modelProjectId: z.string().min(1).max(240), versionHash: Hash,\n artifact: DecisionArtifactReferenceSchema, modelHash: Hash,\n}).strict();\nexport type SavedDecisionExperimentSource = z.infer<typeof SavedDecisionExperimentSourceSchema>;\nexport const DecisionTrainingFormDraftSchema = z.object({\n learningRate: Field, weightDecay: Field, maxSteps: Field, gradientAccumulationSteps: Field,\n maximumPromptTokens: Field, seed: Field, maxDurationSeconds: Field, maxCheckpointBytes: Field,\n}).strict();\nexport const DecisionScoringLimitsFormDraftSchema = z.object({\n maximumPromptTokens: Field, maximumForwardTokenWork: Field, maximumDurationSeconds: Field,\n}).strict();\nexport const DecisionQuestionFormDraftSchema = z.object({\n id: z.string().max(80), type: z.enum([\"choice\", \"boolean\", \"integer_levels\"]),\n description: z.string().max(2000),\n choices: z.array(z.object({ value: z.string().max(256), description: z.string().max(2000) }).strict()).max(26),\n}).strict();\nconst common = {\n baseModel: ModelProjectBaseModelSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n parentArtifact: DecisionArtifactReferenceSchema.nullable(),\n startingDecision: SavedDecisionExperimentSourceSchema.optional(),\n};\n\n/** Incomplete authoring is retained verbatim, including unfinished JSON and\n * numeric fields. A train draft references an owned reviewed batch; a score\n * draft contains unlabeled input only and grants no Dataset/training authority. */\nexport const DecisionExperimentFormDraftSchema = z.discriminatedUnion(\"mode\", [\n z.object({ ...common, mode: z.literal(\"train\"), batch: ModelProjectVersionedRefSchema.nullable(),\n training: DecisionTrainingFormDraftSchema }).strict(),\n z.object({ ...common, mode: z.literal(\"score\"), stateJson: z.string().max(131_072),\n questions: z.array(DecisionQuestionFormDraftSchema).max(8), limits: DecisionScoringLimitsFormDraftSchema }).strict(),\n]);\nexport type DecisionExperimentFormDraft = z.infer<typeof DecisionExperimentFormDraftSchema>;\n\n/** Selects the actual adapter release and its own tokenizer. The hosted\n * compiler resolves the complete verified source manifest and runtime. */\nexport function decisionSourcePreference() {\n return ModelProjectBaseModelSchema.parse({\n schemaVersion: \"openpond.baseModelPreference.v1\", modelId: DECISION_SOURCE_REPOSITORY,\n revision: DECISION_SOURCE_REVISION, tokenizerRevision: DECISION_SOURCE_REVISION,\n chatTemplateHash: DECISION_CHAT_TEMPLATE_SHA256, modelAssetId: null, source: \"managed\",\n });\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { AlphaEditTrainingRequestSchema } from \"./alphaedit.js\";\nimport { AlphaEditTrainingResultSchema, parseAndVerifyAlphaEditArtifact } from \"./alphaedit-artifact.js\";\nimport { NeuronTrainingRequestSchema } from \"./neuron-training.js\";\nimport { NeuronTrainingResultSchema } from \"./neuron-training-result.js\";\nimport { parseAndVerifyNeuronTrainingArtifact } from \"./neuron-training-artifact.js\";\nimport { SavedAlphaEditExperimentSourceSchema } from \"./alphaedit-experiment-draft.js\";\nimport { SavedNeuronTrainingExperimentSourceSchema } from \"./neuron-training-experiment-draft.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst identity = {\n teamId: Id, ownerUserId: Id, modelProjectId: Id, portableProjectId: Id,\n baseModel: ModelProjectBaseModelSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash}).strict(),\n createdAt: z.iso.datetime(),\n};\nexport const AlphaEditModelVersionContentSchema = z.object({\n ...identity, schemaVersion: z.literal(\"openpond.alphaEditModelVersion.v1\"),\n request: AlphaEditTrainingRequestSchema, artifact: AlphaEditTrainingResultSchema.shape.artifact,\n}).strict();\nexport const AlphaEditModelVersionSchema = AlphaEditModelVersionContentSchema.extend({contentHash: Hash});\nexport type AlphaEditModelVersion = z.infer<typeof AlphaEditModelVersionSchema>;\nexport const NeuronTrainingModelVersionContentSchema = z.object({\n ...identity, schemaVersion: z.literal(\"openpond.neuronTrainingModelVersion.v1\"),\n request: NeuronTrainingRequestSchema, artifact: NeuronTrainingResultSchema.shape.artifact,\n}).strict();\nexport const NeuronTrainingModelVersionSchema = NeuronTrainingModelVersionContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingModelVersion = z.infer<typeof NeuronTrainingModelVersionSchema>;\ntype Scope = {teamId?: string; modelProjectId?: string; ownerUserId?: string};\nfunction fail(): never {\n throw new OpenPondProtocolError(\"weight_model_version_mismatch\", \"The saved Model differs from its exact learned weights, source or committed artifact.\");\n}\nasync function verifyEnvelope(value: AlphaEditModelVersion | NeuronTrainingModelVersion, expected: Scope) {\n const {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId !== undefined && value.teamId !== expected.teamId\n || expected.modelProjectId !== undefined && value.modelProjectId !== expected.modelProjectId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.baseModel.source !== \"managed\" || value.baseModel.modelAssetId !== null\n || value.baseModel.modelId !== value.request.model.modelId\n || value.baseModel.revision !== value.request.model.revision || !value.baseModel.tokenizerRevision\n || value.source.inputHash !== await canonicalSha256(value.request)\n || value.artifact.contentHash !== value.artifact.manifest.contentHash) fail();\n}\nasync function verifyFiles(artifact: {id: string; files: {path: string; artifactId: string; sha256: string; sizeBytes: number}[]},\n manifest: unknown, payloads: {path: string; sha256: string; sizeBytes: number}[], maximumBytes: number) {\n const encoded = canonicalJson(manifest);\n const expected = [{path: \"manifest.json\", sha256: await canonicalSha256(manifest),\n sizeBytes: new TextEncoder().encode(encoded).byteLength}, ...payloads];\n if (expected[0]!.sizeBytes > 262_144 || artifact.files.length !== expected.length\n || new Set(artifact.files.map(file => file.path)).size !== expected.length\n || artifact.files.some(file => file.artifactId !== artifact.id)\n || artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > maximumBytes\n || expected.some(item => !artifact.files.some(file => file.path === item.path && file.sha256 === item.sha256 && file.sizeBytes === item.sizeBytes))) fail();\n}\n/** Verifies retained metadata; actual blob possession/authorization belongs to\n * the artifact custodian on every publication and serving admission. */\nexport async function parseAndVerifyAlphaEditModelVersion(raw: unknown, expected: Scope = {}) {\n const value = AlphaEditModelVersionSchema.parse(raw);\n await verifyEnvelope(value, expected);\n const manifest = await parseAndVerifyAlphaEditArtifact(value.artifact.manifest,\n {request: value.request, runtimeHash: value.source.runtimeHash});\n await verifyFiles(value.artifact, manifest, [manifest.payloads.patch, ...manifest.payloads.state], value.request.training.maxCheckpointBytes);\n return value;\n}\nexport async function parseAndVerifyNeuronTrainingModelVersion(raw: unknown, expected: Scope = {}) {\n const value = NeuronTrainingModelVersionSchema.parse(raw);\n await verifyEnvelope(value, expected);\n const manifest = await parseAndVerifyNeuronTrainingArtifact(value.artifact.manifest,\n {request: value.request, runtimeHash: value.source.runtimeHash});\n await verifyFiles(value.artifact, manifest, [manifest.payload], value.request.training.maxCheckpointBytes);\n return value;\n}\nexport async function verifySavedAlphaEditExperimentSource(sourceInput: unknown, raw: unknown, expected: Scope = {}) {\n const source = SavedAlphaEditExperimentSourceSchema.parse(sourceInput);\n const version = await parseAndVerifyAlphaEditModelVersion(raw, {...expected, modelProjectId: source.modelProjectId});\n if (version.contentHash !== source.versionHash || version.artifact.id !== source.artifact.id\n || version.artifact.contentHash !== source.artifact.contentHash\n || await canonicalSha256(version.request.model) !== source.modelHash) fail();\n return version;\n}\nexport async function verifySavedNeuronTrainingExperimentSource(sourceInput: unknown, raw: unknown, expected: Scope = {}) {\n const source = SavedNeuronTrainingExperimentSourceSchema.parse(sourceInput);\n const version = await parseAndVerifyNeuronTrainingModelVersion(raw, {...expected, modelProjectId: source.modelProjectId});\n if (version.contentHash !== source.versionHash || version.artifact.id !== source.artifact.id\n || version.artifact.contentHash !== source.artifact.contentHash\n || await canonicalSha256(version.request.model) !== source.modelHash) fail();\n return version;\n}\n\nconst SaveRequest = z.object({teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the existing Model revision or create a new Model.\"});\nexport const AlphaEditResultSaveRequestSchema = SaveRequest;\nexport const NeuronTrainingResultSaveRequestSchema = SaveRequest;\nexport type AlphaEditResultSaveRequest = z.infer<typeof AlphaEditResultSaveRequestSchema>;\nexport type NeuronTrainingResultSaveRequest = z.infer<typeof NeuronTrainingResultSaveRequestSchema>;\nconst receipt = {teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema};\nexport const AlphaEditResultSaveReceiptContentSchema = z.object({...receipt,\n schemaVersion: z.literal(\"openpond.alphaEditResultSaveReceipt.v1\"), version: AlphaEditModelVersionSchema}).strict();\nexport const AlphaEditResultSaveReceiptSchema = AlphaEditResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type AlphaEditResultSaveReceipt = z.infer<typeof AlphaEditResultSaveReceiptSchema>;\nexport const NeuronTrainingResultSaveReceiptContentSchema = z.object({...receipt,\n schemaVersion: z.literal(\"openpond.neuronTrainingResultSaveReceipt.v1\"), version: NeuronTrainingModelVersionSchema}).strict();\nexport const NeuronTrainingResultSaveReceiptSchema = NeuronTrainingResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingResultSaveReceipt = z.infer<typeof NeuronTrainingResultSaveReceiptSchema>;\nasync function verifySave(value: AlphaEditResultSaveReceipt | NeuronTrainingResultSaveReceipt, request: AlphaEditResultSaveRequest) {\n const {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || value.operationId !== request.operationId || value.requestHash !== await canonicalSha256(request)\n || value.version.source.executionId !== request.executionId || value.version.source.resultHash !== request.resultHash\n || value.version.artifact.contentHash !== request.artifactHash || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1\n || request.modelProjectId !== null && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId) fail();\n}\nexport async function parseAndVerifyAlphaEditResultSaveReceipt(raw: unknown, input: AlphaEditResultSaveRequest) {\n const request = SaveRequest.parse(input), value = AlphaEditResultSaveReceiptSchema.parse(raw);\n await parseAndVerifyAlphaEditModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n await verifySave(value, request); return value;\n}\nexport async function parseAndVerifyNeuronTrainingResultSaveReceipt(raw: unknown, input: NeuronTrainingResultSaveRequest) {\n const request = SaveRequest.parse(input), value = NeuronTrainingResultSaveReceiptSchema.parse(raw);\n await parseAndVerifyNeuronTrainingModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n await verifySave(value, request); return value;\n}\nexport function createWeightModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const save = (command: AlphaEditResultSaveRequest) => request(`/v1/training/modification-executions/${encodeURIComponent(command.executionId)}/model`,\n {method: \"POST\", body: canonicalJson(command)});\n return {\n async saveAlphaEditResultModel(raw: AlphaEditResultSaveRequest) {\n const command = SaveRequest.parse(raw); return parseAndVerifyAlphaEditResultSaveReceipt(await save(command), command);\n },\n async saveNeuronTrainingResultModel(raw: NeuronTrainingResultSaveRequest) {\n const command = SaveRequest.parse(raw); return parseAndVerifyNeuronTrainingResultSaveReceipt(await save(command), command);\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const ALPHAEDIT_SOURCE_REVISION = \"b84624f44dfe8fc6cd9e41df916c44124a0c46dc\";\nexport const ALPHAEDIT_MAX_CHECKPOINT_BYTES = 17_179_869_184;\nexport const ALPHAEDIT_MAX_DATA_BYTES = 8_388_608;\nexport const AlphaEditHashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\nconst Text = z.string().min(1).max(32_768);\n\n/** This is the measured tensor identity supplied by the qualified runtime,\n * rather than a claim that a repository revision is a torch state digest. */\nexport const AlphaEditModelSchema = NeuronSteeringModelSchema.refine(model =>\n model.modelId === \"Qwen/Qwen3-8B\"\n && model.revision === \"b968826d9c46dd6066d109eabc6255188de91218\"\n && model.dtype === \"bfloat16\" && model.hiddenSize === 4096\n && model.intermediateSizes.length === 36 && model.intermediateSizes.every(size => size === 12288),\n{message: \"AlphaEdit requires the exact unquantized Qwen3-8B BF16 backbone.\"});\nexport type AlphaEditModel = z.infer<typeof AlphaEditModelSchema>;\n\nfunction onePlaceholder(value: string) {\n return value.split(\"{}\").length === 2 && !value.replace(\"{}\", \"\").match(/[{}]/);\n}\nexport const AlphaEditExampleSchema = z.object({\n id: Id, subject: z.string().min(1).max(2048), promptTemplate: Text.refine(onePlaceholder), targetNew: z.string().min(1).max(4096),\n}).strict();\nexport const AlphaEditPreservationExampleSchema = z.object({id: Id, text: Text}).strict();\nexport const AlphaEditExamplesSchema = z.array(AlphaEditExampleSchema).min(1).max(64).superRefine((rows, context) => {\n if (new Set(rows.map(row => row.id)).size !== rows.length || new TextEncoder().encode(canonicalJson(rows)).byteLength > ALPHAEDIT_MAX_DATA_BYTES)\n context.addIssue({code: \"custom\", message: \"Edit identifiers must be unique and the canonical batch must fit the data byte bound.\"});\n});\nexport const AlphaEditPreservationExamplesSchema = z.array(AlphaEditPreservationExampleSchema).min(1).max(4096).superRefine((rows, context) => {\n if (new Set(rows.map(row => row.id)).size !== rows.length || new TextEncoder().encode(canonicalJson(rows)).byteLength > ALPHAEDIT_MAX_DATA_BYTES)\n context.addIssue({code: \"custom\", message: \"Preservation identifiers must be unique and the canonical batch must fit the data byte bound.\"});\n});\nexport type AlphaEditExample = z.infer<typeof AlphaEditExampleSchema>;\nexport type AlphaEditPreservationExample = z.infer<typeof AlphaEditPreservationExampleSchema>;\n\nconst ReviewedData = z.object({batch: ModelProjectVersionedRefSchema, examplesSha256: AlphaEditHashSchema}).strict();\nexport const AlphaEditDataSchema = z.object({edits: ReviewedData, preservation: ReviewedData}).strict();\nexport type AlphaEditData = z.infer<typeof AlphaEditDataSchema>;\nexport const AlphaEditConfigSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditConfig.v1\"),\n implementation: z.literal(\"openpond_qwen_alphaedit_v1\"),\n sourceRevision: z.literal(ALPHAEDIT_SOURCE_REVISION),\n rewriteModule: z.literal(\"mlp.down_proj.weight\"), factToken: z.literal(\"subject_last\"),\n layers: z.array(z.number().int().min(0).max(35)).min(1).max(8),\n lossLayer: z.number().int().min(0).max(35),\n contextTemplateGroups: z.array(z.array(z.string().min(2).max(2048).refine(onePlaceholder)).min(1).max(8)).min(1).max(4),\n nullspaceThreshold: z.number().finite().positive().max(1),\n l2: z.number().finite().positive().max(100_000),\n covariance: z.literal(\"non_padding_uncentered_second_moment_fp32_v1\"),\n projector: z.literal(\"covariance_svd_below_absolute_threshold_v1\"),\n sequentialState: z.literal(\"post_edit_group_mean_keys_outer_product_sum_v1\"),\n targetTokenization: z.literal(\"leading_space_no_special_tokens_v1\"),\n}).strict().superRefine((value, context) => {\n if (value.layers.some((layer, index) => index > 0 && layer <= value.layers[index - 1]!)\n || value.lossLayer < value.layers[value.layers.length - 1]!\n || value.contextTemplateGroups[0]?.length !== 1 || value.contextTemplateGroups[0]?.[0] !== \"{}\")\n context.addIssue({code: \"custom\", message: \"Layers must increase, the loss layer must follow the rewrite layers, and the first context group must be the clean prompt.\"});\n const templates = value.contextTemplateGroups.flat();\n if (new Set(templates).size !== templates.length)\n context.addIssue({code: \"custom\", message: \"Context templates must be unique.\"});\n});\nexport type AlphaEditConfig = z.infer<typeof AlphaEditConfigSchema>;\nexport const AlphaEditTrainingSettingsSchema = z.object({\n maxSteps: z.number().int().min(1).max(128), learningRate: z.number().finite().positive().max(1),\n klFactor: z.number().finite().min(0).max(100), latentWeightDecay: z.number().finite().min(0).max(100),\n clampNormFactor: z.number().finite().positive().max(100),\n maxSequenceLength: z.number().int().min(2).max(8192),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxForwardTokenWork: z.number().int().positive().max(100_000_000),\n maxCheckpointBytes: z.number().int().positive().max(ALPHAEDIT_MAX_CHECKPOINT_BYTES),\n seed: z.number().int().min(0).max(2_147_483_647),\n}).strict();\nexport type AlphaEditTrainingSettings = z.infer<typeof AlphaEditTrainingSettingsSchema>;\nexport const AlphaEditArtifactReferenceSchema = z.object({id: Id, contentHash: AlphaEditHashSchema}).strict();\nexport const AlphaEditTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditTrainingRequest.v1\"),\n model: AlphaEditModelSchema, data: AlphaEditDataSchema,\n config: AlphaEditConfigSchema, training: AlphaEditTrainingSettingsSchema,\n parentArtifact: AlphaEditArtifactReferenceSchema.nullable(),\n}).strict();\nexport type AlphaEditTrainingRequest = z.infer<typeof AlphaEditTrainingRequestSchema>;\n\nexport async function parseAndVerifyAlphaEditTrainingRequest(raw: unknown) {\n return AlphaEditTrainingRequestSchema.parse(raw);\n}\n\n/** These are already reviewed literal edit/preservation records. The host must\n * resolve their batch references and reauthorize them before issuing work. */\nexport async function verifyAlphaEditData(request: AlphaEditTrainingRequest, rawEdits: unknown, rawPreservation: unknown) {\n const parsed = AlphaEditTrainingRequestSchema.parse(request);\n const edits = AlphaEditExamplesSchema.parse(rawEdits), preservation = AlphaEditPreservationExamplesSchema.parse(rawPreservation);\n if (await canonicalSha256(edits) !== parsed.data.edits.examplesSha256\n || await canonicalSha256(preservation) !== parsed.data.preservation.examplesSha256)\n throw new OpenPondProtocolError(\"alphaedit_data_mismatch\", \"The AlphaEdit input differs from its reviewed edit or preservation batch.\");\n return {edits, preservation};\n}\n","import { z } from \"zod\";\nimport { AlphaEditArtifactReferenceSchema, AlphaEditConfigSchema, AlphaEditDataSchema, AlphaEditHashSchema as Hash,\n AlphaEditModelSchema, AlphaEditTrainingRequestSchema,\n type AlphaEditConfig, type AlphaEditTrainingRequest } from \"./alphaedit.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const AlphaEditTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.]{1,200}$/),\n shape: z.array(z.number().int().positive().max(1_000_000)).length(2), dtype: z.enum([\"BF16\", \"F32\"]),\n}).strict();\nexport const ALPHAEDIT_MAX_FILE_BYTES = 2_147_483_648;\nexport const AlphaEditStateFilePathSchema = z.string().regex(/^state-(?:[0-9]|[12][0-9]|3[0-5])\\.safetensors$/);\nconst Payload = z.object({sha256: Hash, sizeBytes: z.number().int().positive().max(ALPHAEDIT_MAX_FILE_BYTES),\n tensors: z.array(AlphaEditTensorSchema).min(1).max(24)}).strict();\n\nexport function alphaEditTensorInventory(config: AlphaEditConfig) {\n const parsed = AlphaEditConfigSchema.parse(config);\n return {\n patch: parsed.layers.map(layer => ({name: `layers.${layer}.mlp.down_proj.weight`, shape: [4096, 12288], dtype: \"BF16\" as const})),\n state: parsed.layers.flatMap(layer => [\"covariance\", \"projector\", \"cache_c\"].map(name => ({\n name: `layers.${layer}.${name}`, shape: [12288, 12288], dtype: \"F32\" as const,\n }))),\n };\n}\n/** Uncompressed tensors plus bounded safetensors headers and canonical manifest.\n * This is a storage bound; it is not a GPU-memory or monetary estimate. */\nexport function alphaEditMinimumCheckpointBytes(config: AlphaEditConfig) {\n const layers = AlphaEditConfigSchema.parse(config).layers.length;\n return layers * (4096 * 12288 * 2 + 3 * 12288 * 12288 * 4) + (layers + 1) * (65_536 + 8) + 262_144;\n}\nexport const AlphaEditArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditArtifact.v1\"), method: z.literal(\"alphaedit\"),\n config: AlphaEditConfigSchema,\n pins: z.object({baseModel: AlphaEditModelSchema, configHash: Hash, recipeHash: Hash, dataHash: Hash,\n data: AlphaEditDataSchema, runtimeHash: Hash, parentArtifactHash: Hash.nullable(),\n preservationModelHash: Hash,\n }).strict(),\n representation: z.literal(\"exact_replacement_bf16_down_proj_matrices_v1\"),\n payloads: z.object({patch: Payload.extend({path: z.literal(\"patch.safetensors\")}),\n state: z.array(Payload.extend({path: AlphaEditStateFilePathSchema})).min(1).max(8)}).strict(),\n}).strict();\nexport const AlphaEditArtifactSchema = AlphaEditArtifactContentSchema.extend({contentHash: Hash});\nexport type AlphaEditArtifact = z.infer<typeof AlphaEditArtifactSchema>;\nconst order = (items: z.infer<typeof AlphaEditTensorSchema>[]) => [...items].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\nexport async function parseAndVerifyAlphaEditArtifact(raw: unknown, expected?: {request: AlphaEditTrainingRequest; runtimeHash: string}) {\n const value = AlphaEditArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const inventory = alphaEditTensorInventory(value.config);\n const fail = (): never => {throw new OpenPondProtocolError(\"alphaedit_artifact_mismatch\", \"The AlphaEdit matrix patch differs from its exact model, state or input.\");};\n if (contentHash !== await canonicalSha256(content)\n || value.pins.configHash !== await canonicalSha256(value.config)\n || value.pins.dataHash !== await canonicalSha256(value.pins.data)\n || value.pins.preservationModelHash !== await canonicalSha256(value.pins.baseModel)\n || value.payloads.patch.sizeBytes < value.config.layers.length * 4096 * 12288 * 2\n || value.payloads.state.length !== value.config.layers.length\n || canonicalJson(order(value.payloads.patch.tensors)) !== canonicalJson(order(inventory.patch))\n || value.payloads.state.some((payload, index) => payload.path !== `state-${value.config.layers[index]}.safetensors`\n || payload.sizeBytes < 3 * 12288 * 12288 * 4\n || canonicalJson(order(payload.tensors)) !== canonicalJson(order(inventory.state.filter(tensor => tensor.name.startsWith(`layers.${value.config.layers[index]}.`)))))) fail();\n if (expected) {\n const request = AlphaEditTrainingRequestSchema.parse(expected.request);\n if (canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.config) !== canonicalJson(request.config)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data)\n || value.pins.recipeHash !== await canonicalSha256(request.training)\n || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== (request.parentArtifact?.contentHash ?? null)\n || value.payloads.patch.sizeBytes + value.payloads.state.reduce((sum, payload) => sum + payload.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n }\n return value;\n}\n\nexport const AlphaEditModuleFileSchema = z.object({path: z.union([z.enum([\"manifest.json\", \"patch.safetensors\"]), AlphaEditStateFilePathSchema]),\n artifactId: z.string().min(1).max(500), sha256: Hash, sizeBytes: z.number().int().positive().max(ALPHAEDIT_MAX_FILE_BYTES)}).strict();\n/** Actual final-head teacher-forced outcomes on the same reviewed inputs.\n * These are separate from latent objectives and are not held-out quality. */\nexport const AlphaEditComparisonsSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditComparisons.v1\"),\n startingState: z.enum([\"base\", \"parent\"]), vocabularySize: z.number().int().min(1).max(262_144),\n edits: z.array(z.object({id: z.string().min(1).max(500), contextCount: z.number().int().min(1).max(32),\n targetTokens: z.number().int().min(1).max(32 * 8191),\n beforeMeanTargetNll: z.number().finite().nonnegative(), afterMeanTargetNll: z.number().finite().nonnegative(),\n reloadedMeanTargetNll: z.number().finite().nonnegative(),\n }).strict()).min(1).max(64),\n /** Full-vocabulary KL(final edited || starting) at each literal preservation\n * text's final non-padding position; every reviewed row is included. */\n preservation: z.object({examples: z.number().int().min(1).max(4096), comparedPositions: z.number().int().min(1).max(4096),\n meanNextTokenKl: z.number().finite().nonnegative(), maximumNextTokenKl: z.number().finite().nonnegative(),\n }).strict(),\n reload: z.object({reference: z.literal(\"final_edited_model\"),\n comparedTargetTokens: z.number().int().min(1).max(64 * 32 * 8191),\n comparedPreservationPositions: z.number().int().min(1).max(4096),\n /** KL(reloaded || final), not KL to the original unedited state. */\n meanNextTokenKl: z.number().finite().nonnegative(), maximumNextTokenKl: z.number().finite().nonnegative(),\n maximumAbsoluteTargetNllDifference: z.number().finite().nonnegative(),\n maximumAbsoluteLogProbabilityDifference: z.number().finite().nonnegative(),\n absoluteTolerance: z.literal(1e-5), equivalent: z.boolean(),\n baseWeightsHash: Hash, editedWeightsHash: Hash, untouchedWeightsHash: Hash,\n }).strict(),\n}).strict();\nexport type AlphaEditComparisons = z.infer<typeof AlphaEditComparisonsSchema>;\n\nexport const AlphaEditTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditTrainingResult.v1\"), inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash, editsProcessed: z.number().int().min(1).max(64),\n latentOptimizerSteps: z.number().int().min(0).max(8192),\n forwardTokenWork: z.number().int().positive().max(100_000_000),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n comparisons: AlphaEditComparisonsSchema,\n targetLosses: z.array(z.object({id: z.string().min(1).max(500), initial: z.number().finite().nonnegative(), final: z.number().finite().nonnegative(),\n optimizerSteps: z.number().int().min(0).max(128)}).strict()).min(1).max(64),\n untouchedWeightsHashBefore: Hash, untouchedWeightsHashAfter: Hash,\n editedWeightsHashBefore: Hash, editedWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n layerEvidence: z.array(z.object({layer: z.number().int().min(0).max(35), preservationTokens: z.number().int().positive(),\n nullspaceRank: z.number().int().min(0).max(12288), updateFrobeniusNorm: z.number().finite().nonnegative(),\n solveRelativeResidual: z.number().finite().nonnegative().max(0.01),\n sequentialKeyCount: z.number().int().min(1).max(64),\n }).strict()).min(1).max(8),\n artifact: AlphaEditArtifactReferenceSchema.extend({manifest: AlphaEditArtifactSchema, files: z.array(AlphaEditModuleFileSchema).min(3).max(10)}),\n}).strict();\nexport const AlphaEditTrainingResultSchema = AlphaEditTrainingResultContentSchema.extend({contentHash: Hash});\nexport type AlphaEditTrainingResult = z.infer<typeof AlphaEditTrainingResultSchema>;\nexport async function parseAndVerifyAlphaEditTrainingResult(raw: unknown, expected: {request: AlphaEditTrainingRequest; runtimeHash: string}) {\n const request = AlphaEditTrainingRequestSchema.parse(expected.request);\n const value = AlphaEditTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyAlphaEditArtifact(value.artifact.manifest, expected);\n const metadata = value.artifact.files.find(file => file.path === \"manifest.json\");\n const patch = value.artifact.files.find(file => file.path === \"patch.safetensors\");\n const payloads = [manifest.payloads.patch, ...manifest.payloads.state];\n const comparison = value.comparisons, reload = comparison.reload;\n const contextCount = request.config.contextTemplateGroups.reduce((sum, group) => sum + group.length, 0);\n const equivalent = reload.baseWeightsHash === request.model.weightsHash\n && reload.editedWeightsHash === value.editedWeightsHashAfter\n && reload.untouchedWeightsHash === value.untouchedWeightsHashAfter\n && reload.maximumAbsoluteTargetNllDifference <= reload.absoluteTolerance\n && reload.maximumAbsoluteLogProbabilityDifference <= reload.absoluteTolerance\n && reload.maximumNextTokenKl <= reload.absoluteTolerance;\n if (contentHash !== await canonicalSha256(content) || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.runtimeHash !== expected.runtimeHash\n || value.dataHash !== await canonicalSha256(request.data)\n || value.untouchedWeightsHashBefore !== value.untouchedWeightsHashAfter\n || value.targetLosses.length !== value.editsProcessed || new Set(value.targetLosses.map(row => row.id)).size !== value.editsProcessed\n || value.latentOptimizerSteps !== value.targetLosses.reduce((sum, row) => sum + row.optimizerSteps, 0)\n || value.targetLosses.some(row => row.optimizerSteps > request.training.maxSteps)\n || comparison.startingState !== (request.parentArtifact ? \"parent\" : \"base\")\n || comparison.edits.length !== value.editsProcessed\n || canonicalJson(comparison.edits.map(row => row.id)) !== canonicalJson(value.targetLosses.map(row => row.id))\n || comparison.edits.some(row => row.contextCount !== contextCount || row.targetTokens % contextCount !== 0\n || row.targetTokens > contextCount * (request.training.maxSequenceLength - 1)\n || Math.abs(row.afterMeanTargetNll - row.reloadedMeanTargetNll) > reload.maximumAbsoluteTargetNllDifference + 1e-12)\n || comparison.preservation.examples !== comparison.preservation.comparedPositions\n || comparison.preservation.meanNextTokenKl > comparison.preservation.maximumNextTokenKl + 1e-12\n || reload.comparedTargetTokens !== comparison.edits.reduce((sum, row) => sum + row.targetTokens, 0)\n || reload.comparedPreservationPositions !== comparison.preservation.comparedPositions\n || reload.meanNextTokenKl > reload.maximumNextTokenKl + 1e-12\n || reload.equivalent !== equivalent\n || value.forwardTokenWork < 3 * (reload.comparedTargetTokens + reload.comparedPreservationPositions)\n || value.forwardTokenWork > request.training.maxForwardTokenWork || value.durationMs > request.training.maxDurationSeconds * 1000\n || canonicalJson(value.layerEvidence.map(row => row.layer)) !== canonicalJson(request.config.layers)\n || value.layerEvidence.some(row => row.sequentialKeyCount !== value.editsProcessed)\n || value.artifact.contentHash !== manifest.contentHash || !metadata || !patch\n || value.artifact.files.length !== request.config.layers.length + 2\n || new Set(value.artifact.files.map(file => file.path)).size !== value.artifact.files.length\n || metadata.sha256 !== await canonicalSha256(manifest) || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || metadata.sizeBytes > 262_144\n || patch.sha256 !== manifest.payloads.patch.sha256 || patch.sizeBytes !== manifest.payloads.patch.sizeBytes\n || payloads.some(payload => !value.artifact.files.some(file => file.path === payload.path\n && file.sha256 === payload.sha256 && file.sizeBytes === payload.sizeBytes))\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"alphaedit_result_mismatch\", \"The AlphaEdit result differs from its matrix patch, observed work or committed custody.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const NEURON_TRAINING_MAX_BYTES = 16_777_216;\nexport const NEURON_TRAINING_UPSTREAM_REVISION = \"8a55f3159f735eb0823d7a894f67f632bf568bb3\";\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronTrainingCoordinateSchema = z.object({\n layer: z.number().int().min(0).max(35), neuron: z.number().int().min(0).max(12_287),\n}).strict();\nexport const NeuronTrainingSelectionSchema = z.object({\n count: z.number().int().min(1).max(128),\n span: z.enum([\"reply_prediction\", \"reply_start\", \"prompt\"]),\n backgroundStatistic: z.enum([\"mean_domains\", \"max_domains\"]),\n maximumBackgroundTargetRatio: z.number().finite().min(0).max(1),\n gradientExamples: z.number().int().min(1).max(64),\n explicitCoordinates: z.array(NeuronTrainingCoordinateSchema).min(1).max(128).nullable(),\n}).strict().superRefine((value, context) => {\n if (value.explicitCoordinates && (value.explicitCoordinates.length !== value.count\n || new Set(value.explicitCoordinates.map(row => `${row.layer}:${row.neuron}`)).size !== value.count))\n context.addIssue({code: \"custom\", path: [\"explicitCoordinates\"], message: \"Explicit coordinates must be distinct and match the selected count.\"});\n});\nexport const NeuronTrainingDataReferenceSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport const NeuronTrainingDataSchema = z.object({\n target: NeuronTrainingDataReferenceSchema,\n background: z.array(NeuronTrainingDataReferenceSchema.extend({domain: z.string().trim().min(1).max(100)}).strict()).min(1).max(8),\n preservation: NeuronTrainingDataReferenceSchema.nullable(),\n}).strict().superRefine((value, context) => {\n if (new Set(value.background.map(row => row.domain)).size !== value.background.length)\n context.addIssue({code: \"custom\", path: [\"background\"], message: \"Background domains must have distinct names.\"});\n});\nexport const NeuronTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.1),\n maxSteps: z.number().int().min(1).max(128),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n maxSequenceLength: z.number().int().min(2).max(8192),\n preservationWeight: z.number().finite().min(0).max(100),\n preservationExamplesPerStep: z.number().int().min(0).max(32),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().min(1).max(NEURON_TRAINING_MAX_BYTES),\n maximumForwardTokenWork: z.number().int().min(1).max(100_000_000),\n}).strict();\n/** A dense Qwen3 port, not a claim that the upstream quality findings transfer. */\nexport const NeuronTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.selectiveNeuronTrainingRequest.v1\"),\n model: NeuronSteeringModelSchema, data: NeuronTrainingDataSchema,\n selection: NeuronTrainingSelectionSchema, training: NeuronTrainingSettingsSchema,\n /** The exported inference delta has no optimizer state. Never silently reset a continuation. */\n parentArtifact: z.null(),\n}).strict().superRefine((value, context) => {\n if (value.model.modelId !== \"Qwen/Qwen3-8B\" || value.model.revision !== \"b968826d9c46dd6066d109eabc6255188de91218\"\n || value.model.dtype !== \"bfloat16\" || value.model.hiddenSize !== 4096 || value.model.intermediateSizes.length !== 36\n || value.model.intermediateSizes.some(size => size !== 12288))\n context.addIssue({code: \"custom\", path: [\"model\"], message: \"Use the exact supported dense BF16 Qwen3-8B source identity.\"});\n const preserve = value.training.preservationWeight > 0;\n if (preserve !== (value.data.preservation !== null) || preserve !== (value.training.preservationExamplesPerStep > 0))\n context.addIssue({code: \"custom\", path: [\"training\", \"preservationWeight\"], message: \"Preservation data, weight and per-step work must be present together.\"});\n});\nexport type NeuronTrainingRequest = z.infer<typeof NeuronTrainingRequestSchema>;\nexport type NeuronTrainingSelection = z.infer<typeof NeuronTrainingSelectionSchema>;\nexport type NeuronTrainingData = z.infer<typeof NeuronTrainingDataSchema>;\nexport type NeuronTrainingSettings = z.infer<typeof NeuronTrainingSettingsSchema>;\nexport const NeuronTrainingEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingEncoding.v1\"),\n implementation: z.literal(\"supervised_trainer.prepare_example.v1\"),\n modelHash: Hash, tokenizerHash: Hash, maxSequenceLength: z.number().int().min(2).max(8192),\n completionOnly: z.literal(true), enableThinking: z.literal(false),\n truncation: z.literal(\"left_prompt_preserve_final_target_v1\"),\n selectionBoundaries: z.literal(\"verified_last_user_template_offsets_v1\"),\n}).strict();\nexport async function neuronTrainingEncoding(model: z.infer<typeof NeuronSteeringModelSchema>, maxSequenceLength: number) {\n const parsed = NeuronSteeringModelSchema.parse(model);\n return NeuronTrainingEncodingSchema.parse({schemaVersion: \"openpond.neuronTrainingEncoding.v1\",\n implementation: \"supervised_trainer.prepare_example.v1\", modelHash: await canonicalSha256(parsed), tokenizerHash: parsed.tokenizerHash,\n maxSequenceLength, completionOnly: true, enableThinking: false, truncation: \"left_prompt_preserve_final_target_v1\",\n selectionBoundaries: \"verified_last_user_template_offsets_v1\"});\n}\nexport async function parseAndVerifyNeuronTrainingRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = NeuronTrainingRequestSchema.parse(raw);\n const encodingHash = await canonicalSha256(await neuronTrainingEncoding(value.model, value.training.maxSequenceLength));\n if ([value.data.target, ...value.data.background, ...(value.data.preservation ? [value.data.preservation] : [])]\n .some(row => row.encodingHash !== encodingHash))\n throw new OpenPondProtocolError(\"neuron_training_encoding_mismatch\", \"The reviewed batches differ from the exact native supervised encoding.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { NEURON_TRAINING_MAX_BYTES, parseAndVerifyNeuronTrainingRequest, type NeuronTrainingRequest } from \"./neuron-training.js\";\nimport { NeuronTrainingArtifactSchema, NeuronTrainingSelectionResultSchema, parseAndVerifyNeuronTrainingArtifact } from \"./neuron-training-artifact.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/), Work = z.number().int().nonnegative().max(100_000_000);\nexport const NeuronTrainingWorkSchema = z.object({selectionTarget: Work, selectionBackground: Work, selectionGradient: Work,\n training: Work, preservationOriginal: Work, preservationEdited: Work, verification: Work}).strict();\nexport const NeuronTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingResult.v1\"), inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash, selection: NeuronTrainingSelectionResultSchema,\n optimizerSteps: z.number().int().min(1).max(128), examplesProcessed: z.number().int().min(1).max(4096),\n targetTokens: z.number().int().positive().max(33_554_432), preservationTokens: Work,\n work: NeuronTrainingWorkSchema, forwardTokenWork: Work, backwardTokenWork: Work,\n durationMs: z.number().finite().nonnegative().max(21_600_000), meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n meanPreservationKl: z.number().finite().nonnegative().nullable(),\n baseWeightsHashBefore: Hash, baseWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n trainableParameterCount: z.number().int().min(4097).max(524_416),\n artifact: z.object({id: z.string().min(1).max(500), contentHash: Hash, manifest: NeuronTrainingArtifactSchema,\n files: z.array(z.object({path: z.enum([\"manifest.json\", \"patch.safetensors\"]), artifactId: z.string().min(1).max(500),\n sha256: Hash, sizeBytes: z.number().int().positive().max(NEURON_TRAINING_MAX_BYTES)}).strict()).length(2)}).strict(),\n}).strict();\nexport const NeuronTrainingResultSchema = NeuronTrainingResultContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingResult = z.infer<typeof NeuronTrainingResultSchema>;\nexport async function parseAndVerifyNeuronTrainingResult(raw: unknown, expected: {request: NeuronTrainingRequest; runtimeHash: string}) {\n assertBoundedTaskJson(raw, 1_048_576);\n const request = await parseAndVerifyNeuronTrainingRequest(expected.request);\n const value = NeuronTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyNeuronTrainingArtifact(value.artifact.manifest, {request, runtimeHash: expected.runtimeHash});\n const tensor = value.artifact.files.find(row => row.path === \"patch.safetensors\"), metadata = value.artifact.files.find(row => row.path === \"manifest.json\");\n if (contentHash !== await canonicalSha256(content) || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.dataHash !== await canonicalSha256(request.data)\n || value.runtimeHash !== expected.runtimeHash || value.preparedRowsHash !== value.selection.preparedRowsHash\n || canonicalJson(value.selection) !== canonicalJson(manifest.selection) || value.artifact.contentHash !== manifest.contentHash\n || value.baseWeightsHashBefore !== request.model.weightsHash || value.baseWeightsHashAfter !== value.baseWeightsHashBefore\n || value.trainableParameterCount !== request.selection.count * (request.model.hiddenSize + 1)\n || value.optimizerSteps !== request.training.maxSteps || value.examplesProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.durationMs > request.training.maxDurationSeconds * 1000 || value.forwardTokenWork > request.training.maximumForwardTokenWork\n || value.forwardTokenWork !== Object.values(value.work).reduce((sum, work) => sum + work, 0)\n || value.backwardTokenWork !== value.work.selectionGradient + value.work.training + value.work.preservationEdited\n || value.targetTokens > value.work.training || value.work.selectionTarget <= 0 || value.work.selectionBackground <= 0\n || value.work.selectionGradient !== value.work.selectionTarget || value.work.verification <= 0\n || (request.training.preservationWeight > 0) !== (value.meanPreservationKl !== null)\n || value.work.preservationOriginal !== value.work.preservationEdited\n || request.training.preservationWeight === 0 && (value.preservationTokens !== 0 || value.work.preservationOriginal !== 0)\n || request.training.preservationWeight > 0 && (value.preservationTokens <= 0 || value.work.preservationOriginal <= 0)\n || !tensor || !metadata || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || metadata.sha256 !== await canonicalSha256(manifest) || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || value.artifact.files.some(row => row.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, row) => sum + row.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"neuron_training_result_mismatch\", \"The selective neuron result differs from its exact run, measured work, frozen base or committed learned patch.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { NeuronTrainingCoordinateSchema, NeuronTrainingDataSchema, NEURON_TRAINING_MAX_BYTES,\n NEURON_TRAINING_UPSTREAM_REVISION, parseAndVerifyNeuronTrainingRequest, type NeuronTrainingRequest } from \"./neuron-training.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronTrainingAlgorithmSchema = z.object({\n implementation: z.literal(\"openpond_qwen3_selective_columns_v1\"),\n upstream: z.literal(\"changjonathanc/neuron-tuning\"), revision: z.literal(NEURON_TRAINING_UPSTREAM_REVISION), license: z.literal(\"Apache-2.0\"),\n hook: z.literal(\"mlp.down_proj\"), operation: z.literal(\"output_plus_selected_input_times_delta_v1\"),\n parameterization: z.literal(\"column_gain_rms_direction_v1\"), activityQuantile: z.literal(0.9),\n backgroundFloor: z.literal(0.000001), gradientSubsetSeed: z.literal(0),\n optimizer: z.literal(\"Adam\"), betas: z.tuple([z.literal(0.9), z.literal(0.999)]), epsilon: z.literal(1e-8),\n weightDecay: z.literal(0), gradientClipNorm: z.literal(1), batchSize: z.literal(1),\n parameterDtype: z.literal(\"float32\"), resume: z.literal(\"unsupported\"),\n}).strict();\nexport function neuronTrainingAlgorithm() {\n return NeuronTrainingAlgorithmSchema.parse({implementation: \"openpond_qwen3_selective_columns_v1\",\n upstream: \"changjonathanc/neuron-tuning\", revision: NEURON_TRAINING_UPSTREAM_REVISION, license: \"Apache-2.0\",\n hook: \"mlp.down_proj\", operation: \"output_plus_selected_input_times_delta_v1\", parameterization: \"column_gain_rms_direction_v1\",\n activityQuantile: 0.9, backgroundFloor: 0.000001, gradientSubsetSeed: 0,\n optimizer: \"Adam\", betas: [0.9, 0.999], epsilon: 1e-8, weightDecay: 0, gradientClipNorm: 1,\n batchSize: 1, parameterDtype: \"float32\", resume: \"unsupported\"});\n}\nexport const NeuronTrainingSelectionEntrySchema = NeuronTrainingCoordinateSchema.extend({\n targetMeanAbsolute: z.number().finite().positive(), backgroundMeanAbsolute: z.number().finite().nonnegative(),\n backgroundTargetRatio: z.number().finite().nonnegative(), gradientNorm: z.number().finite().nonnegative(),\n score: z.number().finite().nonnegative(), targetActivityThreshold: z.number().finite().nonnegative(),\n backgroundByDomain: z.array(z.object({domainIndex: z.number().int().min(0).max(7), meanAbsolute: z.number().finite().nonnegative()}).strict()).min(1).max(8),\n}).strict();\nexport const NeuronTrainingSelectionResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingSelectionResult.v1\"), modelHash: Hash, dataHash: Hash, selectionConfigHash: Hash,\n preparedRowsHash: Hash, source: z.enum([\"automatic\", \"explicit\"]),\n targetExampleIds: z.array(z.string().min(1).max(200)).min(1).max(64),\n eligibleCount: z.number().int().min(1).max(442_368),\n entries: z.array(NeuronTrainingSelectionEntrySchema).min(1).max(128),\n}).strict();\nexport const NeuronTrainingSelectionResultSchema = NeuronTrainingSelectionResultContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingSelectionResult = z.infer<typeof NeuronTrainingSelectionResultSchema>;\nfunction fail(): never { throw new OpenPondProtocolError(\"neuron_training_artifact_mismatch\", \"The learned patch differs from its exact base, verified selection, data, settings or tensor inventory.\"); }\nconst close = (a: number, b: number) => Math.abs(a - b) <= 1e-6 * Math.max(1, Math.abs(a), Math.abs(b));\nexport async function parseAndVerifyNeuronTrainingSelection(raw: unknown, request: NeuronTrainingRequest) {\n const value = NeuronTrainingSelectionResultSchema.parse(raw), {contentHash, ...content} = value;\n const coordinates = value.entries.map(({layer, neuron}) => ({layer, neuron}));\n if (contentHash !== await canonicalSha256(content) || value.modelHash !== await canonicalSha256(request.model)\n || value.dataHash !== await canonicalSha256(request.data) || value.selectionConfigHash !== await canonicalSha256(request.selection)\n || value.entries.length !== request.selection.count || value.eligibleCount < value.entries.length\n || new Set(value.entries.map(row => `${row.layer}:${row.neuron}`)).size !== value.entries.length\n || new Set(value.targetExampleIds).size !== value.targetExampleIds.length || value.targetExampleIds.length > request.selection.gradientExamples\n || value.source !== (request.selection.explicitCoordinates ? \"explicit\" : \"automatic\")\n || request.selection.explicitCoordinates && canonicalJson(coordinates) !== canonicalJson(request.selection.explicitCoordinates)) fail();\n if (value.source === \"automatic\" && value.entries.some((row, index) => {\n const previous = value.entries[index - 1];\n return previous && (row.score > previous.score || row.score === previous.score\n && (row.layer < previous.layer || row.layer === previous.layer && row.neuron < previous.neuron));\n })) fail();\n for (const row of value.entries) {\n if (row.targetMeanAbsolute < row.targetActivityThreshold\n || row.backgroundTargetRatio > request.selection.maximumBackgroundTargetRatio + 1e-6\n || !close(row.backgroundTargetRatio, row.backgroundMeanAbsolute / row.targetMeanAbsolute)\n || !close(row.score, row.gradientNorm / Math.max(row.backgroundMeanAbsolute, 0.000001))\n || canonicalJson(row.backgroundByDomain.map(item => item.domainIndex)) !== canonicalJson(request.data.background.map((_item, index) => index))) fail();\n const background = request.selection.backgroundStatistic === \"max_domains\"\n ? Math.max(...row.backgroundByDomain.map(item => item.meanAbsolute))\n : row.backgroundByDomain.reduce((sum, item) => sum + item.meanAbsolute, 0) / row.backgroundByDomain.length;\n if (!close(background, row.backgroundMeanAbsolute)) fail();\n }\n return value;\n}\nexport const NeuronTrainingPatchTensorSchema = z.object({\n name: z.string().regex(/^layer(?:[0-9]|[12][0-9]|3[0-5])\\.(?:indices|delta)$/),\n dtype: z.enum([\"I64\", \"F32\"]), shape: z.array(z.number().int().positive().max(4096)).min(1).max(2),\n}).strict();\nexport function neuronTrainingPatchTensorInventory(selection: NeuronTrainingSelectionResult) {\n const layers = new Map<number, number>();\n for (const entry of NeuronTrainingSelectionResultSchema.parse(selection).entries) layers.set(entry.layer, (layers.get(entry.layer) ?? 0) + 1);\n return [...layers].flatMap(([layer, count]) => [\n {name: `layer${layer}.indices`, dtype: \"I64\" as const, shape: [count]},\n {name: `layer${layer}.delta`, dtype: \"F32\" as const, shape: [4096, count]},\n ]).sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\nexport const NeuronTrainingArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingArtifact.v1\"), method: z.literal(\"selective_neuron_training\"),\n algorithm: NeuronTrainingAlgorithmSchema,\n pins: z.object({baseModel: NeuronSteeringModelSchema, inputHash: Hash, data: NeuronTrainingDataSchema, dataHash: Hash,\n selectionConfigHash: Hash, trainingConfigHash: Hash, runtimeHash: Hash, parentArtifactHash: z.null()}).strict(),\n selection: NeuronTrainingSelectionResultSchema,\n payload: z.object({path: z.literal(\"patch.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(NEURON_TRAINING_MAX_BYTES),\n tensors: z.array(NeuronTrainingPatchTensorSchema).min(2).max(72)}).strict(),\n}).strict();\nexport const NeuronTrainingArtifactSchema = NeuronTrainingArtifactContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingArtifact = z.infer<typeof NeuronTrainingArtifactSchema>;\nexport async function parseAndVerifyNeuronTrainingArtifact(raw: unknown, expected: {request: NeuronTrainingRequest; runtimeHash: string}) {\n assertBoundedTaskJson(raw, 262_144);\n const value = NeuronTrainingArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(expected.request);\n await parseAndVerifyNeuronTrainingSelection(value.selection, request);\n if (contentHash !== await canonicalSha256(content) || canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data) || value.pins.inputHash !== await canonicalSha256(request)\n || value.pins.dataHash !== await canonicalSha256(request.data) || value.pins.selectionConfigHash !== await canonicalSha256(request.selection)\n || value.pins.trainingConfigHash !== await canonicalSha256(request.training) || value.pins.runtimeHash !== expected.runtimeHash\n || canonicalJson(value.payload.tensors) !== canonicalJson(neuronTrainingPatchTensorInventory(value.selection))\n || value.payload.sizeBytes > request.training.maxCheckpointBytes) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { AlphaEditArtifactReferenceSchema, AlphaEditConfigSchema, AlphaEditTrainingSettingsSchema,\n ALPHAEDIT_SOURCE_REVISION } from \"./alphaedit.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedAlphaEditExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash, artifact: AlphaEditArtifactReferenceSchema, modelHash: Hash,\n}).strict();\nexport type SavedAlphaEditExperimentSource = z.infer<typeof SavedAlphaEditExperimentSourceSchema>;\n\n/** Explicit Qwen port defaults. Availability and quality require runtime evidence. */\nexport const ALPHAEDIT_CONFIG_DEFAULTS = AlphaEditConfigSchema.parse({\n schemaVersion: \"openpond.alphaEditConfig.v1\", implementation: \"openpond_qwen_alphaedit_v1\",\n sourceRevision: ALPHAEDIT_SOURCE_REVISION, rewriteModule: \"mlp.down_proj.weight\", factToken: \"subject_last\",\n layers: [27, 28, 29], lossLayer: 31, contextTemplateGroups: [[\"{}\"]],\n nullspaceThreshold: 0.02, l2: 10,\n covariance: \"non_padding_uncentered_second_moment_fp32_v1\",\n projector: \"covariance_svd_below_absolute_threshold_v1\",\n sequentialState: \"post_edit_group_mean_keys_outer_product_sum_v1\",\n targetTokenization: \"leading_space_no_special_tokens_v1\",\n});\nexport const ALPHAEDIT_TRAINING_DEFAULTS = AlphaEditTrainingSettingsSchema.parse({\n maxSteps: 25, learningRate: 0.1, klFactor: 0.0625, latentWeightDecay: 0.5,\n clampNormFactor: 0.75, maxSequenceLength: 2048, maxDurationSeconds: 3600,\n maxForwardTokenWork: 16_000_000, maxCheckpointBytes: 8_589_934_592, seed: 42,\n});\n\nconst Field = z.string().max(100);\nexport const AlphaEditConfigFormDraftSchema = z.object({\n layers: z.string().max(200), lossLayer: Field,\n contextTemplateGroups: z.string().max(65_536), nullspaceThreshold: Field, l2: Field,\n}).strict();\nexport const AlphaEditTrainingFormDraftSchema = z.object({\n maxSteps: Field, learningRate: Field, klFactor: Field, latentWeightDecay: Field,\n clampNormFactor: Field, maxSequenceLength: Field, maxDurationSeconds: Field,\n maxForwardTokenWork: Field, maxCheckpointBytes: Field, seed: Field,\n}).strict();\n/** An incomplete authoring snapshot, never an approved edit or paid dispatch. */\nexport const AlphaEditExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n editsBatch: ModelProjectVersionedRefSchema.nullable(),\n preservationBatch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n config: AlphaEditConfigFormDraftSchema, training: AlphaEditTrainingFormDraftSchema,\n parentArtifact: AlphaEditArtifactReferenceSchema.nullable(),\n startingModule: SavedAlphaEditExperimentSourceSchema.optional(),\n}).strict();\nexport type AlphaEditExperimentFormDraft = z.infer<typeof AlphaEditExperimentFormDraftSchema>;\n\nexport function newAlphaEditExperimentForm(baseModel: z.infer<typeof ModelProjectBaseModelSchema> | null = null): AlphaEditExperimentFormDraft {\n return AlphaEditExperimentFormDraftSchema.parse({\n baseModel, editsBatch: null, preservationBatch: null, name: \"\", maximumSpendUsd: \"\",\n config: {layers: ALPHAEDIT_CONFIG_DEFAULTS.layers.join(\", \"), lossLayer: String(ALPHAEDIT_CONFIG_DEFAULTS.lossLayer),\n contextTemplateGroups: JSON.stringify(ALPHAEDIT_CONFIG_DEFAULTS.contextTemplateGroups),\n nullspaceThreshold: String(ALPHAEDIT_CONFIG_DEFAULTS.nullspaceThreshold), l2: String(ALPHAEDIT_CONFIG_DEFAULTS.l2)},\n training: Object.fromEntries(Object.entries(ALPHAEDIT_TRAINING_DEFAULTS).map(([key, value]) => [key, String(value)])),\n parentArtifact: null,\n });\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { StoredManagedModificationResultReferenceSchema } from \"./experiment-result-reference.js\";\nimport { NeuronTrainingSelectionSchema, NeuronTrainingSettingsSchema } from \"./neuron-training.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedNeuronTrainingExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type SavedNeuronTrainingExperimentSource = z.infer<typeof SavedNeuronTrainingExperimentSourceSchema>;\nexport const NEURON_TRAINING_SELECTION_DEFAULTS = NeuronTrainingSelectionSchema.parse({\n count: 8, span: \"reply_prediction\", backgroundStatistic: \"max_domains\",\n maximumBackgroundTargetRatio: 0.2, gradientExamples: 16, explicitCoordinates: null,\n});\nexport const NEURON_TRAINING_DEFAULTS = NeuronTrainingSettingsSchema.parse({\n learningRate: 0.03, maxSteps: 32, gradientAccumulationSteps: 1, maxSequenceLength: 2048,\n preservationWeight: 0, preservationExamplesPerStep: 0, seed: 42,\n maxDurationSeconds: 3600, maxCheckpointBytes: 16_777_216, maximumForwardTokenWork: 16_000_000,\n});\nconst Field = z.string().max(100);\nexport const NeuronTrainingSelectionFormDraftSchema = z.object({\n count: Field, span: NeuronTrainingSelectionSchema.shape.span,\n backgroundStatistic: NeuronTrainingSelectionSchema.shape.backgroundStatistic,\n maximumBackgroundTargetRatio: Field, gradientExamples: Field,\n /** Blank selects automatically; otherwise one layer:neuron coordinate per line. */\n coordinates: z.string().max(10_000),\n}).strict();\nexport const NeuronTrainingSettingsFormDraftSchema = z.object({\n learningRate: Field, maxSteps: Field, gradientAccumulationSteps: Field, maxSequenceLength: Field,\n preservationWeight: Field, preservationExamplesPerStep: Field, seed: Field,\n maxDurationSeconds: Field, maxCheckpointBytes: Field, maximumForwardTokenWork: Field,\n}).strict();\nexport const NeuronTrainingInspectionSourceSchema = z.object({\n result: StoredManagedModificationResultReferenceSchema,\n modelHash: Hash,\n}).strict();\n/** Selection provenance is reauthorized by the compiler; this reference grants\n * no access to a capture and cannot replace reviewed target/background data. */\nexport const NeuronTrainingExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(), targetBatch: ModelProjectVersionedRefSchema.nullable(),\n background: z.array(z.object({domain: z.string().max(100), batch: ModelProjectVersionedRefSchema.nullable()}).strict()).max(8),\n preservationBatch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n selection: NeuronTrainingSelectionFormDraftSchema, training: NeuronTrainingSettingsFormDraftSchema,\n parentArtifact: z.null(), inspectionSource: NeuronTrainingInspectionSourceSchema.optional(),\n}).strict();\nexport type NeuronTrainingExperimentFormDraft = z.infer<typeof NeuronTrainingExperimentFormDraftSchema>;\nexport function newNeuronTrainingExperimentForm(baseModel: z.infer<typeof ModelProjectBaseModelSchema> | null = null): NeuronTrainingExperimentFormDraft {\n const selection = NEURON_TRAINING_SELECTION_DEFAULTS;\n return NeuronTrainingExperimentFormDraftSchema.parse({\n baseModel, targetBatch: null, background: [{domain: \"background\", batch: null}], preservationBatch: null,\n name: \"\", maximumSpendUsd: \"\", parentArtifact: null,\n selection: {count: String(selection.count), span: selection.span, backgroundStatistic: selection.backgroundStatistic,\n maximumBackgroundTargetRatio: String(selection.maximumBackgroundTargetRatio), gradientExamples: String(selection.gradientExamples), coordinates: \"\"},\n training: Object.fromEntries(Object.entries(NEURON_TRAINING_DEFAULTS).map(([key, value]) => [key, String(value)])),\n });\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\nimport { TrainingResultCandidateSchema } from \"./training-result.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst OwnerId = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst ApiOrigin = z.url().max(2000).refine(value => {\n try {\n const url = new URL(value);\n return (url.protocol === \"https:\" || url.protocol === \"http:\" &&\n [\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(url.hostname)) &&\n !url.username && !url.password && !url.search && !url.hash && url.origin === value;\n } catch {\n return false;\n }\n}, \"Use a canonical HTTPS API origin, or an explicit loopback development origin.\");\n\nconst scope = {\n location: z.literal(\"cloud\"),\n apiOrigin: ApiOrigin,\n owner: z.object({ teamId: OwnerId, actorId: OwnerId }).strict(),\n /** Workspace Project captured by the producing execution, not a UI filter. */\n projectId: OwnerId.nullable(),\n};\n\n/** A retained completed candidate. Saving a named Model or publishing a registry\n * artifact is independent of this identity and must not change its reference. */\nexport const StoredTrainingResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"training_result\"),\n jobId: Id,\n modelProjectId: Id,\n portableProjectId: Id,\n submissionHash: Hash,\n candidate: z.lazy(() => TrainingResultCandidateSchema.omit({ registryArtifactId: true })),\n executionReceipt: ModelProjectImmutableRefSchema,\n}).strict().superRefine((reference, context) => {\n if ((reference.candidate.composition === \"base\") !== (reference.candidate.parent === null))\n context.addIssue({ code: \"custom\", path: [\"candidate\", \"parent\"], message: \"The candidate composition must retain its exact parent checkpoint.\" });\n});\n\n/** Pins the recorded nested result, whose hash remains stable while cleanup,\n * settlement and the execution's outer read projection continue to change. */\nexport const StoredManagedModificationResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"managed_modification_result\"),\n executionId: OwnerId,\n method: ModelModificationMethodSchema,\n inputHash: Hash,\n runtimeHash: Hash,\n resultHash: Hash,\n}).strict();\n\n/** A completed Engram result retains its committed module independently of the\n * mutable execution projection and any later named Model publication. */\nexport const StoredEngramResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"engram_result\"),\n executionId: OwnerId,\n inputHash: Hash,\n runtimeHash: Hash,\n resultHash: Hash,\n artifact: z.object({ id: OwnerId, contentHash: Hash }).strict(),\n}).strict();\n\n/** Both modes retain the original execution result. Scoring the released\n * Nimble adapter has no customer artifact; trained results always retain their\n * committed learned artifact. Neither reference becomes a saved Model alias. */\nexport const StoredDecisionResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"decision_result\"), mode: z.enum([\"train\", \"score\"]),\n executionId: OwnerId, inputHash: Hash, modelHash: Hash, runtimeHash: Hash, resultHash: Hash,\n artifact: z.object({ id: Id, contentHash: Hash }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if (value.mode === \"train\" && value.artifact === null)\n context.addIssue({code: \"custom\", path: [\"artifact\"], message: \"A trained decision result must retain its exact committed artifact.\"});\n});\n\nconst learnedWeightResult = {\n ...scope, executionId: OwnerId, inputHash: Hash, modelHash: Hash, runtimeHash: Hash, resultHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(),\n};\nexport const StoredAlphaEditResultReferenceSchema = z.object({\n ...learnedWeightResult, kind: z.literal(\"alphaedit_result\"),\n}).strict();\nexport const StoredNeuronTrainingResultReferenceSchema = z.object({\n ...learnedWeightResult, kind: z.literal(\"neuron_training_result\"),\n}).strict();\n\n/** References contain no result bytes, credentials or execution approval. Each\n * read must use the authenticated configured origin, reauthorize creator/team/\n * Project access and verify every pin against its canonical result owner. */\nexport const StoredExperimentResultReferenceSchema = z.discriminatedUnion(\"kind\", [\n StoredTrainingResultReferenceSchema,\n StoredManagedModificationResultReferenceSchema,\n StoredEngramResultReferenceSchema,\n StoredDecisionResultReferenceSchema,\n StoredAlphaEditResultReferenceSchema,\n StoredNeuronTrainingResultReferenceSchema,\n]);\nexport type StoredTrainingResultReference = z.infer<typeof StoredTrainingResultReferenceSchema>;\nexport type StoredManagedModificationResultReference = z.infer<typeof StoredManagedModificationResultReferenceSchema>;\nexport type StoredEngramResultReference = z.infer<typeof StoredEngramResultReferenceSchema>;\nexport type StoredDecisionResultReference = z.infer<typeof StoredDecisionResultReferenceSchema>;\nexport type StoredAlphaEditResultReference = z.infer<typeof StoredAlphaEditResultReferenceSchema>;\nexport type StoredNeuronTrainingResultReference = z.infer<typeof StoredNeuronTrainingResultReferenceSchema>;\nexport type StoredExperimentResultReference = z.infer<typeof StoredExperimentResultReferenceSchema>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\n\nconst Id = z.string().trim().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** Source validation identifies a runtime reviewed for a staging trial;\n * GPU qualification requires a retained run of the exact model and runtime.\n * Neither observation is a reservation, funding approval or quality claim. */\nexport const ModelModificationValidationLevelSchema = z.enum([\"source_validated\", \"gpu_qualified\"]);\nexport type ModelModificationValidationLevel = z.infer<typeof ModelModificationValidationLevelSchema>;\nexport function assertModelModificationValidationLevel(\n execution: { state: \"ready\" | \"unavailable\" },\n validationLevel: ModelModificationValidationLevel | null,\n) {\n if ((execution.state === \"ready\") !== (validationLevel !== null))\n throw new OpenPondProtocolError(\"model_modification_validation_mismatch\", \"Runtime validation must describe the observed executable runtime.\");\n}\nexport const ModelModificationMethodSchema = z.enum([\"neuron_steering\", \"inspect_activations\"]);\nexport const ModelModificationCapabilitiesQuerySchema = z.object({\n teamId: Id, modelId: ModelProjectBaseModelSchema.shape.modelId, source: ModelProjectBaseModelSchema.shape.source,\n revision: ModelProjectBaseModelSchema.shape.revision.unwrap().optional(),\n tokenizerRevision: ModelProjectBaseModelSchema.shape.tokenizerRevision.unwrap().optional(),\n chatTemplateHash: ModelProjectBaseModelSchema.shape.chatTemplateHash.unwrap().optional(),\n modelAssetId: ModelProjectBaseModelSchema.shape.modelAssetId.unwrap().optional(),\n}).strict();\nexport type ModelModificationCapabilitiesQuery = z.infer<typeof ModelModificationCapabilitiesQuerySchema>;\n\nexport const ModelModificationExecutionCapabilitySchema = z.discriminatedUnion(\"state\", [\n z.object({ state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]),\n reason: z.string().trim().min(1).max(1000) }).strict(),\n z.object({ state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({ id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.activationReferenceRequest.v1\"),\n evidence: z.object({ id: Id, contentHash: Hash }).strict(),\n }).strict(),\n limits: z.object({ maximumPrompts: z.number().int().positive().max(8), maximumPromptTokens: z.number().int().positive().max(4096),\n maximumVariants: z.number().int().positive().max(17), maximumCoordinates: z.number().int().positive().max(64),\n maximumNewTokens: z.number().int().nonnegative().max(128), maximumCapturedValues: z.number().int().positive().max(65_536),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000), maximumDurationSeconds: z.number().positive().max(300),\n maximumAbsoluteDose: z.number().finite().positive(),\n }).strict(),\n }).strict(),\n]);\nexport type ModelModificationExecutionCapability = z.infer<typeof ModelModificationExecutionCapabilitySchema>;\nexport const ModelModificationCapabilitiesContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelModificationCapabilities.v1\"), teamId: Id, actorId: Id,\n query: ModelModificationCapabilitiesQuerySchema, requestHash: Hash,\n destination: z.literal(\"hosted\"), checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n methods: z.array(z.object({ method: ModelModificationMethodSchema, draftSchema: z.literal(\"openpond.experimentDraft.v1\"),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: ModelModificationExecutionCapabilitySchema,\n }).strict()).length(2),\n}).strict().superRefine((value, ctx) => {\n if (value.teamId !== value.query.teamId || new Set(value.methods.map(row => row.method)).size !== 2)\n ctx.addIssue({ code: \"custom\", message: \"Capabilities must retain one entry per method and the exact workspace.\" });\n for (const row of value.methods) if (row.execution.state === \"ready\" &&\n (value.query.source !== \"managed\" || value.query.modelAssetId !== undefined ||\n row.execution.model.modelId !== value.query.modelId || row.execution.model.revision !== value.query.revision || !value.query.tokenizerRevision))\n ctx.addIssue({ code: \"custom\", message: \"An executable capability must bind this exact admitted managed base.\" });\n});\nexport const ModelModificationCapabilitiesSchema = ModelModificationCapabilitiesContentSchema.safeExtend({ contentHash: Hash });\nexport type ModelModificationCapabilities = z.infer<typeof ModelModificationCapabilitiesSchema>;\n\n/** A scoped observation, not an execution approval, reservation or worker claim. */\nexport async function parseAndVerifyModelModificationCapabilities(raw: unknown, rawQuery: ModelModificationCapabilitiesQuery, actorId?: string) {\n const query = ModelModificationCapabilitiesQuerySchema.parse(rawQuery), value = ModelModificationCapabilitiesSchema.parse(raw);\n for (const method of value.methods) assertModelModificationValidationLevel(method.execution, method.validationLevel);\n const { contentHash, ...content } = value;\n if (canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || contentHash !== await canonicalSha256(content))\n throw new OpenPondProtocolError(\"model_modification_capability_mismatch\", \"Capabilities returned a different model, account or retained observation.\");\n const checked = Date.parse(value.checkedAt), expiry = Date.parse(value.expiresAt);\n if (checked > Date.now() + 30_000 || expiry <= Date.now() || expiry <= checked || expiry - checked > 300_000)\n throw new OpenPondProtocolError(\"model_modification_capability_expired\", \"Refresh model capabilities before preparing execution.\");\n return value;\n}\n\nexport function createModelModificationCapabilitiesClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async modificationCapabilities(raw: ModelModificationCapabilitiesQuery, options?: { signal?: AbortSignal }): Promise<ModelModificationCapabilities> {\n const query = ModelModificationCapabilitiesQuerySchema.parse(raw);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, value);\n const timeout = AbortSignal.timeout(30_000);\n return parseAndVerifyModelModificationCapabilities(await request(`/v1/training/modification-capabilities?${params}`, {\n signal: options?.signal ? AbortSignal.any([options.signal, timeout]) : timeout,\n }), query);\n } };\n}\n","import { z } from \"zod\";\nimport { ExperimentDraftSchema, parseAndVerifyExperimentDraft } from \"./training-experiment-setup.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\n/** Canonical saved-draft pointer shared by chat hosts and headless clients.\n * A pointer grants no access; each host reauthorizes the current document. */\nexport const StoredExperimentDraftReferenceSchema = z.object({\n id: Id, teamId: Id, apiOrigin: z.url().max(2000),\n}).strict();\nexport type StoredExperimentDraftReference = z.infer<typeof StoredExperimentDraftReferenceSchema>;\n\nexport const ExperimentDraftRecordSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftRecord.v1\"),\n id: Id, teamId: Id, ownerUserId: Id, projectId: Id.nullable(),\n revision: z.number().int().positive(), status: z.enum([\"draft\", \"archived\"]),\n draft: ExperimentDraftSchema,\n createdAt: z.iso.datetime(), updatedAt: z.iso.datetime(),\n contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict().superRefine((record, context) => {\n if (record.id !== record.draft.id)\n context.addIssue({ code: \"custom\", path: [\"id\"], message: \"The stored draft identity does not match its document.\" });\n});\nexport const ExperimentDraftSaveSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftSave.v1\"),\n teamId: Id, operationId: Id, expectedRevision: z.number().int().nonnegative(),\n projectId: Id.nullable().default(null), draft: ExperimentDraftSchema,\n}).strict();\nexport const ExperimentDraftArchiveSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftArchive.v1\"),\n teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(),\n}).strict();\nexport const ExperimentDraftReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftReceipt.v1\"),\n operationId: Id, requestHash: z.string().regex(/^[a-f0-9]{64}$/),\n record: ExperimentDraftRecordSchema,\n}).strict();\nexport const ExperimentDraftListQuerySchema = z.object({\n projectId: Id.optional(), search: z.string().trim().max(1000).optional(),\n archived: z.boolean().default(false), cursor: z.string().min(1).max(2000).optional(),\n limit: z.number().int().min(1).max(100).default(30),\n}).strict();\nexport const ExperimentDraftPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftPage.v1\"),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(),\n items: z.array(ExperimentDraftRecordSchema).max(100),\n nextCursor: z.string().min(1).max(2000).nullable(),\n}).strict();\nexport type ExperimentDraftRecord = z.infer<typeof ExperimentDraftRecordSchema>;\nexport type ExperimentDraftSave = z.input<typeof ExperimentDraftSaveSchema>;\nexport type ExperimentDraftArchive = z.infer<typeof ExperimentDraftArchiveSchema>;\nexport type ExperimentDraftReceipt = z.infer<typeof ExperimentDraftReceiptSchema>;\nexport type ExperimentDraftListQuery = z.input<typeof ExperimentDraftListQuerySchema>;\nexport type ExperimentDraftPage = z.infer<typeof ExperimentDraftPageSchema>;\n\nexport async function parseAndVerifyExperimentDraftRecord(raw: unknown) {\n const record = ExperimentDraftRecordSchema.parse(raw);\n const { contentHash, ...content } = record;\n if (contentHash !== await canonicalSha256(content))\n throw new OpenPondProtocolError(\"experiment_draft_hash_mismatch\", \"The saved draft differs from its retained document.\");\n await parseAndVerifyExperimentDraft(record.draft, {teamId: record.teamId});\n return record;\n}\nexport async function parseAndVerifyExperimentDraftReceipt(raw: unknown) {\n const receipt = ExperimentDraftReceiptSchema.parse(raw);\n return { ...receipt, record: await parseAndVerifyExperimentDraftRecord(receipt.record) };\n}\nfunction mismatch(message: string): never {\n throw new OpenPondProtocolError(\"experiment_draft_scope_mismatch\", message);\n}\nexport function createExperimentDraftClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n async function write(path: string, value: unknown) {\n const body = canonicalJson(value);\n if (new TextEncoder().encode(body).byteLength > 32_768)\n throw new OpenPondProtocolError(\"experiment_draft_too_large\", \"Drafts contain settings and references, not model or dataset bytes.\");\n return parseAndVerifyExperimentDraftReceipt(await request(path, { method: \"POST\", body }));\n }\n return {\n async saveExperimentDraft(raw: ExperimentDraftSave): Promise<ExperimentDraftReceipt> {\n const input = ExperimentDraftSaveSchema.parse(raw);\n await parseAndVerifyExperimentDraft(input.draft, {teamId: input.teamId});\n const receipt = await write(\"/v1/training/experiment-drafts\", input);\n const row = receipt.record;\n if (receipt.operationId !== input.operationId || receipt.requestHash !== await canonicalSha256(input) ||\n row.teamId !== input.teamId || row.id !== input.draft.id || row.projectId !== input.projectId ||\n row.revision !== input.expectedRevision + 1 || row.status !== \"draft\" || canonicalJson(row.draft) !== canonicalJson(input.draft))\n mismatch(\"The service saved a different draft, Project or revision.\");\n return receipt;\n },\n async getExperimentDraft(teamId: string, id: string): Promise<ExperimentDraftRecord> {\n const team = Id.parse(teamId), identity = Id.parse(id);\n const row = await parseAndVerifyExperimentDraftRecord(await request(`/v1/training/experiment-drafts/${encodeURIComponent(identity)}?${new URLSearchParams({ teamId: team })}`));\n if (row.teamId !== team || row.id !== identity) mismatch(\"The service returned another draft or workspace.\");\n return row;\n },\n async listExperimentDrafts(teamId: string, raw: ExperimentDraftListQuery = {}): Promise<ExperimentDraftPage> {\n const team = Id.parse(teamId), query = ExperimentDraftListQuerySchema.parse(raw);\n const params = new URLSearchParams({ teamId: team });\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = ExperimentDraftPageSchema.parse(await request(`/v1/training/experiment-drafts?${params}`));\n if (page.teamId !== team || page.projectId !== (query.projectId ?? null) || page.items.length > query.limit ||\n new Set(page.items.map(row => row.id)).size !== page.items.length || query.cursor && page.nextCursor === query.cursor)\n mismatch(\"The draft list returned another scope or invalid page.\");\n for (const rawRow of page.items) {\n const row = await parseAndVerifyExperimentDraftRecord(rawRow);\n if (row.teamId !== team || row.ownerUserId !== page.ownerUserId || query.projectId && row.projectId !== query.projectId ||\n row.status !== (query.archived ? \"archived\" : \"draft\")) mismatch(\"The draft list contains another owner, Project or state.\");\n }\n return page;\n },\n async archiveExperimentDraft(id: string, raw: ExperimentDraftArchive): Promise<ExperimentDraftReceipt> {\n const identity = Id.parse(id), input = ExperimentDraftArchiveSchema.parse(raw);\n const receipt = await write(`/v1/training/experiment-drafts/${encodeURIComponent(identity)}/archive`, input);\n if (receipt.operationId !== input.operationId || receipt.requestHash !== await canonicalSha256({ id: identity, ...input }) ||\n receipt.record.teamId !== input.teamId || receipt.record.id !== identity ||\n receipt.record.revision !== input.expectedRevision + 1 || receipt.record.status !== \"archived\")\n mismatch(\"The service archived another draft or revision.\");\n return receipt;\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectBaseModelCandidateSchema, ModelProjectVersionedRefSchema, ModelProjectTrainingSetupSchema, ModelProjectRecipeDocumentSchema, HostedModelProjectSummarySchema } from \"./model-projects.js\";\nimport {\n TrainingPreparationRequestSchema,\n TrainingPreparationReceiptSchema,\n parseAndVerifyTrainingPreparationReceipt,\n} from \"./training-preparations.js\";\nimport { TrainingGpuSelectionSchema } from \"./training-compute-selection.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EvaluationExperimentDraftSchema } from \"./evaluation-experiment-draft.js\";\nimport { HostedEvaluationExperimentFormDraftSchema } from \"./hosted-evaluation-experiment-draft.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nimport { EngramExperimentFormDraftSchema } from \"./engram-experiment-draft.js\";\nimport { DecisionExperimentFormDraftSchema } from \"./decision-experiment-draft.js\";\nimport { AlphaEditExperimentFormDraftSchema } from \"./alphaedit-experiment-draft.js\";\nimport { NeuronTrainingExperimentFormDraftSchema } from \"./neuron-training-experiment-draft.js\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TrainingExperimentLearningIntentSchema } from \"./training-experiment-learning-intent.js\";\nimport { TrainingBillingModesSchema } from \"./training-usage-funding.js\";\nexport * from \"./evaluation-experiment-draft.js\";\nexport * from \"./activation-experiment-draft.js\";\n\nexport const ExperimentOperationTypeSchema = z.enum([\"evaluate\", \"sft\", \"grpo\", \"neuron_steering\", \"inspect_activations\", \"engram_adapter\", \"decision_model\", \"alphaedit\", \"selective_neuron_training\"]);\nexport type ExperimentOperationType = z.infer<typeof ExperimentOperationTypeSchema>;\nimport { ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel } from \"./experiment-starting-model.js\";\nexport { ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nexport function experimentOperationLabel(type: ExperimentOperationType): string {\n return { evaluate: \"Evaluate\", sft: \"SFT + LoRA\", grpo: \"RL (GRPO) + LoRA\", neuron_steering: \"Neuron steering\", inspect_activations: \"Inspect activations\", engram_adapter: \"Engram memory\", decision_model: \"Decision model\", alphaedit: \"AlphaEdit\", selective_neuron_training: \"Neuron training\" }[type];\n}\n\n/** Model-first manual training. The service owns configuration identity and\n * admission; preparing never enables a recurring policy or starts compute. */\nexport const TrainingExperimentSetupRequestSchema = TrainingPreparationRequestSchema\n .omit({ configuration: true, origin: true })\n .extend({\n schemaVersion: z.literal(\"openpond.trainingExperimentSetupRequest.v1\"),\n configuration: TrainingPreparationRequestSchema.shape.configuration.optional(),\n baseModel: ModelProjectBaseModelSchema,\n settings: ModelProjectTrainingSetupSchema.omit({ baseModel: true }),\n })\n .strict()\n .superRefine((value, context) => {\n if (!value.baseModel.revision)\n context.addIssue({ code: \"custom\", path: [\"baseModel\", \"revision\"], message: \"Select an exact model revision.\" });\n if (!value.settings.recipe || ![\"sft\", \"grpo\"].includes(value.settings.recipe.method))\n context.addIssue({ code: \"custom\", path: [\"settings\", \"recipe\"], message: \"Choose a supported SFT or GRPO recipe.\" });\n if (value.parent && value.settings.method !== \"grpo\")\n context.addIssue({ code: \"custom\", path: [\"parent\"], message: \"Checkpoint continuation currently requires GRPO.\" });\n if (value.settings.method !== value.settings.recipe?.method)\n context.addIssue({ code: \"custom\", path: [\"settings\", \"method\"], message: \"The method must match its recipe.\" });\n });\n\nexport const TrainingExperimentSetupReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentSetupReceipt.v1\"),\n request: TrainingExperimentSetupRequestSchema,\n requestHash: z.string().regex(/^[a-f0-9]{64}$/),\n preparation: TrainingPreparationReceiptSchema,\n}).strict();\n\nexport type TrainingExperimentSetupRequest = z.infer<typeof TrainingExperimentSetupRequestSchema>;\nexport type TrainingExperimentSetupReceipt = z.infer<typeof TrainingExperimentSetupReceiptSchema>;\n\n/** Deterministic across retries, scoped to the authenticated creator. */\nexport async function trainingExperimentConfigurationIdentity(\n input: Pick<TrainingExperimentSetupRequest, \"teamId\" | \"operationId\">,\n creatorUserId: string,\n) {\n return `experiment-${await canonicalSha256({ teamId: input.teamId, operationId: input.operationId, creatorUserId })}`;\n}\n\nexport async function parseAndVerifyTrainingExperimentSetupReceipt(raw: unknown) {\n const result = TrainingExperimentSetupReceiptSchema.parse(raw);\n const preparation = await parseAndVerifyTrainingPreparationReceipt(result.preparation);\n const { schemaVersion: _schema, baseModel: _base, settings: _settings, configuration: selectedConfiguration, ...run } = result.request;\n const { schemaVersion: _preparedSchema, configuration, ...preparedRun } = preparation.plan.request;\n const portableId = await trainingExperimentConfigurationIdentity(result.request, preparation.plan.creatorUserId);\n if (\n result.requestHash !== await canonicalSha256(result.request) ||\n await canonicalSha256(run) !== await canonicalSha256(preparedRun) ||\n (selectedConfiguration\n ? configuration.id !== selectedConfiguration.id || configuration.expectedRevision !== selectedConfiguration.expectedRevision || configuration.expectedEtag !== selectedConfiguration.expectedEtag\n : preparation.plan.source.modelProject.portableProjectId !== portableId) ||\n preparation.plan.source.modelProject.revision !== configuration.expectedRevision ||\n preparation.plan.source.modelProject.contentHash !== configuration.expectedEtag ||\n preparation.plan.source.modelProject.id !== configuration.id\n ) throw new OpenPondProtocolError(\"training_experiment_setup_mismatch\", \"The prepared experiment does not match its reviewed draft.\");\n return { ...result, preparation };\n}\n\nexport function createTrainingExperimentSetupClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async prepareExperiment(input: TrainingExperimentSetupRequest): Promise<TrainingExperimentSetupReceipt> {\n const parsed = TrainingExperimentSetupRequestSchema.parse(input);\n const result = await parseAndVerifyTrainingExperimentSetupReceipt(await request(\"/v1/training/preparations/from-draft\", {\n method: \"POST\", body: JSON.stringify(parsed),\n }));\n if (result.requestHash !== await canonicalSha256(parsed))\n throw new OpenPondProtocolError(\"training_experiment_setup_request_mismatch\", \"The service returned a different experiment draft.\");\n return result;\n },\n };\n}\n\n/** Credential-free picker metadata, composed from existing model/learning reads.\n * Batch examples and credentials stay with their canonical owners. */\nexport const TrainingExperimentInputsPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentInputsPage.v1\"),\n teamId: z.string().min(1).max(500), actorId: z.string().min(1).max(500), projectId: z.string().min(1).max(500).nullable(),\n models: z.array(ModelProjectBaseModelCandidateSchema).max(1000),\n methods: z.array(z.string().min(1).max(200)).max(100),\n billingModes: TrainingBillingModesSchema.optional(),\n batches: z.array(z.object({\n reference: ModelProjectVersionedRefSchema,\n rewardBinding: ModelProjectVersionedRefSchema,\n purpose: z.enum([\"supervised_training\", \"reward_training\", \"evaluation\"]),\n exampleCount: z.number().int().positive(), sealedAt: z.iso.datetime(),\n }).strict()).max(100),\n nextCursor: z.string().min(1).max(500).nullable(),\n}).strict();\nexport type TrainingExperimentInputsPage = z.infer<typeof TrainingExperimentInputsPageSchema>;\n\n/** Editable values stay separate from admitted requests so blank/invalid fields\n * can be saved without inventing a valid spend cap or input binding. */\nexport const TrainingExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n recipe: ModelProjectRecipeDocumentSchema,\n batch: ModelProjectVersionedRefSchema.nullable(),\n evaluation: ModelProjectVersionedRefSchema.nullable(),\n validationSplit: z.enum([\"validation\", \"frozen_eval\"]),\n name: z.string().max(500),\n budget: z.string().max(100),\n customerCapUsd: z.string().max(100).optional(),\n billingMode: z.enum([\"prepaid_only\", \"actual_usage\"]).optional(),\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n parent: TrainingPreparationRequestSchema.shape.parent,\n startingModelLabel: z.string().trim().min(1).max(500).optional(),\n learningIntent: TrainingExperimentLearningIntentSchema.optional(),\n learningConfiguration: z.object({\n inputHash: z.string().regex(/^[a-f0-9]{64}$/),\n trainingInputHash: z.string().regex(/^[a-f0-9]{64}$/),\n configuration: HostedModelProjectSummarySchema,\n policy: LearningRevisionRefSchema,\n }).strict().optional(),\n}).strict();\nexport type TrainingExperimentFormDraft = z.infer<typeof TrainingExperimentFormDraftSchema>;\n\n/** An authoring snapshot may be incomplete. It is never a preparation, an\n * execution, or evidence that a model/method is available to this account. */\nexport const ExperimentDraftSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraft.v1\"),\n id: z.string().trim().min(1).max(240),\n operationType: ExperimentOperationTypeSchema,\n name: z.string().trim().min(1).max(500),\n startingModel: ExperimentStartingModelSchema.optional(),\n evaluationForm: EvaluationExperimentDraftSchema.optional(),\n hostedEvaluationForm: HostedEvaluationExperimentFormDraftSchema.optional(),\n trainingForm: TrainingExperimentFormDraftSchema.optional(),\n activationForm: ActivationExperimentFormDraftSchema.optional(),\n engramForm: EngramExperimentFormDraftSchema.optional(),\n decisionForm: DecisionExperimentFormDraftSchema.optional(),\n alphaEditForm: AlphaEditExperimentFormDraftSchema.optional(),\n neuronTrainingForm: NeuronTrainingExperimentFormDraftSchema.optional(),\n training: z.object({\n baseModel: TrainingExperimentSetupRequestSchema.shape.baseModel.optional(),\n settings: TrainingExperimentSetupRequestSchema.shape.settings.optional(),\n batch: TrainingExperimentSetupRequestSchema.shape.batch.optional(),\n maximumSpendUsd: TrainingExperimentSetupRequestSchema.shape.maximumSpendUsd.optional(),\n usageFunding: TrainingExperimentSetupRequestSchema.shape.usageFunding,\n }).strict().optional(),\n}).strict().superRefine((draft, context) => {\n const source = draft.startingModel;\n if (draft.alphaEditForm && draft.operationType !== \"alphaedit\")\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\"], message: \"AlphaEdit settings require an AlphaEdit experiment.\"});\n if (draft.neuronTrainingForm && draft.operationType !== \"selective_neuron_training\")\n context.addIssue({code: \"custom\", path: [\"neuronTrainingForm\"], message: \"Neuron training settings require a neuron-training experiment.\"});\n if (draft.operationType === \"alphaedit\" && source) {\n if (source.source !== \"managed\" && source.source !== \"alphaedit\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"AlphaEdit requires its exact managed base or saved AlphaEdit parent.\"});\n else if (draft.alphaEditForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.alphaEditForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\", \"baseModel\"], message: \"Retain the exact selected AlphaEdit source.\"});\n }\n if (source?.source === \"alphaedit\") {\n if (draft.operationType !== \"alphaedit\" || !draft.alphaEditForm\n || canonicalJson(draft.alphaEditForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.alphaEditForm.startingModule ?? null) !== canonicalJson(source.alphaedit)\n || canonicalJson(draft.alphaEditForm.parentArtifact) !== canonicalJson(source.alphaedit.artifact))\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\"], message: \"Retain the exact AlphaEdit matrix patch and continuation state.\"});\n } else if (draft.alphaEditForm?.startingModule) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved AlphaEdit Model rather than substituting its original base.\"});\n }\n if (draft.operationType === \"selective_neuron_training\" && source) {\n if (source.source !== \"managed\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Neuron training currently starts from its exact managed base; learned patches are not reset or silently discarded.\"});\n else if (draft.neuronTrainingForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.neuronTrainingForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"neuronTrainingForm\", \"baseModel\"], message: \"Retain the selected exact neuron-training base.\"});\n }\n if (source?.source === \"neuron_training\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"This neuron patch supports saved serving, but experiment continuation/composition is not supported. Explicitly select a compatible base to start a fresh experiment.\"});\n if (draft.decisionForm && draft.operationType !== \"decision_model\")\n context.addIssue({code: \"custom\", path: [\"decisionForm\"], message: \"Decision settings require a decision-model experiment.\"});\n if (draft.operationType === \"decision_model\" && source) {\n if (source.source !== \"managed\" && source.source !== \"decision\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Decision training/scoring requires its exact source release or saved decision Model; another learned model is not replaced with its base.\"});\n else if (draft.decisionForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.decisionForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"decisionForm\", \"baseModel\"], message: \"Retain the selected exact decision source release.\"});\n }\n if (source?.source === \"decision\") {\n if (draft.operationType !== \"decision_model\" || !draft.decisionForm\n || canonicalJson(draft.decisionForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.decisionForm.startingDecision ?? null) !== canonicalJson(source.decision)\n || canonicalJson(draft.decisionForm.parentArtifact) !== canonicalJson(source.decision.artifact))\n context.addIssue({code: \"custom\", path: [\"decisionForm\"], message: \"Retain the exact saved decision version and artifact for training or scoring.\"});\n } else if (draft.decisionForm?.startingDecision) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved decision starting model instead of substituting its source release.\"});\n }\n if (draft.engramForm && draft.operationType !== \"engram_adapter\")\n context.addIssue({code: \"custom\", path: [\"engramForm\"], message: \"Engram settings require an Engram experiment.\"});\n if (draft.operationType === \"engram_adapter\" && source) {\n if (source.source !== \"managed\" && source.source !== \"engram\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"This Engram implementation requires its exact compatible managed base; saved interventions are not silently replaced with their base.\"});\n else if (draft.engramForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.engramForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"engramForm\", \"baseModel\"], message: \"Retain the selected exact Engram base.\"});\n }\n if (source?.source === \"engram\" && (draft.operationType !== \"engram_adapter\" || !draft.engramForm\n || canonicalJson(draft.engramForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.engramForm.startingModule ?? null) !== canonicalJson(source.engram)\n || canonicalJson(draft.engramForm.parentArtifact) !== canonicalJson(source.engram.artifact)))\n context.addIssue({code: \"custom\", path: [\"engramForm\"], message: \"Retain the exact saved Engram module as the continuation parent.\"});\n if (source?.source === \"steering\") {\n if (draft.operationType !== \"neuron_steering\")\n context.addIssue({code: \"custom\", path: [\"operationType\"], message: \"Saved steering sources currently require a neuron steering experiment.\"});\n if (!draft.activationForm || canonicalJson(draft.activationForm.baseModel) !== canonicalJson(source.baseModel) ||\n canonicalJson(draft.activationForm.startingProfile ?? null) !== canonicalJson(source.steering))\n context.addIssue({code: \"custom\", path: [\"activationForm\"], message: \"Retain the exact saved steering source and base in the activation form.\"});\n } else if (draft.activationForm?.startingProfile) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved steering starting model instead of substituting its base.\"});\n }\n if (source?.source === \"trained\") {\n const version = source.trainedVersion;\n for (const [key, base] of [[\"trainingForm\", draft.trainingForm?.baseModel], [\"training\", draft.training?.baseModel], [\"activationForm\", draft.activationForm?.baseModel]] as const)\n if (base && canonicalJson(base) !== canonicalJson(version.request.baseModel))\n context.addIssue({code: \"custom\", path: [key, \"baseModel\"], message: \"The form differs from the retained trained source's base.\"});\n const parent = draft.trainingForm?.parent;\n if (parent && (parent.jobId !== version.jobId || parent.checkpointId !== version.candidate.checkpointId ||\n canonicalJson(parent.artifact) !== canonicalJson(version.candidate.artifact)))\n context.addIssue({code: \"custom\", path: [\"trainingForm\", \"parent\"], message: \"Retain the exact trained Job, artifact and checkpoint.\"});\n }\n\n if (draft.evaluationForm && draft.operationType !== \"evaluate\")\n context.addIssue({ code: \"custom\", path: [\"evaluationForm\"], message: \"Evaluation form settings require an evaluation experiment.\" });\n if (draft.activationForm && ![\"neuron_steering\", \"inspect_activations\"].includes(draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"activationForm\"], message: \"Activation settings require a steering or inspection experiment.\" });\n if (draft.trainingForm && (![\"sft\", \"grpo\"].includes(draft.operationType) || draft.trainingForm.recipe.method !== draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"trainingForm\"], message: \"Training form settings must match the experiment type.\" });\n if (draft.training && (![\"sft\", \"grpo\"].includes(draft.operationType) ||\n draft.training.settings && draft.training.settings.method !== draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"training\"], message: \"Training settings must match the experiment type.\" });\n});\nexport type ExperimentDraft = z.infer<typeof ExperimentDraftSchema>;\n/** Nested saved evidence is verified independently of an outer draft hash. */\nexport async function parseAndVerifyExperimentDraft(raw: unknown, expected: Parameters<typeof parseAndVerifyExperimentStartingModel>[1] = {}): Promise<ExperimentDraft> {\n const draft = ExperimentDraftSchema.parse(raw);\n if (draft.startingModel) await parseAndVerifyExperimentStartingModel(draft.startingModel, expected);\n return draft;\n}\n\n\nexport const ExperimentDraftUpdateSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftUpdate.v1\"),\n operationId: z.string().trim().min(1).max(240),\n expectedRevision: z.number().int().positive(),\n draft: ExperimentDraftSchema,\n}).strict();\nexport type ExperimentDraftUpdate = z.infer<typeof ExperimentDraftUpdateSchema>;\n","import { TrainingUsageFundingRequestSchema, TrainingUsageQuoteSchema, verifyTrainingUsageQuote } from \"./training-usage-funding.js\";\nimport { TrainingHandoffOriginSchema } from \"./post-training.js\";\nimport { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { TrainingJobSourceSchema } from \"./training-job-contracts.js\";\nimport { TrainingPhysicalPlacementSchema } from \"./training-physical-placement.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { TrainingEstimateReviewSchema, TrainingGpuSelectionSchema } from \"./training-compute-selection.js\";\n\nconst Id = z.string().trim().min(1).max(191);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** An exact retained GRPO checkpoint, never an inference alias or Model label.\n * Preparation verifies ownership and durability; execution rechecks runtime compatibility. */\nexport const TrainingPreparationParentSchema = z.object({\n jobId: Id,\n artifact: z.object({ id: Id, contentHash: Hash }).strict(),\n checkpointId: Id,\n adapterMode: z.enum([\"residual_append\", \"shared\", \"sequential_merge\"]),\n}).strict();\nexport type TrainingPreparationParent = z.infer<typeof TrainingPreparationParentSchema>;\n\n/** Manual training compiles an already reviewed batch. It creates no recurring policy. */\nexport const TrainingPreparationRequestSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationRequest.v1\"),\n teamId: Id,\n operationId: Id,\n projectId: Id.nullable(),\n configuration: z\n .object({ id: Id, expectedRevision: z.number().int().positive(), expectedEtag: Hash })\n .strict(),\n origin: TrainingHandoffOriginSchema.optional(),\n parent: TrainingPreparationParentSchema.optional(),\n batch: ModelProjectVersionedRefSchema,\n name: z.string().trim().min(1).max(191),\n // Compiler resource safety budget; actual-usage customer cap is separate.\n maximumSpendUsd: z.number().finite().positive().max(1_000_000),\n usageFunding: TrainingUsageFundingRequestSchema.optional(),\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n physicalPlacement: TrainingPhysicalPlacementSchema.optional(),\n })\n .strict();\nexport const TrainingPreparationPlanContentSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPlan.v1\"),\n id: Id,\n creatorUserId: Id,\n request: TrainingPreparationRequestSchema,\n requestHash: Hash,\n source: z.lazy(() => TrainingJobSourceSchema),\n submissionHash: Hash,\n usageQuote: TrainingUsageQuoteSchema.optional(),\n createdAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const TrainingPreparationPlanSchema = TrainingPreparationPlanContentSchema.extend({\n contentHash: Hash,\n}).strict();\nexport const TrainingPreparationReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationReceipt.v1\"),\n plan: TrainingPreparationPlanSchema,\n revision: z.number().int().positive(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]),\n jobId: Id.nullable(),\n })\n .strict()\n .superRefine((value, context) => {\n if ((value.state === \"submitted\") !== Boolean(value.jobId))\n context.addIssue({\n code: \"custom\",\n path: [\"jobId\"],\n message: \"Only submitted preparations identify a job.\",\n });\n });\nexport const TrainingPreparationControlSchema = z\n .object({\n teamId: Id,\n planHash: Hash,\n expectedRevision: z.number().int().positive(),\n estimateReview: TrainingEstimateReviewSchema.optional(),\n usageQuoteHash: Hash.optional(),\n })\n .strict();\nexport const TrainingPreparationListQuerySchema = z\n .object({\n projectId: Id.optional(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]).optional(),\n afterId: Id.optional(),\n limit: z.number().int().min(1).max(100).default(25),\n })\n .strict();\nexport const TrainingPreparationPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPage.v1\"),\n teamId: Id,\n items: z.array(TrainingPreparationReceiptSchema).max(100),\n nextCursor: Id.nullable(),\n })\n .strict();\nexport type TrainingPreparationRequest = z.infer<typeof TrainingPreparationRequestSchema>;\nexport type TrainingPreparationPlan = z.infer<typeof TrainingPreparationPlanSchema>;\nexport type TrainingPreparationReceipt = z.infer<typeof TrainingPreparationReceiptSchema>;\nexport type TrainingPreparationControl = z.infer<typeof TrainingPreparationControlSchema>;\nexport type TrainingPreparationListQuery = z.input<typeof TrainingPreparationListQuerySchema>;\nexport type TrainingPreparationPage = z.infer<typeof TrainingPreparationPageSchema>;\n\nexport async function parseAndVerifyTrainingPreparationReceipt(value: unknown) {\n const receipt = TrainingPreparationReceiptSchema.parse(value);\n const { contentHash, ...plan } = receipt.plan;\n const usageFunding = plan.request.usageFunding;\n if (Boolean(usageFunding) !== Boolean(plan.usageQuote))\n throw new OpenPondProtocolError(\"training_usage_quote_mismatch\", \"Retain the reviewed complete Job price before starting.\");\n if (plan.usageQuote && usageFunding)\n await verifyTrainingUsageQuote(plan.usageQuote, { teamId: plan.request.teamId, actorUserId: plan.creatorUserId,\n preparationId: plan.id, submissionHash: plan.submissionHash, customerCapUsd: usageFunding.customerCapUsd });\n if (\n (await canonicalSha256(plan)) !== contentHash ||\n (await canonicalSha256(plan.request)) !== plan.requestHash ||\n plan.source.modelProject.id !== plan.request.configuration.id ||\n (await canonicalSha256(plan.source.origin ?? null)) !==\n (await canonicalSha256(plan.request.origin ?? null))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_mismatch\",\n \"The prepared training inputs changed.\",\n );\n }\n return receipt;\n}\n\nexport function createTrainingPreparationClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n async function read(value: unknown, teamId: string, id?: string) {\n const receipt = await parseAndVerifyTrainingPreparationReceipt(value);\n if (receipt.plan.request.teamId !== teamId || (id && receipt.plan.id !== id))\n throw new OpenPondProtocolError(\n \"training_preparation_scope_mismatch\",\n \"The training preparation belongs to a different workspace or request.\",\n );\n return receipt;\n }\n return {\n /** Discover the authenticated user's retained preparations without creating jobs. */\n async listPreparations(teamId: string, input: TrainingPreparationListQuery = {}) {\n const scope = Id.parse(teamId);\n const query = TrainingPreparationListQuerySchema.parse(input);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = TrainingPreparationPageSchema.parse(\n await request(`/v1/training/preparations?${params}`),\n );\n if (\n page.teamId !== scope ||\n page.items.length > query.limit ||\n new Set(page.items.map((item) => item.plan.id)).size !== page.items.length ||\n (page.nextCursor !== null &&\n (page.nextCursor !== page.items.at(-1)?.plan.id || page.nextCursor === query.afterId))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"The preparation page does not match its workspace or cursor.\",\n );\n }\n const items = await Promise.all(\n page.items.map(async (item) => {\n const receipt = await read(item, scope);\n if (\n (query.projectId && receipt.plan.request.projectId !== query.projectId) ||\n (query.state && receipt.state !== query.state)\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"A preparation does not match the requested Project or state.\",\n );\n }\n return receipt;\n }),\n );\n return { ...page, items };\n },\n async prepareRun(input: TrainingPreparationRequest) {\n const parsed = TrainingPreparationRequestSchema.parse(input);\n const receipt = await read(\n await request(\"/v1/training/preparations\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n );\n if (receipt.plan.requestHash !== (await canonicalSha256(parsed)))\n throw new OpenPondProtocolError(\n \"training_preparation_request_mismatch\",\n \"The preparation does not match the requested run.\",\n );\n return receipt;\n },\n async getPreparation(teamId: string, id: string) {\n return read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}`),\n Id.parse(teamId),\n id,\n );\n },\n async startPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/start`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"submitted\" ||\n receipt.plan.usageQuote?.contentHash !== parsed.usageQuoteHash)\n throw new OpenPondProtocolError(\n \"training_preparation_start_mismatch\",\n \"The submitted run does not match the approved preparation.\",\n );\n return receipt;\n },\n async cancelPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"cancelled\")\n throw new OpenPondProtocolError(\n \"training_preparation_cancel_mismatch\",\n \"The preparation cancellation could not be verified.\",\n );\n return receipt;\n },\n };\n}\n","import { z } from \"zod\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nimport { ModelStarterAttemptPolicySchema } from \"./model-starter-attempts.js\";\nimport { ExperimentDefinitionSchema, ExperimentGraderSelectionSchema } from \"./experiment-contracts.js\";\nexport * from \"./hosted-evaluation-experiment-draft.js\";\n\n/** Authoring state, not execution admission. Cleared numeric controls stay\n * null until the user supplies a value; saving never supplies a spend cap. */\nexport const EvaluationExperimentFormDraftSchema = z.object({\n mode: z.enum([\"model\", \"model_harness\", \"model_harness_profile\"]),\n localRuntime: ModelStarterAttemptPolicySchema.options[0].shape.localRuntime,\n sourceId: z.string().max(500), profileChoiceId: z.string().max(500),\n temperature: z.number().finite().nullable().optional(),\n topP: z.number().finite().nullable().optional(),\n name: z.string().max(500), release: TasksetCatalogReleaseRefSchema.nullable(),\n modelId: z.string().max(500), budget: z.number().finite().nullable(),\n outputTokens: z.number().finite().nullable(), prompt: z.string().max(100_000),\n targetId: z.string().max(500), seed: z.string().max(10_000),\n graderChoices: z.record(z.string().regex(/^[a-f0-9]{64}$/), z.array(ExperimentGraderSelectionSchema).max(100)),\n}).strict();\nexport const EvaluationExperimentSelectionSchema = z.object({\n release: TasksetCatalogReleaseRefSchema, mode: z.enum([\"all\", \"subset\"]),\n ids: z.array(z.string().min(1).max(500)).max(10_000),\n}).strict();\nexport const EvaluationExperimentSourceSchema = ExperimentDefinitionSchema\n .pick({ id: true, request: true, graders: true, maximumCostUsd: true })\n .extend({ packageHash: z.string().regex(/^[a-f0-9]{64}$/).optional() }).strict();\nexport const EvaluationExperimentDraftSchema = z.object({\n form: EvaluationExperimentFormDraftSchema,\n selection: EvaluationExperimentSelectionSchema.nullable(),\n source: EvaluationExperimentSourceSchema.nullable(),\n executionLocation: z.enum([\"local\", \"hosted\"]),\n}).strict();\nexport type EvaluationExperimentFormDraft = z.infer<typeof EvaluationExperimentFormDraftSchema>;\nexport type EvaluationExperimentSelection = z.infer<typeof EvaluationExperimentSelectionSchema>;\nexport type EvaluationExperimentSource = z.infer<typeof EvaluationExperimentSourceSchema>;\nexport type EvaluationExperimentDraft = z.infer<typeof EvaluationExperimentDraftSchema>;\n","import { z } from \"zod\";\nimport { ProfileEvaluationRunSourceSchema } from \"@openpond/evals\";\nimport { StandaloneHarnessExperimentSourceSchema } from \"@openpond/evals/experiments\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nimport { EvaluationMessagesSchema, EvaluationProjectContextSchema } from \"./evaluation-project-context.js\";\nimport { ExperimentGraderSelectionSchema } from \"./experiment-contracts.js\";\nimport { ExperimentFieldMappingsSchema } from \"./experiment-field-mappings.js\";\nimport { HarnessExperimentPolicySchema } from \"./harness-experiment-policy.js\";\n\nconst Id = z.string().min(1).max(500);\nconst Choice = z.string().max(500);\nconst RawNumber = z.string().max(100);\nconst TaskIds = z.array(Id).max(10_000).nullable();\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** Source identity is independent of picker labels. A workspace may be selected\n * before its revision has loaded; a saved non-null revision must be rechecked\n * by the editor and must never silently advance to the current workspace. */\nexport const HostedEvaluationDatasetDraftSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"workspace\"), id: Id,\n revision: z.number().int().positive().nullable(),\n ownerUserId: Id.optional(), taskIds: TaskIds,\n }).strict(),\n z.object({\n kind: z.literal(\"published\"), release: TasksetCatalogReleaseRefSchema,\n taskIds: TaskIds,\n }).strict(),\n z.object({\n kind: z.literal(\"profile\"), profileRepositoryId: Id,\n sourceRevision: Id, release: TasksetCatalogReleaseRefSchema,\n name: z.string().max(500), definitionId: Choice, taskIds: TaskIds,\n }).strict(),\n]);\n\nexport const HostedEvaluationWorkflowDraftSchema = z.object({\n repositoryId: Id, sourceRevision: Id, definitionId: Id,\n workflowId: Id, label: z.string().max(500),\n}).strict();\n\n/** Retain the exact released Profile target, including prepared source identity\n * when available. Missing controls remain empty rather than admitting a run. */\nexport const HostedEvaluationProfileDraftSchema = z.object({\n profileRepositoryId: Choice, sourceRevision: Choice, definitionId: Choice,\n sourceHash: Hash.nullable(), release: TasksetCatalogReleaseRefSchema.nullable(),\n taskIds: TaskIds, source: ProfileEvaluationRunSourceSchema.nullable().optional(),\n}).strict();\n\n/** Portable hosted editor state, not an execution request. Numeric text retains\n * blanks and partially typed values. Null task/grader selections mean automatic\n * selection; explicit empty arrays remain empty. Immutable sources and selected\n * grader versions are retained without granting access or execution authority.\n * This snapshot can remain inactive while another Experiment action is edited. */\nexport const HostedEvaluationExperimentFormDraftSchema = z.object({\n selectedDatasetId: Choice,\n dataset: HostedEvaluationDatasetDraftSchema.nullable(),\n workspaceMode: z.enum([\"recorded\", \"model\"]).nullable(),\n mode: z.enum([\"hosted_chat\", \"fixture\"]),\n executionMode: z.enum([\"model\", \"model_harness\", \"model_harness_profile\"]),\n name: z.string().max(500), modelId: Choice,\n messages: EvaluationMessagesSchema,\n temperature: RawNumber, topP: RawNumber, maxOutputTokens: RawNumber,\n budget: RawNumber, seedText: z.string().max(10_000),\n reasoningEffort: HarnessExperimentPolicySchema.shape.reasoningEffort.unwrap(),\n sourceId: Choice, harness: StandaloneHarnessExperimentSourceSchema.nullable(),\n project: EvaluationProjectContextSchema.nullable(),\n members: z.array(z.object({ taskId: Id, fixtureId: Id.nullable() }).strict()).max(10_000).nullable(),\n graderIds: z.array(Id).max(100).nullable(),\n graders: z.array(ExperimentGraderSelectionSchema).max(100),\n graderMappings: z.record(Id, ExperimentFieldMappingsSchema),\n selectedGraders: z.array(RewardReleaseSchema).max(100),\n workflow: HostedEvaluationWorkflowDraftSchema.nullable(),\n profile: HostedEvaluationProfileDraftSchema.nullable(),\n}).strict();\n\nexport type HostedEvaluationDatasetDraft = z.infer<typeof HostedEvaluationDatasetDraftSchema>;\nexport type HostedEvaluationWorkflowDraft = z.infer<typeof HostedEvaluationWorkflowDraftSchema>;\nexport type HostedEvaluationProfileDraft = z.infer<typeof HostedEvaluationProfileDraftSchema>;\nexport type HostedEvaluationExperimentFormDraft = z.infer<typeof HostedEvaluationExperimentFormDraftSchema>;\n","import { SavedSteeringExperimentSourceSchema } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { NeuronSteeringNormalizationSchema, NeuronSteeringTokenScopeSchema } from \"./neuron-steering.js\";\n\n/** Editable authoring, never an execution request. Strings preserve incomplete\n * numeric fields; runtime preparation must resolve the exact tensor identity,\n * tokenize prompts and enforce the complete execution/capture budget. */\nexport const ActivationExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n startingProfile: SavedSteeringExperimentSourceSchema.optional(),\n prompts: z.array(z.object({ id: z.string().trim().min(1).max(240), text: z.string().max(16_000) }).strict()).max(8),\n coordinates: z.array(z.object({ id: z.string().trim().min(1).max(240),\n layer: z.string().max(100), neuron: z.string().max(100), dose: z.string().max(100),\n }).strict()).max(64),\n doseMultipliers: z.string().max(1000),\n normalization: NeuronSteeringNormalizationSchema,\n tokenScope: NeuronSteeringTokenScopeSchema,\n maxNewTokens: z.string().max(100),\n maximumCapturedValues: z.string().max(100),\n maximumForwardTokenWork: z.string().max(100),\n maximumDurationSeconds: z.string().max(100),\n maximumSpendUsd: z.string().max(100).optional(),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.prompts.map(row => row.id)).size !== value.prompts.length ||\n new Set(value.coordinates.map(row => row.id)).size !== value.coordinates.length)\n ctx.addIssue({ code: \"custom\", message: \"Authoring row identities must be unique.\" });\n});\nexport type ActivationExperimentFormDraft = z.infer<typeof ActivationExperimentFormDraftSchema>;\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { EngramAdapterConfigSchema, EngramArtifactReferenceSchema, EngramTrainingSettingsSchema } from \"./engram-adapter.js\";\nimport { SavedEngramExperimentSourceSchema } from \"./engram-model-version.js\";\n\nexport const ENGRAM_TRAINING_DEFAULTS = EngramTrainingSettingsSchema.parse({\n learningRate: 0.001, weightDecay: 0, maxSteps: 16,\n gradientAccumulationSteps: 8, maxSequenceLength: 2048, seed: 42,\n maxDurationSeconds: 3600, maxCheckpointBytes: 2_147_483_648,\n});\n\n/** The two paper configurations describe architecture, not runtime availability.\n * Execution still requires an exact qualified base and server-owned capability. */\nexport function engramPaperConfig(perHashDim: 128 | 256) {\n return EngramAdapterConfigSchema.parse({\n schemaVersion: \"openpond.engramAdapterConfig.v1\",\n implementation: \"openpond_qwen_engram_paper_v1\", hook: \"self_attn.input\",\n injectLayers: [1, 3, 7, 15], suffixOrders: [2, 3], previousOrders: [3],\n numHashes: 4, tableSize: 90_007, perHashDim, alpha: 0.2, memoryInitStd: 0.02,\n adapterDtype: \"float32\", projectionInit: \"zeros\", gateInit: \"zeros_no_bias\",\n boundary: \"incomplete_group_off_v1\", occupancy: \"training_before_lookup_v1\",\n history: \"request_absolute_positions_v1\", batchSize: 1,\n });\n}\n\nconst Field = z.string().max(100);\nexport const EngramTrainingFormDraftSchema = z.object({\n learningRate: Field, weightDecay: Field, maxSteps: Field,\n gradientAccumulationSteps: Field, maxSequenceLength: Field, seed: Field,\n maxDurationSeconds: Field, maxCheckpointBytes: Field,\n}).strict();\n/** Incomplete authoring is retained verbatim. Preparing resolves an owned\n * reviewed batch and exact runtime; this draft grants no training authority. */\nexport const EngramExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n batch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: z.string().max(100),\n training: EngramTrainingFormDraftSchema,\n parentArtifact: EngramArtifactReferenceSchema.nullable(),\n startingModule: SavedEngramExperimentSourceSchema.optional(),\n}).strict();\nexport type EngramExperimentFormDraft = z.infer<typeof EngramExperimentFormDraftSchema>;\n","import { z } from \"zod\";\n\n/** Incomplete authoring values may be saved before datasets are selected. */\nexport const TrainingExperimentLearningIntentSchema = z.object({\n enabled: z.boolean(),\n mode: z.enum([\"nightly\", \"approved_count\"]),\n minimumTasks: z.string().max(100),\n localTime: z.string().max(100),\n timeZone: z.string().max(200),\n maximumSpendUsd: z.string().max(100),\n maximumDailySpendUsd: z.string().max(100),\n}).strict();\nexport type TrainingExperimentLearningIntent = z.infer<typeof TrainingExperimentLearningIntentSchema>;\n","import { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { parseAndVerifySavedModelVersion, type SteeringModelVersion } from \"./steering-profile-publication.js\";\nimport { SavedSteeringExperimentSourceSchema, type SavedSteeringExperimentSource } from \"./steering-experiment-source.js\";\n\nexport function savedSteeringExperimentSource(version: SteeringModelVersion): SavedSteeringExperimentSource {\n return SavedSteeringExperimentSourceSchema.parse({modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n publication: {id: version.publication.id, revision: version.publication.revision, contentHash: version.publication.contentHash},\n profileHash: version.publication.profile.contentHash});\n}\n/** The host supplies its explicitly authorized immutable version. There is no\n * network lookup, latest-version substitution or inferred base-model fallback. */\nexport async function verifySavedSteeringExperimentSource(raw: unknown, resolved: unknown, expected: {teamId?: string} = {}) {\n const source = SavedSteeringExperimentSourceSchema.parse(raw);\n const version = await parseAndVerifySavedModelVersion(resolved, {...expected, modelProjectId: source.modelProjectId});\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\" || canonicalJson(source) !== canonicalJson(savedSteeringExperimentSource(version)))\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Resolve the exact saved steering Model version, publication and profile.\");\n return version;\n}\n","import { SavedSteeringExperimentSourceSchema, type SavedSteeringExperimentSource } from \"./steering-experiment-source.js\";\nimport { verifySavedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { SavedEngramExperimentSourceSchema, parseAndVerifyEngramModelVersion, type SavedEngramExperimentSource } from \"./engram-model-version.js\";\nimport { SavedDecisionExperimentSourceSchema, decisionSourcePreference, type SavedDecisionExperimentSource } from \"./decision-experiment-draft.js\";\nimport { verifySavedDecisionExperimentSource } from \"./decision-model-version.js\";\nimport { SavedAlphaEditExperimentSourceSchema, type SavedAlphaEditExperimentSource } from \"./alphaedit-experiment-draft.js\";\nimport { SavedNeuronTrainingExperimentSourceSchema, type SavedNeuronTrainingExperimentSource } from \"./neuron-training-experiment-draft.js\";\nimport { verifySavedAlphaEditExperimentSource, verifySavedNeuronTrainingExperimentSource } from \"./weight-model-versions.js\";\n\nconst fields = {\n label: z.string().trim().min(1).max(500),\n inferenceModelId: z.string().trim().min(1).max(500).nullable(),\n baseModel: ModelProjectBaseModelSchema.nullable(),\n};\n/** A trained checkpoint is an immutable saved-version identity. Its original\n * base describes ancestry, never a replacement inference or training source. */\nexport const ExperimentStartingModelSchema = z.discriminatedUnion(\"source\", [\n z.object({...fields, source: z.literal(\"inference\")}).strict().refine(value => Boolean(value.inferenceModelId),\n {message: \"Retain the selected model's original inference identity.\"}),\n z.object({...fields, source: z.literal(\"managed\")}).strict().refine(value => Boolean(value.baseModel),\n {message: \"Retain the selected model's original managed identity.\"}),\n z.object({...fields, source: z.literal(\"steering\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, steering: SavedSteeringExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"engram\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, engram: SavedEngramExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"alphaedit\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, alphaedit: SavedAlphaEditExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"neuron_training\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, neuronTraining: SavedNeuronTrainingExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"decision\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, decision: SavedDecisionExperimentSourceSchema}).strict().superRefine((value, context) => {\n if (canonicalJson(value.baseModel) !== canonicalJson(decisionSourcePreference()))\n context.addIssue({code: \"custom\", path: [\"baseModel\"], message: \"Retain the saved decision Model's exact adapter release and its own tokenizer.\"});\n }),\n z.object({...fields, source: z.literal(\"trained\"), inferenceModelId: z.null(),\n baseModel: ModelProjectBaseModelSchema, trainedVersion: z.lazy(() => TrainingModelVersionSchema),\n }).strict().superRefine((value, context) => {\n if (canonicalJson(value.baseModel) !== canonicalJson(value.trainedVersion.request.baseModel))\n context.addIssue({code: \"custom\", path: [\"baseModel\"], message: \"Retain the trained version's exact original base.\"});\n }),\n]);\nexport type ExperimentStartingModel = z.infer<typeof ExperimentStartingModelSchema>;\n/** Compact steering refs remain untrusted authoring unless an explicit authority\n * resolver supplies the complete immutable version. Compilation requires it. */\nexport async function parseAndVerifyExperimentStartingModel(raw: unknown, expected: {teamId?: string;\n resolveSteeringVersion?: (source: SavedSteeringExperimentSource) => Promise<unknown>;\n resolveEngramVersion?: (source: SavedEngramExperimentSource) => Promise<unknown>;\n resolveDecisionVersion?: (source: SavedDecisionExperimentSource) => Promise<unknown>;\n resolveAlphaEditVersion?: (source: SavedAlphaEditExperimentSource) => Promise<unknown>;\n resolveNeuronTrainingVersion?: (source: SavedNeuronTrainingExperimentSource) => Promise<unknown>;\n} = {}) {\n const value = ExperimentStartingModelSchema.parse(raw);\n if (value.source === \"trained\") await parseAndVerifyTrainingModelVersion(value.trainedVersion, expected);\n if (value.source === \"alphaedit\" && expected.resolveAlphaEditVersion) {\n const version = await verifySavedAlphaEditExperimentSource(value.alphaedit, await expected.resolveAlphaEditVersion(value.alphaedit), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"alphaedit_experiment_source_mismatch\", \"Retain the exact saved AlphaEdit Model and original base.\");\n }\n if (value.source === \"neuron_training\" && expected.resolveNeuronTrainingVersion) {\n const version = await verifySavedNeuronTrainingExperimentSource(value.neuronTraining, await expected.resolveNeuronTrainingVersion(value.neuronTraining), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"neuron_training_experiment_source_mismatch\", \"Retain the exact saved neuron patch and original base.\");\n }\n if (value.source === \"decision\" && expected.resolveDecisionVersion) {\n const version = await verifySavedDecisionExperimentSource(value.decision, await expected.resolveDecisionVersion(value.decision), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"The authoring source differs from the exact saved decision Model's source release.\");\n }\n if (value.source === \"engram\" && expected.resolveEngramVersion) {\n const version = await parseAndVerifyEngramModelVersion(await expected.resolveEngramVersion(value.engram), {teamId: expected.teamId, modelProjectId: value.engram.modelProjectId});\n if (version.contentHash !== value.engram.versionHash || version.artifact.id !== value.engram.artifact.id\n || version.artifact.contentHash !== value.engram.artifact.contentHash\n || await canonicalSha256(version.artifact.manifest.pins.baseModel) !== value.engram.modelHash\n || canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"engram_experiment_source_mismatch\", \"The authoring source differs from the exact saved memory module.\");\n }\n if (value.source === \"steering\" && expected.resolveSteeringVersion) {\n const version = await verifySavedSteeringExperimentSource(value.steering, await expected.resolveSteeringVersion(value.steering), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.publication.baseModel))\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"The authoring source differs from the saved steering Model's exact base.\");\n }\n return value;\n}\n","import { ManagedModificationPriceSchema, canonicalComputeSpendCap, assertManagedModificationPricing, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { activationStartingProfileSource } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport {\n ActivationReferenceRequestSchema,\n ActivationReferenceResultSchema,\n parseAndVerifyActivationReferenceRequest,\n parseAndVerifyActivationReferenceResult,\n} from \"./activation-reference.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\nimport { parseManagedModificationCompile, parseAndVerifyManagedModificationCompilation, type ManagedModificationCompile } from \"./managed-modification-compilation.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nexport * from \"./managed-modification-compilation.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** Customer read projection. Capture availability is independent of execution\n * cleanup and funding settlement; this read grants no dispatch authority. */\nexport const ManagedModificationExecutionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecution.v1\"),\n id: Id,\n teamId: Id,\n ownerUserId: Id,\n projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500),\n method: ModelModificationMethodSchema,\n phase: z.enum([\"prepared\", \"queued\", \"dispatching\", \"stopping\", \"cancelled\", \"completed\", \"failed\"]),\n revision: z.number().int().positive(),\n sourceContentHash: Hash,\n plan: z.object({\n contentHash: Hash,\n inputHash: Hash,\n runtimeHash: Hash,\n maximumSpendUsd: z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48).nullable(),\n computePrice: ManagedModificationPriceSchema.optional(),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n }).strict().superRefine((plan,ctx)=>{\n try { assertManagedModificationPricing(plan); }\n catch { ctx.addIssue({code:\"custom\",message:\"Retain the accepted rate, runtime and optional spending limit.\"}); }\n }),\n request: ActivationReferenceRequestSchema,\n sourceForm: ActivationExperimentFormDraftSchema.optional(),\n result: ActivationReferenceResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n updatedAt: z.iso.datetime(),\n}).strict();\nexport const ManagedModificationExecutionSchema = ManagedModificationExecutionContentSchema.extend({ contentHash: Hash }).strict();\nexport type ManagedModificationExecution = z.infer<typeof ManagedModificationExecutionSchema>;\n\nconst Spend = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\n/** Requested inputs only. Runtime selection and paid admission belong to the host. */\nexport const ManagedModificationPrepareSchema = z.object({\n teamId: Id, operationId: Id, projectId: Id.nullable(), name: z.string().trim().min(1).max(500),\n method: ModelModificationMethodSchema, query: ModelModificationCapabilitiesQuerySchema,\n request: ActivationReferenceRequestSchema, maximumSpendUsd: Spend.nullish(),\n sourceForm: ActivationExperimentFormDraftSchema.optional(),\n}).strict();\nconst control = {teamId: Id, id: Id, operationId: Id, expectedRevision: z.number().int().positive(), planHash: Hash};\nexport const ManagedModificationStartSchema = z.object({...control, action: z.literal(\"start\"), approvedMaximumSpendUsd: Spend.nullable(), approvedPriceHash: Hash.optional()}).strict();\nexport const ManagedModificationCancelSchema = z.object({...control, action: z.literal(\"cancel\")}).strict();\nexport type ManagedModificationPrepare = z.infer<typeof ManagedModificationPrepareSchema>;\nexport type ManagedModificationStart = z.infer<typeof ManagedModificationStartSchema>;\nexport type ManagedModificationCancel = z.infer<typeof ManagedModificationCancelSchema>;\nexport const ManagedModificationExecutionMetadataSchema = ManagedModificationExecutionContentSchema.omit({schemaVersion: true, request: true, sourceForm: true, result: true, resultRecordedAt: true});\nexport const ManagedModificationExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecutionReceipt.v1\"),\n operationId: Id, requestHash: Hash, execution: ManagedModificationExecutionMetadataSchema,\n}).strict();\nexport const ManagedModificationExecutionReceiptSchema = ManagedModificationExecutionReceiptContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationExecutionReceipt = z.infer<typeof ManagedModificationExecutionReceiptSchema>;\n\n/** Metadata-only creator history. A page grants neither execution nor capture authority. */\nexport const ManagedModificationExecutionListQuerySchema = z.object({\n id: Id.optional(), projectId: Id.optional(), method: ModelModificationMethodSchema.optional(),\n phase: ManagedModificationExecutionContentSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedModificationExecutionListQuery = z.input<typeof ManagedModificationExecutionListQuerySchema>;\nexport const ManagedModificationExecutionSummarySchema = ManagedModificationExecutionMetadataSchema.extend({\n model: ActivationReferenceRequestSchema.shape.model,\n}).strict();\nexport type ManagedModificationExecutionSummary = z.infer<typeof ManagedModificationExecutionSummarySchema>;\nexport const ManagedModificationExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedModificationExecutionListQuerySchema,\n items: z.array(ManagedModificationExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedModificationExecutionPageSchema = ManagedModificationExecutionPageContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationExecutionPage = z.infer<typeof ManagedModificationExecutionPageSchema>;\nexport async function parseAndVerifyManagedModificationExecutionPage(raw: unknown, expected: {\n teamId: string; query?: ManagedModificationExecutionListQuery; ownerUserId?: string;\n}): Promise<ManagedModificationExecutionPage> {\n const page = ManagedModificationExecutionPageSchema.parse(raw), {contentHash, ...content} = page;\n const query = ManagedModificationExecutionListQuerySchema.parse(expected.query ?? {});\n const invalid = () => new OpenPondProtocolError(\"managed_modification_history_mismatch\", \"The execution history differs from its requested scope.\");\n if (page.teamId !== expected.teamId || expected.ownerUserId !== undefined && page.ownerUserId !== expected.ownerUserId ||\n canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content) ||\n page.items.length > query.limit || new Set(page.items.map(item => item.id)).size !== page.items.length ||\n page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor)) throw invalid();\n for (const [index, item] of page.items.entries()) {\n const previous = page.items[index - 1];\n assertManagedModificationPricing(item.plan);\n if (item.teamId !== page.teamId || item.ownerUserId !== page.ownerUserId ||\n query.id !== undefined && item.id !== query.id || query.projectId !== undefined && item.projectId !== query.projectId ||\n query.method !== undefined && item.method !== query.method || query.phase !== undefined && item.phase !== query.phase ||\n canonicalComputeSpendCap(item.plan.maximumSpendUsd) !== item.plan.maximumSpendUsd ||\n Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt) ||\n previous && (Date.parse(previous.plan.createdAt) < Date.parse(item.plan.createdAt) ||\n Date.parse(previous.plan.createdAt) === Date.parse(item.plan.createdAt) && previous.id <= item.id)) throw invalid();\n }\n return page;\n}\n\nexport function canonicalModificationSpend(value:string):string {\n const result=canonicalComputeSpendCap(Spend.parse(value));\n if(result===null) throw new OpenPondProtocolError(\"managed_modification_cap_invalid\",\"Choose a positive spending limit.\");\n return result;\n}\n\nexport async function parseAndVerifyManagedModificationPrepare(raw: unknown): Promise<ManagedModificationPrepare> {\n const value = ManagedModificationPrepareSchema.parse(raw);\n value.maximumSpendUsd = canonicalComputeSpendCap(value.maximumSpendUsd);\n await parseAndVerifyActivationReferenceRequest(value.request);\n if (value.sourceForm) {\n parseManagedModificationCompile({teamId: value.teamId, projectId: value.projectId,\n method: value.method, query: value.query, form: value.sourceForm});\n verifySourceForm(value.sourceForm, value.request, value.maximumSpendUsd);\n }\n if (value.request.startingProfile && value.method !== \"neuron_steering\")\n throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n const profiles = value.request.variants.filter(row => row.profile !== null).length;\n if (value.query.teamId !== value.teamId || value.query.modelId !== value.request.model.modelId ||\n value.query.revision !== value.request.model.revision ||\n (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === value.request.variants.length))\n throw new OpenPondProtocolError(\"managed_modification_input_invalid\", \"Retain the exact model and appropriate inspection or Off/intervention comparison.\");\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > 1_048_576)\n throw new OpenPondProtocolError(\"managed_modification_input_too_large\", \"The bounded activation request exceeds 1 MiB.\");\n return value;\n}\nexport function parseManagedModificationControl(raw: unknown): ManagedModificationStart | ManagedModificationCancel {\n const value = z.discriminatedUnion(\"action\", [ManagedModificationStartSchema, ManagedModificationCancelSchema]).parse(raw);\n if (value.action === \"start\") value.approvedMaximumSpendUsd = canonicalComputeSpendCap(value.approvedMaximumSpendUsd);\n return value;\n}\n/** The receipt projects the original immutable owner receipt. Capture bytes are\n * read separately; a later execution read cannot replace mutation history. */\nexport async function parseAndVerifyManagedModificationExecutionReceipt(raw: unknown,\n input: ManagedModificationPrepare | ManagedModificationStart | ManagedModificationCancel) {\n const value = ManagedModificationExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n const command = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedModificationPrepare(input);\n const execution = value.execution, prepare = !(\"action\" in command);\n const expectedHash = await canonicalSha256(prepare ? {action: \"prepare\", command} : command);\n if (contentHash !== await canonicalSha256(content) || value.operationId !== command.operationId || value.requestHash !== expectedHash ||\n execution.teamId !== command.teamId || Date.parse(execution.plan.expiresAt) <= Date.parse(execution.plan.createdAt) ||\n execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(execution.plan.maximumSpendUsd))\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The receipt differs from the original operation and reviewed execution.\");\n if (prepare) {\n const request = command as ManagedModificationPrepare;\n const id = `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: execution.ownerUserId, operationId: request.operationId})}`;\n if (execution.id !== id || execution.projectId !== request.projectId || execution.name !== request.name || execution.method !== request.method ||\n execution.phase !== \"prepared\" || execution.revision !== 1 || execution.plan.inputHash !== await canonicalSha256(request.request) ||\n execution.plan.maximumSpendUsd !== request.maximumSpendUsd)\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The preparation differs from the requested bounded experiment.\");\n } else {\n const request = command as ManagedModificationStart | ManagedModificationCancel;\n if (execution.id !== request.id || execution.revision !== request.expectedRevision + 1 || execution.plan.contentHash !== request.planHash ||\n (request.action === \"start\" ? execution.phase !== \"queued\" || execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(execution.phase)))\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The action differs from the exact reviewed execution.\");\n }\n return value;\n}\n\nexport async function parseAndVerifyManagedModificationExecution(\n raw: unknown,\n expected: { teamId: string; id: string; ownerUserId?: string },\n): Promise<ManagedModificationExecution> {\n const value = ManagedModificationExecutionSchema.parse(raw);\n const { contentHash, ...content } = value;\n const request = await parseAndVerifyActivationReferenceRequest(value.request);\n if (value.sourceForm) verifySourceForm(value.sourceForm, request, value.plan.maximumSpendUsd);\n if (request.startingProfile && value.method !== \"neuron_steering\") throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n const profiles = request.variants.filter((row) => row.profile !== null).length;\n if (value.teamId !== expected.teamId || value.id !== expected.id ||\n expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId ||\n contentHash !== await canonicalSha256(content) ||\n value.plan.inputHash !== await canonicalSha256(request) ||\n (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length) ||\n value.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.plan.maximumSpendUsd) ||\n Boolean(value.result) !== Boolean(value.resultRecordedAt) ||\n Date.parse(value.plan.expiresAt) <= Date.parse(value.plan.createdAt))\n throw new OpenPondProtocolError(\"managed_modification_execution_mismatch\", \"The execution differs from its retained identity, request or capture.\");\n if (value.result) await parseAndVerifyActivationReferenceResult(value.result, request);\n return value;\n}\n\nfunction verifySourceForm(form: z.infer<typeof ActivationExperimentFormDraftSchema>,\n request: z.infer<typeof ActivationReferenceRequestSchema>, maximumSpendUsd: string|null) {\n if (canonicalJson(form.startingProfile ?? null) !== canonicalJson(request.startingProfile ? activationStartingProfileSource(request.startingProfile) : null))\n throw new OpenPondProtocolError(\"managed_modification_authoring_mismatch\", \"Retain the exact saved steering source through preparation.\");\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId ||\n form.baseModel.revision !== request.model.revision || canonicalComputeSpendCap(form.maximumSpendUsd) !== maximumSpendUsd)\n throw new OpenPondProtocolError(\"managed_modification_authoring_mismatch\", \"The retained form differs from this exact model or spending cap.\");\n}\n\n// A full capture is bounded to 8 MiB and its exact request to 1 MiB. Keep\n// envelope headroom here without increasing unrelated Training API reads.\nexport const MANAGED_MODIFICATION_EXECUTION_RESPONSE_MAX_BYTES = 10 * 1024 * 1024;\nexport function createManagedModificationExecutionClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n async function mutate(input: ManagedModificationPrepare | ManagedModificationStart | ManagedModificationCancel) {\n const value = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedModificationPrepare(input);\n const path = \"action\" in value ? `/v1/training/modification-executions/${encodeURIComponent(value.id)}/${value.action}`\n : \"/v1/training/modification-executions/prepare\";\n return parseAndVerifyManagedModificationExecutionReceipt(await request(path, {method: \"POST\", body: canonicalJson(value)}), value);\n }\n return {\n async compileModificationExecution(input: ManagedModificationCompile) {\n const value = parseManagedModificationCompile(input);\n return parseAndVerifyManagedModificationCompilation(await request(\"/v1/training/modification-executions/compile\",\n {method: \"POST\", body: canonicalJson(value)}), value);\n },\n prepareModificationExecution(input: ManagedModificationPrepare) { return mutate(input); },\n startModificationExecution(input: ManagedModificationStart) { return mutate(input); },\n cancelModificationExecution(input: ManagedModificationCancel) { return mutate(input); },\n async listModificationExecutions(teamId: string, query: ManagedModificationExecutionListQuery = {},\n options: {signal?: AbortSignal; ownerUserId?: string} = {}): Promise<ManagedModificationExecutionPage> {\n const team = Id.parse(teamId), parsed = ManagedModificationExecutionListQuerySchema.parse(query);\n const params = new URLSearchParams({teamId: team});\n for (const [key, value] of Object.entries(parsed)) params.set(key, String(value));\n return parseAndVerifyManagedModificationExecutionPage(await request(`/v1/training/modification-executions?${params}`,\n {signal: options.signal}), {teamId: team, query: parsed, ownerUserId: options.ownerUserId});\n },\n async getModificationExecution(teamId: string, id: string, options: { signal?: AbortSignal } = {}): Promise<ManagedModificationExecution> {\n const team = Id.parse(teamId), executionId = Id.parse(id);\n const params = new URLSearchParams({ teamId: team });\n return parseAndVerifyManagedModificationExecution(await request(\n `/v1/training/modification-executions/${encodeURIComponent(executionId)}?${params}`,\n { signal: options.signal },\n MANAGED_MODIFICATION_EXECUTION_RESPONSE_MAX_BYTES,\n ), { teamId: team, id: executionId });\n },\n };\n}\n","import { activationStartingProfileSource } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nimport { ActivationReferenceRequestSchema, parseAndVerifyActivationReferenceRequest } from \"./activation-reference.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** Bounded CPU compilation only. Runtime/tokenizer assets are host-owned. */\nexport const ManagedModificationCompileSchema = z.object({\n teamId: Id, projectId: Id.nullable(), method: ModelModificationMethodSchema,\n query: ModelModificationCapabilitiesQuerySchema, form: ActivationExperimentFormDraftSchema,\n}).strict();\nexport type ManagedModificationCompile = z.infer<typeof ManagedModificationCompileSchema>;\nexport const ManagedModificationCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: ModelModificationMethodSchema, query: ModelModificationCapabilitiesQuerySchema,\n formHash: Hash, request: ActivationReferenceRequestSchema, inputHash: Hash,\n}).strict();\nexport const ManagedModificationCompilationSchema = ManagedModificationCompilationContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationCompilation = z.infer<typeof ManagedModificationCompilationSchema>;\n\nexport function parseManagedModificationCompile(raw: unknown) {\n const value = ManagedModificationCompileSchema.parse(raw), query = value.query;\n const source = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (value.form.startingProfile && value.method !== \"neuron_steering\")\n throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n if (query.teamId !== value.teamId || canonicalJson(value.form.baseModel) !== canonicalJson(source))\n throw new OpenPondProtocolError(\"managed_modification_compile_scope_mismatch\", \"Retain the exact form, model and workspace query.\");\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > 1_048_576)\n throw new OpenPondProtocolError(\"managed_modification_compile_too_large\", \"The bounded form exceeds 1 MiB.\");\n return value;\n}\n/** Verifies the compiled request's exact input/model identity and complete\n * declared bounds. Compilation grants no runtime or funding authority. */\nexport async function parseAndVerifyManagedModificationCompilation(raw: unknown, input: ManagedModificationCompile) {\n const command = parseManagedModificationCompile(input), value = ManagedModificationCompilationSchema.parse(raw);\n const {contentHash, ...content} = value, request = await parseAndVerifyActivationReferenceRequest(value.request);\n if (canonicalJson(command.form.startingProfile ?? null) !== canonicalJson(request.startingProfile ? activationStartingProfileSource(request.startingProfile) : null))\n throw new OpenPondProtocolError(\"managed_modification_compilation_mismatch\", \"The compilation dropped or changed the saved steering source.\");\n const profiles = request.variants.filter(row => row.profile !== null).length;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || value.projectId !== command.projectId ||\n value.method !== command.method || canonicalJson(value.query) !== canonicalJson(command.query) ||\n value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request) ||\n request.model.modelId !== command.query.modelId || request.model.revision !== command.query.revision ||\n (command.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length))\n throw new OpenPondProtocolError(\"managed_modification_compilation_mismatch\", \"The compilation differs from the exact requested form, model or bounds.\");\n return value;\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { EngramAdapterConfigSchema, EngramTrainingRequestSchema, EngramTrainingResultSchema,\n EngramTrainingSettingsSchema, parseAndVerifyEngramTrainingRequest, parseAndVerifyEngramTrainingResult } from \"./engram-adapter.js\";\nimport { EngramExperimentFormDraftSchema } from \"./engram-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"engram_adapter\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const EngramExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema, config: EngramAdapterConfigSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.engramTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(1000), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(2_147_483_648)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const EngramExecutionCapabilitySchema = EngramExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type EngramExecutionCapability = z.infer<typeof EngramExecutionCapabilitySchema>;\n\nexport const ManagedEngramCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: EngramExperimentFormDraftSchema}).strict();\nexport type ManagedEngramCompile = z.infer<typeof ManagedEngramCompileSchema>;\nexport const ManagedEngramCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: EngramTrainingRequestSchema,\n}).strict();\nexport const ManagedEngramCompilationSchema = ManagedEngramCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramCompilation = z.infer<typeof ManagedEngramCompilationSchema>;\nexport const ManagedEngramPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: EngramTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: EngramExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedEngramPrepare = z.infer<typeof ManagedEngramPrepareSchema>;\nexport const ManagedEngramStartSchema = ManagedModificationStartSchema;\nexport const ManagedEngramCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedEngramStart = z.infer<typeof ManagedEngramStartSchema>;\nexport type ManagedEngramCancel = z.infer<typeof ManagedEngramCancelSchema>;\nexport const ManagedEngramExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedEngramExecutionContentSchema = ManagedEngramExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedEngramExecution.v1\"), request: EngramTrainingRequestSchema,\n sourceForm: EngramExperimentFormDraftSchema.optional(), result: EngramTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedEngramExecutionSchema = ManagedEngramExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecution = z.infer<typeof ManagedEngramExecutionSchema>;\nexport const ManagedEngramExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedEngramExecutionMetadataSchema,\n}).strict();\nexport const ManagedEngramExecutionReceiptSchema = ManagedEngramExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecutionReceipt = z.infer<typeof ManagedEngramExecutionReceiptSchema>;\nexport const ManagedEngramExecutionListQuerySchema = z.object({\n method: Method.default(\"engram_adapter\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedEngramExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedEngramExecutionListQuery = z.input<typeof ManagedEngramExecutionListQuerySchema>;\nexport const ManagedEngramExecutionSummarySchema = ManagedEngramExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedEngramExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedEngramExecutionListQuerySchema, items: z.array(ManagedEngramExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedEngramExecutionPageSchema = ManagedEngramExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecutionPage = z.infer<typeof ManagedEngramExecutionPageSchema>;\n\nexport function parseEngramFormTraining(raw: z.infer<typeof EngramExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"engram_training_settings_missing\", \"Complete each Engram training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return EngramTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"engram_execution_mismatch\", \"The Engram operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof EngramTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nasync function checkForm(form: z.infer<typeof EngramExperimentFormDraftSchema>, request: z.infer<typeof EngramTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.batch) !== canonicalJson(request.data.batch)\n || canonicalJson(parseEngramFormTraining(form.training)) !== canonicalJson(request.training)\n || canonicalJson(form.parentArtifact) !== canonicalJson(request.parentArtifact)) fail();\n if (form.startingModule && (canonicalJson(form.startingModule.artifact) !== canonicalJson(request.parentArtifact)\n || form.startingModule.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof EngramExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyEngramExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = EngramExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedEngramCompilation(raw: unknown, input: ManagedEngramCompile) {\n const command = ManagedEngramCompileSchema.parse(input), value = ManagedEngramCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyEngramTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedEngramExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedEngramExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyEngramTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyEngramTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedEngramPrepare(raw: unknown) {\n const request = ManagedEngramPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyEngramTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedEngramExecutionReceipt(raw: unknown, command: ManagedEngramPrepare | ManagedEngramStart | ManagedEngramCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedEngramPrepare(command);\n const value = ManagedEngramExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyEngramTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedEngramExecutionListQuery = {}) {\n const query = ManagedEngramExecutionListQuerySchema.parse(raw);\n return ManagedEngramExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedEngramExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedEngramExecutionListQuery;\n}) {\n const value = ManagedEngramExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * Engram parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedEngramExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async engramExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyEngramExecutionCapability(await request(`/v1/training/modification-capabilities/engram?${params(query)}`, options), query);\n },\n async compileEngramExecution(raw: ManagedEngramCompile) {\n const command = ManagedEngramCompileSchema.parse(raw);\n return parseAndVerifyManagedEngramCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareEngramExecution(raw: ManagedEngramPrepare) {\n const command = await parseAndVerifyManagedEngramPrepare(raw);\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startEngramExecution(raw: ManagedEngramStart) {\n const command = parseManagedModificationControl(ManagedEngramStartSchema.parse(raw));\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelEngramExecution(raw: ManagedEngramCancel) {\n const command = ManagedEngramCancelSchema.parse(raw);\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getEngramExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedEngramExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listEngramExecutions(teamId: string, raw: ManagedEngramExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedEngramExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError, parseBoundedJson } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity } from \"./decision-model.js\";\nimport { DecisionTrainingRequestSchema, DecisionTrainingResultSchema, DecisionTrainingSettingsSchema,\n parseAndVerifyDecisionTrainingRequest, parseAndVerifyDecisionTrainingResult } from \"./decision-model-training.js\";\nimport { DecisionScoringInputSchema, DecisionScoringRequestSchema, DecisionScoringResultSchema,\n parseAndVerifyDecisionScoringRequest, parseAndVerifyDecisionScoringResult } from \"./decision-model-data.js\";\nimport { DecisionExperimentFormDraftSchema, DecisionTrainingFormDraftSchema, type DecisionExperimentFormDraft } from \"./decision-experiment-draft.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"decision_model\"), Mode = z.enum([\"train\", \"score\"]);\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const DecisionExecutionRequestSchema = z.discriminatedUnion(\"schemaVersion\", [DecisionTrainingRequestSchema, DecisionScoringRequestSchema]);\nexport type DecisionExecutionRequest = z.infer<typeof DecisionExecutionRequestSchema>;\nexport const DecisionExecutionResultSchema = z.discriminatedUnion(\"schemaVersion\", [DecisionTrainingResultSchema, DecisionScoringResultSchema]);\nexport type DecisionExecutionResult = z.infer<typeof DecisionExecutionResultSchema>;\nexport const DecisionExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({ state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000) }).strict(),\n z.object({ state: z.literal(\"ready\"), model: DecisionModelIdentitySchema,\n runtime: z.object({ id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchemas: z.tuple([z.literal(\"openpond.decisionTrainingRequest.v1\"), z.literal(\"openpond.decisionScoringRequest.v1\")]),\n evidence: z.object({ id: Id, contentHash: Hash }).strict(),\n }).strict(),\n limits: z.object({\n train: z.object({\n maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(4096), maximumGradientAccumulationSteps: z.number().int().min(1).max(64),\n maximumPromptTokens: z.number().int().min(1).max(2048), maximumForwardTokenWork: z.number().int().positive().max(536_870_912),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(268_435_456),\n }).strict(),\n score: z.object({\n maximumQuestions: z.number().int().min(1).max(8), maximumChoicesPerQuestion: z.number().int().min(2).max(26),\n maximumStateBytes: z.number().int().positive().max(65_536), maximumPromptTokens: z.number().int().min(1).max(2048),\n maximumForwardTokenWork: z.number().int().positive().max(65_536), maximumDurationSeconds: z.number().finite().positive().max(300),\n }).strict(),\n }).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const DecisionExecutionCapabilitySchema = DecisionExecutionCapabilityContentSchema.extend({ contentHash: Hash });\nexport type DecisionExecutionCapability = z.infer<typeof DecisionExecutionCapabilitySchema>;\n\nexport const ManagedDecisionCompileSchema = z.object({ teamId: Id, projectId: Id.nullable(), method: Method,\n mode: Mode, query: Query, form: DecisionExperimentFormDraftSchema }).strict();\nexport type ManagedDecisionCompile = z.infer<typeof ManagedDecisionCompileSchema>;\nexport const ManagedDecisionCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, mode: Mode, query: Query, formHash: Hash, inputHash: Hash,\n request: DecisionExecutionRequestSchema,\n}).strict();\nexport const ManagedDecisionCompilationSchema = ManagedDecisionCompilationContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionCompilation = z.infer<typeof ManagedDecisionCompilationSchema>;\nexport const ManagedDecisionPrepareSchema = z.object({ teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, mode: Mode, query: Query,\n request: DecisionExecutionRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: DecisionExperimentFormDraftSchema.optional(),\n}).strict();\nexport type ManagedDecisionPrepare = z.infer<typeof ManagedDecisionPrepareSchema>;\nexport const ManagedDecisionStartSchema = ManagedModificationStartSchema;\nexport const ManagedDecisionCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedDecisionStart = z.infer<typeof ManagedDecisionStartSchema>;\nexport type ManagedDecisionCancel = z.infer<typeof ManagedDecisionCancelSchema>;\nexport const ManagedDecisionExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({ method: true }).extend({ method: Method, mode: Mode }).strict();\nexport type ManagedDecisionExecutionMetadata = z.infer<typeof ManagedDecisionExecutionMetadataSchema>;\nexport const ManagedDecisionExecutionContentSchema = ManagedDecisionExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedDecisionExecution.v1\"), request: DecisionExecutionRequestSchema,\n sourceForm: DecisionExperimentFormDraftSchema.optional(), result: DecisionExecutionResultSchema.nullable(), resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedDecisionExecutionSchema = ManagedDecisionExecutionContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecution = z.infer<typeof ManagedDecisionExecutionSchema>;\nexport const ManagedDecisionExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedDecisionExecutionMetadataSchema,\n}).strict();\nexport const ManagedDecisionExecutionReceiptSchema = ManagedDecisionExecutionReceiptContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecutionReceipt = z.infer<typeof ManagedDecisionExecutionReceiptSchema>;\nexport const ManagedDecisionExecutionListQuerySchema = z.object({\n method: Method.default(\"decision_model\"), mode: Mode.optional(), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedDecisionExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedDecisionExecutionListQuery = z.input<typeof ManagedDecisionExecutionListQuerySchema>;\nexport const ManagedDecisionExecutionSummarySchema = ManagedDecisionExecutionMetadataSchema.extend({ model: DecisionModelIdentitySchema }).strict();\nexport type ManagedDecisionExecutionSummary = z.infer<typeof ManagedDecisionExecutionSummarySchema>;\nexport const ManagedDecisionExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedDecisionExecutionListQuerySchema, items: z.array(ManagedDecisionExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedDecisionExecutionPageSchema = ManagedDecisionExecutionPageContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecutionPage = z.infer<typeof ManagedDecisionExecutionPageSchema>;\n\nfunction fail(): never {\n throw new OpenPondProtocolError(\"decision_execution_mismatch\", \"The decision operation differs from its exact source, mode, input, settings or original approval.\");\n}\nfunction requestMode(request: DecisionExecutionRequest) {\n return request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" ? \"train\" : \"score\";\n}\nfunction querySource(query: z.infer<typeof Query>) {\n return { schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null };\n}\nfunction checkSource(query: z.infer<typeof Query>, model: z.infer<typeof DecisionModelIdentitySchema>) {\n if (canonicalJson(querySource(query)) !== canonicalJson(model.source)) fail();\n}\nfunction formNumbers(raw: Record<string, string>) {\n return Object.fromEntries(Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"decision_settings_missing\", \"Complete each decision setting before compiling.\");\n return [key, Number(value)];\n }));\n}\nexport function parseDecisionFormTraining(raw: z.infer<typeof DecisionTrainingFormDraftSchema>) {\n return DecisionTrainingSettingsSchema.parse(formNumbers(raw));\n}\n/** Compiles raw unlabeled authoring only; the host still resolves the actual\n * released tokenizer and must enforce answer-boundary tokens and prompt work. */\nexport function parseDecisionFormScoring(raw: z.infer<typeof DecisionExperimentFormDraftSchema> & { mode: \"score\" }) {\n const input = DecisionScoringInputSchema.parse({\n state: parseBoundedJson(raw.stateJson, 131_072, \"Decision state\"),\n questions: raw.questions.map(row => ({ ...row, choices: row.choices.map(choice => {\n let value: string | boolean | number = choice.value;\n if (row.type === \"boolean\") {\n if (value !== \"false\" && value !== \"true\") fail();\n value = value === \"true\";\n } else if (row.type === \"integer_levels\") {\n if (!/^-?(0|[1-9]\\d*)$/.test(value)) fail();\n value = Number(value);\n }\n return { value, description: choice.description };\n }) })),\n });\n return { input, limits: DecisionScoringRequestSchema.shape.limits.parse(formNumbers(raw.limits)) };\n}\nasync function checkForm(form: DecisionExperimentFormDraft, request: DecisionExecutionRequest) {\n const parent = request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" ? request.parentArtifact : request.artifact;\n if (form.mode !== requestMode(request) || canonicalJson(form.baseModel) !== canonicalJson(request.model.source)\n || canonicalJson(form.parentArtifact) !== canonicalJson(parent)) fail();\n if (form.startingDecision && (canonicalJson(form.startingDecision.artifact) !== canonicalJson(parent)\n || form.startingDecision.modelHash !== await canonicalSha256(request.model))) fail();\n if (form.mode === \"train\" && request.schemaVersion === \"openpond.decisionTrainingRequest.v1\") {\n if (canonicalJson(form.batch) !== canonicalJson(request.data.batch)\n || canonicalJson(parseDecisionFormTraining(form.training)) !== canonicalJson(request.training)) fail();\n } else if (form.mode === \"score\" && request.schemaVersion === \"openpond.decisionScoringRequest.v1\") {\n const parsed = parseDecisionFormScoring(form);\n if (canonicalJson(parsed.input) !== canonicalJson(request.input) || canonicalJson(parsed.limits) !== canonicalJson(request.limits)) fail();\n } else fail();\n}\nasync function verifyRequest(raw: unknown) {\n const request = DecisionExecutionRequestSchema.parse(raw);\n return request.schemaVersion === \"openpond.decisionTrainingRequest.v1\"\n ? parseAndVerifyDecisionTrainingRequest(request) : parseAndVerifyDecisionScoringRequest(request);\n}\nfunction checkPlan(metadata: ManagedDecisionExecutionMetadata) {\n if (metadata.plan.maximumSpendUsd !== canonicalComputeSpendCap(metadata.plan.maximumSpendUsd)\n || Date.parse(metadata.plan.expiresAt) <= Date.parse(metadata.plan.createdAt)) fail();\n}\n\n/** An observation, not a reservation, worker claim or approval. A host must\n * distinguish source-validated staging trials from exact GPU qualification. */\nexport async function parseAndVerifyDecisionExecutionCapability(raw: unknown, input: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(input), value = DecisionExecutionCapabilitySchema.parse(raw), { contentHash, ...content } = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expiry = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expiry <= Date.now() || expiry <= checked || expiry - checked > 300_000) fail();\n if (value.execution.state === \"ready\") {\n await parseAndVerifyDecisionModelIdentity(value.execution.model); checkSource(query, value.execution.model);\n }\n return value;\n}\n/** Fresh capability bounds only. The hosted reviewed-data owner must also\n * check actual training example count/byte size; a batch ref cannot prove them. */\nexport async function verifyDecisionExecutionCapabilityRequest(raw: DecisionExecutionCapability, input: DecisionExecutionRequest) {\n const capability = await parseAndVerifyDecisionExecutionCapability(raw, raw.query, raw.actorId);\n const request = await verifyRequest(input), execution = capability.execution;\n if (execution.state !== \"ready\")\n throw new OpenPondProtocolError(\"decision_runtime_unavailable\", \"This exact decision runtime is not qualified for execution.\");\n if (canonicalJson(execution.model) !== canonicalJson(request.model)) fail();\n if (request.schemaVersion === \"openpond.decisionTrainingRequest.v1\") {\n const limits = execution.limits.train, settings = request.training;\n if (settings.maxSteps > limits.maximumSteps || settings.gradientAccumulationSteps > limits.maximumGradientAccumulationSteps\n || settings.maximumPromptTokens > limits.maximumPromptTokens || settings.maxDurationSeconds > limits.maximumDurationSeconds\n || settings.maxCheckpointBytes > limits.maximumCheckpointBytes\n || settings.maxSteps * settings.gradientAccumulationSteps * settings.maximumPromptTokens > limits.maximumForwardTokenWork) fail();\n } else {\n const limits = execution.limits.score;\n if (request.input.questions.length > limits.maximumQuestions\n || request.input.questions.some(question => question.choices.length > limits.maximumChoicesPerQuestion)\n || canonicalJsonByteLength(request.input.state) > limits.maximumStateBytes\n || request.limits.maximumPromptTokens > limits.maximumPromptTokens\n || request.limits.maximumForwardTokenWork > limits.maximumForwardTokenWork\n || request.limits.maximumDurationSeconds > limits.maximumDurationSeconds) fail();\n }\n return execution;\n}\nexport function parseManagedDecisionCompile(raw: unknown) {\n assertBoundedTaskJson(raw, 1_048_576);\n const value = ManagedDecisionCompileSchema.parse(raw);\n if (value.query.teamId !== value.teamId || value.mode !== value.form.mode\n || canonicalJson(value.form.baseModel) !== canonicalJson(querySource(value.query))) fail();\n if (!value.form.name.trim()) fail();\n canonicalComputeSpendCap(value.form.maximumSpendUsd);\n if (value.form.mode === \"train\") {\n if (value.form.batch === null) fail();\n parseDecisionFormTraining(value.form.training);\n } else parseDecisionFormScoring(value.form);\n return value;\n}\nexport async function parseAndVerifyManagedDecisionCompilation(raw: unknown, input: ManagedDecisionCompile, actorId?: string) {\n const command = parseManagedDecisionCompile(input), value = ManagedDecisionCompilationSchema.parse(raw), { contentHash, ...content } = value;\n const request = await verifyRequest(value.request);\n checkSource(command.query, request.model); await checkForm(command.form, request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || value.projectId !== command.projectId\n || actorId !== undefined && value.actorId !== actorId || value.mode !== command.mode || value.mode !== requestMode(request)\n || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\n/** A source form is optional for direct typed callers. When present, the host\n * must freshly resolve its reviewed batch/saved source and recompile it before\n * admitting a new preparation; public verification cannot establish Dataset\n * authorization from a caller-supplied examples digest. Original receipt replay\n * must precede those fresh mutable authorization/qualification checks. */\nexport async function parseAndVerifyManagedDecisionPrepare(raw: unknown) {\n assertBoundedTaskJson(raw, 1_048_576);\n const command = ManagedDecisionPrepareSchema.parse(raw);\n command.maximumSpendUsd = canonicalComputeSpendCap(command.maximumSpendUsd);\n const request = await verifyRequest(command.request);\n if (command.query.teamId !== command.teamId || command.mode !== requestMode(request)) fail();\n checkSource(command.query, request.model);\n if (command.sourceForm) {\n await checkForm(command.sourceForm, request);\n if (command.sourceForm.name.trim() !== command.name\n || canonicalComputeSpendCap(command.sourceForm.maximumSpendUsd) !== command.maximumSpendUsd) fail();\n }\n return command;\n}\nexport async function parseAndVerifyManagedDecisionExecution(raw: unknown, expected: { teamId: string; id: string; ownerUserId?: string }) {\n assertBoundedTaskJson(raw, 1_048_576);\n const value = ManagedDecisionExecutionSchema.parse(raw), { contentHash, ...content } = value;\n const request = await verifyRequest(value.request); checkPlan(value);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId || value.mode !== requestMode(request)\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null\n || value.phase === \"completed\" && value.result === null) fail();\n if (value.sourceForm) {\n await checkForm(value.sourceForm, request);\n if (value.sourceForm.name.trim() !== value.name\n || canonicalComputeSpendCap(value.sourceForm.maximumSpendUsd) !== value.plan.maximumSpendUsd) fail();\n }\n if (value.result) {\n if (request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" && value.result.schemaVersion === \"openpond.decisionTrainingResult.v1\")\n await parseAndVerifyDecisionTrainingResult(value.result, { request, runtimeHash: value.plan.runtimeHash });\n else if (request.schemaVersion === \"openpond.decisionScoringRequest.v1\" && value.result.schemaVersion === \"openpond.decisionScoringResult.v1\")\n await parseAndVerifyDecisionScoringResult(value.result, { request, runtimeHash: value.plan.runtimeHash });\n else fail();\n }\n return value;\n}\nexport async function parseAndVerifyManagedDecisionExecutionReceipt(raw: unknown, input: ManagedDecisionPrepare | ManagedDecisionStart | ManagedDecisionCancel, ownerUserId?: string) {\n const command = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedDecisionPrepare(input);\n const value = ManagedDecisionExecutionReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const metadata = value.execution; checkPlan(metadata);\n if (contentHash !== await canonicalSha256(content) || value.operationId !== command.operationId || metadata.teamId !== command.teamId\n || ownerUserId !== undefined && metadata.ownerUserId !== ownerUserId\n || value.requestHash !== await canonicalSha256(\"action\" in command ? command : { action: \"prepare\", command })) fail();\n if (\"action\" in command) {\n if (metadata.id !== command.id || metadata.plan.contentHash !== command.planHash || metadata.revision !== command.expectedRevision + 1\n || (command.action === \"start\" ? metadata.phase !== \"queued\" || metadata.plan.maximumSpendUsd !== command.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(metadata.plan,command)\n : ![\"cancelled\", \"stopping\"].includes(metadata.phase))) fail();\n } else if (metadata.projectId !== command.projectId || metadata.name !== command.name || metadata.mode !== command.mode\n || metadata.plan.inputHash !== await canonicalSha256(command.request) || metadata.plan.maximumSpendUsd !== command.maximumSpendUsd\n || metadata.phase !== \"prepared\" || metadata.revision !== 1\n || metadata.id !== `modification-${await canonicalSha256({ teamId: command.teamId, ownerUserId: metadata.ownerUserId, operationId: command.operationId })}`) fail();\n return value;\n}\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedDecisionExecutionListQuery = {}) {\n const query = ManagedDecisionExecutionListQuerySchema.parse(raw);\n return ManagedDecisionExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedDecisionExecutionPage(raw: unknown, expected: { teamId: string; ownerUserId?: string; query?: ManagedDecisionExecutionListQuery }) {\n const value = ManagedDecisionExecutionPageSchema.parse(raw), { contentHash, ...content } = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId || canonicalJson(value.query) !== canonicalJson(query)\n || value.items.length > query.limit || new Set(value.items.map(item => item.id)).size !== value.items.length\n || value.nextCursor !== null && (value.items.length !== query.limit || value.nextCursor === query.cursor)) fail();\n for (const [index, item] of value.items.entries()) {\n const previous = value.items[index - 1];\n checkPlan(item); await parseAndVerifyDecisionModelIdentity(item.model);\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId || query.mode !== undefined && item.mode !== query.mode\n || query.id !== undefined && item.id !== query.id || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || previous && (Date.parse(previous.plan.createdAt) < Date.parse(item.plan.createdAt)\n || Date.parse(previous.plan.createdAt) === Date.parse(item.plan.createdAt) && previous.id <= item.id)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\ntype Options = { signal?: AbortSignal; ownerUserId?: string };\n/** Uses the configured canonical transport and existing modification owner.\n * Neither typed branch passes through activation/Engram request parsers. */\nexport function createManagedDecisionExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async decisionExecutionCapability(raw: z.infer<typeof Query>, options?: Options) {\n const query = Query.parse(raw);\n return parseAndVerifyDecisionExecutionCapability(await request(`/v1/training/modification-capabilities/decision?${params(query)}`, { signal: options?.signal }), query, options?.ownerUserId);\n },\n async compileDecisionExecution(raw: ManagedDecisionCompile, options?: Options) {\n const command = parseManagedDecisionCompile(raw);\n return parseAndVerifyManagedDecisionCompilation(await request(`${root}/compile`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async prepareDecisionExecution(raw: ManagedDecisionPrepare, options?: Options) {\n const command = await parseAndVerifyManagedDecisionPrepare(raw);\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/prepare`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async startDecisionExecution(raw: ManagedDecisionStart, options?: Options) {\n const command = parseManagedModificationControl(ManagedDecisionStartSchema.parse(raw));\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async cancelDecisionExecution(raw: ManagedDecisionCancel, options?: Options) {\n const command = parseManagedModificationControl(ManagedDecisionCancelSchema.parse(raw));\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async getDecisionExecution(teamId: string, id: string, options?: Options) {\n const scope = { teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId };\n return parseAndVerifyManagedDecisionExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({ teamId: scope.teamId })}`, { signal: options?.signal }), scope);\n },\n async listDecisionExecutions(teamId: string, raw: ManagedDecisionExecutionListQuery = {}, options?: Options) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedDecisionExecutionPage(await request(`${root}?${params({ teamId: team, ...query })}`, { signal: options?.signal }), { teamId: team, query, ownerUserId: options?.ownerUserId });\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { AlphaEditConfigSchema, AlphaEditTrainingRequestSchema, AlphaEditTrainingSettingsSchema,\n parseAndVerifyAlphaEditTrainingRequest } from \"./alphaedit.js\";\nimport { AlphaEditTrainingResultSchema, parseAndVerifyAlphaEditTrainingResult } from \"./alphaedit-artifact.js\";\nimport { AlphaEditExperimentFormDraftSchema, ALPHAEDIT_CONFIG_DEFAULTS } from \"./alphaedit-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"alphaedit\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const AlphaEditExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.alphaEditTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(17_179_869_184)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const AlphaEditExecutionCapabilitySchema = AlphaEditExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type AlphaEditExecutionCapability = z.infer<typeof AlphaEditExecutionCapabilitySchema>;\n\nexport const ManagedAlphaEditCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: AlphaEditExperimentFormDraftSchema}).strict();\nexport type ManagedAlphaEditCompile = z.infer<typeof ManagedAlphaEditCompileSchema>;\nexport const ManagedAlphaEditCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: AlphaEditTrainingRequestSchema,\n}).strict();\nexport const ManagedAlphaEditCompilationSchema = ManagedAlphaEditCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditCompilation = z.infer<typeof ManagedAlphaEditCompilationSchema>;\nexport const ManagedAlphaEditPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: AlphaEditTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: AlphaEditExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedAlphaEditPrepare = z.infer<typeof ManagedAlphaEditPrepareSchema>;\nexport const ManagedAlphaEditStartSchema = ManagedModificationStartSchema;\nexport const ManagedAlphaEditCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedAlphaEditStart = z.infer<typeof ManagedAlphaEditStartSchema>;\nexport type ManagedAlphaEditCancel = z.infer<typeof ManagedAlphaEditCancelSchema>;\nexport const ManagedAlphaEditExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedAlphaEditExecutionContentSchema = ManagedAlphaEditExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecution.v1\"), request: AlphaEditTrainingRequestSchema,\n sourceForm: AlphaEditExperimentFormDraftSchema.optional(), result: AlphaEditTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedAlphaEditExecutionSchema = ManagedAlphaEditExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecution = z.infer<typeof ManagedAlphaEditExecutionSchema>;\nexport const ManagedAlphaEditExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedAlphaEditExecutionMetadataSchema,\n}).strict();\nexport const ManagedAlphaEditExecutionReceiptSchema = ManagedAlphaEditExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecutionReceipt = z.infer<typeof ManagedAlphaEditExecutionReceiptSchema>;\nexport const ManagedAlphaEditExecutionListQuerySchema = z.object({\n method: Method.default(\"alphaedit\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedAlphaEditExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedAlphaEditExecutionListQuery = z.input<typeof ManagedAlphaEditExecutionListQuerySchema>;\nexport const ManagedAlphaEditExecutionSummarySchema = ManagedAlphaEditExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedAlphaEditExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedAlphaEditExecutionListQuerySchema, items: z.array(ManagedAlphaEditExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedAlphaEditExecutionPageSchema = ManagedAlphaEditExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecutionPage = z.infer<typeof ManagedAlphaEditExecutionPageSchema>;\n\nexport function parseAlphaEditFormTraining(raw: z.infer<typeof AlphaEditExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"alphaedit_training_settings_missing\", \"Complete each AlphaEdit training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return AlphaEditTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"alphaedit_execution_mismatch\", \"The AlphaEdit operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof AlphaEditTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nexport function parseAlphaEditFormConfig(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>[\"config\"]) {\n let contextTemplateGroups: unknown;\n try { contextTemplateGroups = JSON.parse(form.contextTemplateGroups); }\n catch { throw new OpenPondProtocolError(\"alphaedit_context_invalid\", \"Enter valid JSON context-template groups.\"); }\n if (!form.layers.trim() || form.layers.split(\",\").some(value => !/^\\s*\\d+\\s*$/.test(value)))\n throw new OpenPondProtocolError(\"alphaedit_layers_invalid\", \"Enter comma-separated layer indexes.\");\n if (![form.lossLayer, form.nullspaceThreshold, form.l2].every(value => value.trim()))\n throw new OpenPondProtocolError(\"alphaedit_config_missing\", \"Complete the AlphaEdit configuration.\");\n return AlphaEditConfigSchema.parse({...ALPHAEDIT_CONFIG_DEFAULTS,\n layers: form.layers.split(\",\").map(Number), lossLayer: Number(form.lossLayer),\n contextTemplateGroups, nullspaceThreshold: Number(form.nullspaceThreshold), l2: Number(form.l2)});\n}\nasync function checkForm(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>, request: z.infer<typeof AlphaEditTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.editsBatch) !== canonicalJson(request.data.edits.batch)\n || canonicalJson(form.preservationBatch) !== canonicalJson(request.data.preservation.batch)\n || canonicalJson(parseAlphaEditFormConfig(form.config)) !== canonicalJson(request.config)\n || canonicalJson(parseAlphaEditFormTraining(form.training)) !== canonicalJson(request.training)\n || canonicalJson(form.parentArtifact) !== canonicalJson(request.parentArtifact)) fail();\n if (form.startingModule && (canonicalJson(form.startingModule.artifact) !== canonicalJson(request.parentArtifact)\n || form.startingModule.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyAlphaEditExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = AlphaEditExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditCompilation(raw: unknown, input: ManagedAlphaEditCompile) {\n const command = ManagedAlphaEditCompileSchema.parse(input), value = ManagedAlphaEditCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyAlphaEditTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedAlphaEditExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyAlphaEditTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyAlphaEditTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditPrepare(raw: unknown) {\n const request = ManagedAlphaEditPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyAlphaEditTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedAlphaEditExecutionReceipt(raw: unknown, command: ManagedAlphaEditPrepare | ManagedAlphaEditStart | ManagedAlphaEditCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedAlphaEditPrepare(command);\n const value = ManagedAlphaEditExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyAlphaEditTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedAlphaEditExecutionListQuery = {}) {\n const query = ManagedAlphaEditExecutionListQuerySchema.parse(raw);\n return ManagedAlphaEditExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedAlphaEditExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedAlphaEditExecutionListQuery;\n}) {\n const value = ManagedAlphaEditExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * AlphaEdit parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedAlphaEditExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async alphaEditExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyAlphaEditExecutionCapability(await request(`/v1/training/modification-capabilities/alphaedit?${params(query)}`, options), query);\n },\n async compileAlphaEditExecution(raw: ManagedAlphaEditCompile) {\n const command = ManagedAlphaEditCompileSchema.parse(raw);\n return parseAndVerifyManagedAlphaEditCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareAlphaEditExecution(raw: ManagedAlphaEditPrepare) {\n const command = await parseAndVerifyManagedAlphaEditPrepare(raw);\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startAlphaEditExecution(raw: ManagedAlphaEditStart) {\n const command = parseManagedModificationControl(ManagedAlphaEditStartSchema.parse(raw));\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelAlphaEditExecution(raw: ManagedAlphaEditCancel) {\n const command = ManagedAlphaEditCancelSchema.parse(raw);\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getAlphaEditExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedAlphaEditExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listAlphaEditExecutions(teamId: string, raw: ManagedAlphaEditExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedAlphaEditExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { NeuronTrainingRequestSchema, NeuronTrainingSettingsSchema, NeuronTrainingSelectionSchema,\n parseAndVerifyNeuronTrainingRequest } from \"./neuron-training.js\";\nimport { NeuronTrainingResultSchema, parseAndVerifyNeuronTrainingResult } from \"./neuron-training-result.js\";\nimport { NeuronTrainingExperimentFormDraftSchema } from \"./neuron-training-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"selective_neuron_training\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const NeuronTrainingExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.selectiveNeuronTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(16_777_216)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const NeuronTrainingExecutionCapabilitySchema = NeuronTrainingExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingExecutionCapability = z.infer<typeof NeuronTrainingExecutionCapabilitySchema>;\n\nexport const ManagedNeuronTrainingCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: NeuronTrainingExperimentFormDraftSchema}).strict();\nexport type ManagedNeuronTrainingCompile = z.infer<typeof ManagedNeuronTrainingCompileSchema>;\nexport const ManagedNeuronTrainingCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: NeuronTrainingRequestSchema,\n}).strict();\nexport const ManagedNeuronTrainingCompilationSchema = ManagedNeuronTrainingCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingCompilation = z.infer<typeof ManagedNeuronTrainingCompilationSchema>;\nexport const ManagedNeuronTrainingPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: NeuronTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: NeuronTrainingExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedNeuronTrainingPrepare = z.infer<typeof ManagedNeuronTrainingPrepareSchema>;\nexport const ManagedNeuronTrainingStartSchema = ManagedModificationStartSchema;\nexport const ManagedNeuronTrainingCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedNeuronTrainingStart = z.infer<typeof ManagedNeuronTrainingStartSchema>;\nexport type ManagedNeuronTrainingCancel = z.infer<typeof ManagedNeuronTrainingCancelSchema>;\nexport const ManagedNeuronTrainingExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedNeuronTrainingExecutionContentSchema = ManagedNeuronTrainingExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecution.v1\"), request: NeuronTrainingRequestSchema,\n sourceForm: NeuronTrainingExperimentFormDraftSchema.optional(), result: NeuronTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedNeuronTrainingExecutionSchema = ManagedNeuronTrainingExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecution = z.infer<typeof ManagedNeuronTrainingExecutionSchema>;\nexport const ManagedNeuronTrainingExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedNeuronTrainingExecutionMetadataSchema,\n}).strict();\nexport const ManagedNeuronTrainingExecutionReceiptSchema = ManagedNeuronTrainingExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecutionReceipt = z.infer<typeof ManagedNeuronTrainingExecutionReceiptSchema>;\nexport const ManagedNeuronTrainingExecutionListQuerySchema = z.object({\n method: Method.default(\"selective_neuron_training\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedNeuronTrainingExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedNeuronTrainingExecutionListQuery = z.input<typeof ManagedNeuronTrainingExecutionListQuerySchema>;\nexport const ManagedNeuronTrainingExecutionSummarySchema = ManagedNeuronTrainingExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedNeuronTrainingExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedNeuronTrainingExecutionListQuerySchema, items: z.array(ManagedNeuronTrainingExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedNeuronTrainingExecutionPageSchema = ManagedNeuronTrainingExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecutionPage = z.infer<typeof ManagedNeuronTrainingExecutionPageSchema>;\n\nexport function parseNeuronTrainingFormTraining(raw: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"neuron_training_training_settings_missing\", \"Complete each NeuronTraining training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return NeuronTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"neuron_training_execution_mismatch\", \"The NeuronTraining operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof NeuronTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nexport function parseNeuronTrainingFormSelection(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>[\"selection\"]) {\n if (![form.count, form.maximumBackgroundTargetRatio, form.gradientExamples].every(value => value.trim()))\n throw new OpenPondProtocolError(\"neuron_training_selection_missing\", \"Complete the neuron selection settings.\");\n const lines = form.coordinates.trim() ? form.coordinates.trim().split(/\\r?\\n/) : null;\n if (lines?.some(line => !/^\\s*\\d+\\s*:\\s*\\d+\\s*$/.test(line)))\n throw new OpenPondProtocolError(\"neuron_training_coordinates_invalid\", \"Enter one layer:neuron coordinate per line.\");\n const explicitCoordinates = lines?.map(line => {const [layer, neuron] = line.split(\":\").map(Number); return {layer, neuron};}) ?? null;\n return NeuronTrainingSelectionSchema.parse({count: Number(form.count), span: form.span,\n backgroundStatistic: form.backgroundStatistic, maximumBackgroundTargetRatio: Number(form.maximumBackgroundTargetRatio),\n gradientExamples: Number(form.gradientExamples), explicitCoordinates});\n}\nasync function checkForm(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>, request: z.infer<typeof NeuronTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.targetBatch) !== canonicalJson(request.data.target.batch)\n || canonicalJson(form.background.map(row => ({domain: row.domain.trim(), batch: row.batch})))\n !== canonicalJson(request.data.background.map(row => ({domain: row.domain, batch: row.batch})))\n || canonicalJson(form.preservationBatch) !== canonicalJson(request.data.preservation?.batch ?? null)\n || canonicalJson(parseNeuronTrainingFormSelection(form.selection)) !== canonicalJson(request.selection)\n || canonicalJson(parseNeuronTrainingFormTraining(form.training)) !== canonicalJson(request.training)) fail();\n if (form.inspectionSource && (!request.selection.explicitCoordinates\n || form.inspectionSource.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyNeuronTrainingExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = NeuronTrainingExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingCompilation(raw: unknown, input: ManagedNeuronTrainingCompile) {\n const command = ManagedNeuronTrainingCompileSchema.parse(input), value = ManagedNeuronTrainingCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedNeuronTrainingExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyNeuronTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingPrepare(raw: unknown) {\n const request = ManagedNeuronTrainingPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyNeuronTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedNeuronTrainingExecutionReceipt(raw: unknown, command: ManagedNeuronTrainingPrepare | ManagedNeuronTrainingStart | ManagedNeuronTrainingCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedNeuronTrainingPrepare(command);\n const value = ManagedNeuronTrainingExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyNeuronTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedNeuronTrainingExecutionListQuery = {}) {\n const query = ManagedNeuronTrainingExecutionListQuerySchema.parse(raw);\n return ManagedNeuronTrainingExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedNeuronTrainingExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedNeuronTrainingExecutionListQuery;\n}) {\n const value = ManagedNeuronTrainingExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * NeuronTraining parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedNeuronTrainingExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async neuronTrainingExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyNeuronTrainingExecutionCapability(await request(`/v1/training/modification-capabilities/neuron-training?${params(query)}`, options), query);\n },\n async compileNeuronTrainingExecution(raw: ManagedNeuronTrainingCompile) {\n const command = ManagedNeuronTrainingCompileSchema.parse(raw);\n return parseAndVerifyManagedNeuronTrainingCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareNeuronTrainingExecution(raw: ManagedNeuronTrainingPrepare) {\n const command = await parseAndVerifyManagedNeuronTrainingPrepare(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startNeuronTrainingExecution(raw: ManagedNeuronTrainingStart) {\n const command = parseManagedModificationControl(ManagedNeuronTrainingStartSchema.parse(raw));\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelNeuronTrainingExecution(raw: ManagedNeuronTrainingCancel) {\n const command = ManagedNeuronTrainingCancelSchema.parse(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getNeuronTrainingExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedNeuronTrainingExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listNeuronTrainingExecutions(teamId: string, raw: ManagedNeuronTrainingExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { AlphaEditModelVersionSchema, parseAndVerifyAlphaEditModelVersion } from \"./weight-model-versions.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { WeightModelInferenceReceiptSchema, parseAndVerifyResolvedWeightModelSelection } from \"./weight-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const AlphaEditModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const AlphaEditModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type AlphaEditModelServingControlRequest = z.infer<typeof AlphaEditModelServingControlRequestSchema>;\nexport const AlphaEditModelServingControlIntentSchema = AlphaEditModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const AlphaEditModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: AlphaEditModelServingControlRequestSchema }).strict();\nexport const AlphaEditModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type AlphaEditModelServingControl = z.infer<typeof AlphaEditModelServingControlSchema>;\nexport const AlphaEditServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const AlphaEditServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const AlphaEditModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: AlphaEditModelVersionSchema,\n availability: AlphaEditServingAvailabilitySchema,\n control: AlphaEditModelServingControlSchema.nullable(), cleanup: z.array(AlphaEditModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(AlphaEditServingBindingSchema).max(100),\n lastVerifiedInference: WeightModelInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const AlphaEditModelServingSchema = AlphaEditModelServingContentSchema.extend({ contentHash: Hash });\nexport type AlphaEditModelServing = z.infer<typeof AlphaEditModelServingSchema>;\nexport const AlphaEditModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: AlphaEditModelServingControlRequestSchema, version: AlphaEditModelVersionSchema, control: AlphaEditModelServingControlSchema,\n}).strict();\nexport const AlphaEditModelServingControlReceiptSchema = AlphaEditModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type AlphaEditModelServingControlReceipt = z.infer<typeof AlphaEditModelServingControlReceiptSchema>;\n\nfunction validControl(value: AlphaEditModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function alphaEditModelServingState(value: Pick<AlphaEditModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): AlphaEditModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyAlphaEditModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: AlphaEditModelServingControlRequest; actorId?: string;\n}) {\n const value = AlphaEditModelServingControlReceiptSchema.parse(raw), request = AlphaEditModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyAlphaEditModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"alphaedit_serving_control_mismatch\", \"The serving receipt differs from the exact AlphaEdit Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyAlphaEditModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = AlphaEditModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"alphaedit\" }, value.control);\n await parseAndVerifyAlphaEditModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"alphaedit_model_serving_mismatch\", \"The serving evidence differs from the exact AlphaEdit Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== alphaEditModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n await parseAndVerifyResolvedWeightModelSelection(inference.selection, value.version);\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createAlphaEditModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async alphaEditModelServing(modelProjectId: string, raw: z.infer<typeof AlphaEditModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = AlphaEditModelServingQuerySchema.parse(raw);\n return parseAndVerifyAlphaEditModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlAlphaEditModelServing(modelProjectId: string, raw: AlphaEditModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = AlphaEditModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyAlphaEditModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion,\n type AlphaEditModelVersion, type NeuronTrainingModelVersion } from \"./weight-model-versions.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedWeightModelSelectionSchema = z.object({modelProjectId: Id, versionHash: Hash}).strict();\nexport const ResolvedWeightModelSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedWeightModelSelection.v1\"),\n method: z.enum([\"alphaedit\", \"selective_neuron_training\"]), savedModel: SavedWeightModelSelectionSchema,\n artifact: z.object({id: Id, contentHash: Hash, manifestSha256: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type ResolvedWeightModelSelection = z.infer<typeof ResolvedWeightModelSelectionSchema>;\n\n/** A saved weight Model always selects its installed patch. Off/baseline\n * comparison is a separate exact source, never an implicit base substitution. */\nexport async function parseAndVerifyResolvedWeightModelSelection(raw: unknown, input: AlphaEditModelVersion | NeuronTrainingModelVersion) {\n const value = ResolvedWeightModelSelectionSchema.parse(raw);\n const version = input.schemaVersion === \"openpond.alphaEditModelVersion.v1\"\n ? await parseAndVerifyAlphaEditModelVersion(input) : await parseAndVerifyNeuronTrainingModelVersion(input);\n const method = version.schemaVersion === \"openpond.alphaEditModelVersion.v1\" ? \"alphaedit\" : \"selective_neuron_training\";\n if (value.method !== method || value.savedModel.modelProjectId !== version.modelProjectId\n || value.savedModel.versionHash !== version.contentHash || value.artifact.id !== version.artifact.id\n || value.artifact.contentHash !== version.artifact.contentHash\n || value.artifact.manifestSha256 !== await canonicalSha256(version.artifact.manifest)\n || value.modelHash !== await canonicalSha256(version.request.model))\n throw new OpenPondProtocolError(\"weight_model_selection_mismatch\", \"The admitted Model differs from its exact learned patch and base.\");\n return value;\n}\nexport const WeightModelInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.weightModelInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedWeightModelSelectionSchema,\n poolId: Id, routingBinding: z.object({id: Id, revision: z.number().int().positive()}).strict(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash, completedAt: z.iso.datetime(),\n}).strict();\nexport const WeightModelInferenceReceiptSchema = WeightModelInferenceReceiptContentSchema.extend({contentHash: Hash});\nexport type WeightModelInferenceReceipt = z.infer<typeof WeightModelInferenceReceiptSchema>;\nexport async function parseAndVerifyWeightModelInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; selection: ResolvedWeightModelSelection;\n version: AlphaEditModelVersion | NeuronTrainingModelVersion; poolId: string;\n routingBinding: {id: string; revision: number}; runtimeHash: string; workerImageDigest: string;\n engineGeneration: number; cacheNamespace: string;\n}) {\n const value = WeightModelInferenceReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyResolvedWeightModelSelection(value.selection, expected.version);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || value.requestId !== expected.requestId || value.requestHash !== expected.requestHash\n || canonicalJson(value.selection) !== canonicalJson(expected.selection) || value.poolId !== expected.poolId\n || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"weight_model_inference_mismatch\", \"The completed inference differs from its admitted Model, runtime or cache.\");\n return value;\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronTrainingModelVersionSchema, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { WeightModelInferenceReceiptSchema, parseAndVerifyResolvedWeightModelSelection } from \"./weight-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const NeuronTrainingModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const NeuronTrainingModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type NeuronTrainingModelServingControlRequest = z.infer<typeof NeuronTrainingModelServingControlRequestSchema>;\nexport const NeuronTrainingModelServingControlIntentSchema = NeuronTrainingModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const NeuronTrainingModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: NeuronTrainingModelServingControlRequestSchema }).strict();\nexport const NeuronTrainingModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type NeuronTrainingModelServingControl = z.infer<typeof NeuronTrainingModelServingControlSchema>;\nexport const NeuronTrainingServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const NeuronTrainingServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const NeuronTrainingModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: NeuronTrainingModelVersionSchema,\n availability: NeuronTrainingServingAvailabilitySchema,\n control: NeuronTrainingModelServingControlSchema.nullable(), cleanup: z.array(NeuronTrainingModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(NeuronTrainingServingBindingSchema).max(100),\n lastVerifiedInference: WeightModelInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const NeuronTrainingModelServingSchema = NeuronTrainingModelServingContentSchema.extend({ contentHash: Hash });\nexport type NeuronTrainingModelServing = z.infer<typeof NeuronTrainingModelServingSchema>;\nexport const NeuronTrainingModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: NeuronTrainingModelServingControlRequestSchema, version: NeuronTrainingModelVersionSchema, control: NeuronTrainingModelServingControlSchema,\n}).strict();\nexport const NeuronTrainingModelServingControlReceiptSchema = NeuronTrainingModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type NeuronTrainingModelServingControlReceipt = z.infer<typeof NeuronTrainingModelServingControlReceiptSchema>;\n\nfunction validControl(value: NeuronTrainingModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function neuronTrainingModelServingState(value: Pick<NeuronTrainingModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): NeuronTrainingModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyNeuronTrainingModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: NeuronTrainingModelServingControlRequest; actorId?: string;\n}) {\n const value = NeuronTrainingModelServingControlReceiptSchema.parse(raw), request = NeuronTrainingModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyNeuronTrainingModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"neuron_training_serving_control_mismatch\", \"The serving receipt differs from the exact neuron-training Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyNeuronTrainingModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = NeuronTrainingModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"selective_neuron_training\" }, value.control);\n await parseAndVerifyNeuronTrainingModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"neuron_training_model_serving_mismatch\", \"The serving evidence differs from the exact neuron-training Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== neuronTrainingModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n await parseAndVerifyResolvedWeightModelSelection(inference.selection, value.version);\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createNeuronTrainingModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async neuronTrainingModelServing(modelProjectId: string, raw: z.infer<typeof NeuronTrainingModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = NeuronTrainingModelServingQuerySchema.parse(raw);\n return parseAndVerifyNeuronTrainingModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlNeuronTrainingModelServing(modelProjectId: string, raw: NeuronTrainingModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = NeuronTrainingModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyNeuronTrainingModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion, type DecisionModelVersion } from \"./decision-model-version.js\";\nimport { DecisionScoringInputSchema, DecisionScoringRequestSchema, DecisionScoringResultSchema,\n parseAndVerifyDecisionScoringRequest, parseAndVerifyDecisionScoringResult } from \"./decision-model-data.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Binding = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const SavedDecisionModelSelectionSchema = z.object({ modelProjectId: Id, versionHash: Hash }).strict();\nexport const ResolvedDecisionSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedDecisionSelection.v1\"),\n savedModel: SavedDecisionModelSelectionSchema, modelHash: Hash,\n artifact: z.object({ id: Id, contentHash: Hash, payloadSha256: Hash }).strict(),\n}).strict();\nexport type ResolvedDecisionSelection = z.infer<typeof ResolvedDecisionSelectionSchema>;\n\n/** The exact version is required; omitted/current/latest versions and generic\n * chat completions cannot substitute for this typed candidate scorer. requestId\n * is retained for original-operation reconciliation after an ambiguous reply. */\nexport const DecisionModelScoreRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelScoreRequest.v1\"),\n teamId: Id, requestId: Id, versionHash: Hash,\n input: DecisionScoringInputSchema, limits: DecisionScoringRequestSchema.shape.limits,\n}).strict();\nexport type DecisionModelScoreRequest = z.infer<typeof DecisionModelScoreRequestSchema>;\nexport function parseDecisionModelScoreRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n return DecisionModelScoreRequestSchema.parse(raw);\n}\nexport async function resolvedDecisionSelection(raw: DecisionModelVersion): Promise<ResolvedDecisionSelection> {\n const version = await parseAndVerifyDecisionModelVersion(raw);\n return ResolvedDecisionSelectionSchema.parse({\n schemaVersion: \"openpond.resolvedDecisionSelection.v1\",\n savedModel: { modelProjectId: version.modelProjectId, versionHash: version.contentHash },\n modelHash: await canonicalSha256(version.request.model),\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash,\n payloadSha256: version.artifact.manifest.payload.sha256 },\n });\n}\nexport async function parseAndVerifyResolvedDecisionSelection(raw: unknown, version: DecisionModelVersion) {\n const value = ResolvedDecisionSelectionSchema.parse(raw);\n if (canonicalJson(value) !== canonicalJson(await resolvedDecisionSelection(version)))\n throw new OpenPondProtocolError(\"decision_selection_mismatch\", \"The scorer selected a different exact decision Model or adapter.\");\n return value;\n}\n\nexport const DecisionModelScoreReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelScoreReceipt.v1\"),\n teamId: Id, actorId: Id, modelProjectId: Id, requestId: Id, requestHash: Hash,\n version: DecisionModelVersionSchema, selection: ResolvedDecisionSelectionSchema,\n result: DecisionScoringResultSchema,\n poolId: Id, routingBinding: Binding, runtimeHash: Hash,\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash,\n cleanupComplete: z.literal(true), completedAt: z.iso.datetime(),\n}).strict();\nexport const DecisionModelScoreReceiptSchema = DecisionModelScoreReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelScoreReceipt = z.infer<typeof DecisionModelScoreReceiptSchema>;\nexport type DecisionScoreAdmissionExpectation = {\n poolId: string; routingBinding: { id: string; revision: number };\n runtimeHash: string; workerImageDigest: string; engineGeneration?: number; cacheNamespace?: string;\n};\n\n/** Pool, engine generation and cache custody are server-attested receipt\n * values. Callers may additionally compare their independently retained\n * admission evidence; a self-consistent JSON hash alone is not worker proof.\n * The nested result separately binds the exact typed scoring input and checks\n * every finite candidate probability, rather than trusting generated JSON or\n * a partial vocabulary/logprob response. */\nexport async function parseAndVerifyDecisionModelScoreReceipt(raw: unknown, expected: {\n modelProjectId: string; request: DecisionModelScoreRequest; actorId?: string;\n admission?: DecisionScoreAdmissionExpectation;\n}) {\n assertBoundedTaskJson(raw, 1_048_576);\n const request = parseDecisionModelScoreRequest(expected.request);\n const value = DecisionModelScoreReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const version = await parseAndVerifyDecisionModelVersion(value.version, {\n teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId, versionHash: request.versionHash,\n });\n await parseAndVerifyResolvedDecisionSelection(value.selection, version);\n const scoringRequest = await parseAndVerifyDecisionScoringRequest({\n schemaVersion: \"openpond.decisionScoringRequest.v1\", model: version.request.model,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash }, input: request.input, limits: request.limits,\n });\n await parseAndVerifyDecisionScoringResult(value.result, { request: scoringRequest, runtimeHash: value.runtimeHash });\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_score_mismatch\", \"The completed score differs from the exact Model, original request or admitted runtime.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId\n || value.modelProjectId !== expected.modelProjectId || value.requestId !== request.requestId\n || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.requestHash !== await canonicalSha256({ modelProjectId: expected.modelProjectId, request })) fail();\n const admission = expected.admission;\n if (admission && (value.poolId !== admission.poolId || canonicalJson(value.routingBinding) !== canonicalJson(admission.routingBinding)\n || value.runtimeHash !== admission.runtimeHash || value.workerImageDigest !== admission.workerImageDigest\n || admission.engineGeneration !== undefined && value.engineGeneration !== admission.engineGeneration\n || admission.cacheNamespace !== undefined && value.cacheNamespace !== admission.cacheNamespace)) fail();\n return value;\n}\nexport function createDecisionModelScoringClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async scoreDecisionModel(modelProjectId: string, raw: DecisionModelScoreRequest, options?: {\n signal?: AbortSignal; actorId?: string; admission?: DecisionScoreAdmissionExpectation;\n }) {\n const id = Id.parse(modelProjectId), body = parseDecisionModelScoreRequest(raw);\n return parseAndVerifyDecisionModelScoreReceipt(await request(`/v1/training/models/${encodeURIComponent(id)}/decisions`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId, admission: options?.admission });\n },\n };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { DecisionModelScoreReceiptSchema, parseAndVerifyResolvedDecisionSelection } from \"./decision-model-scoring.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const DecisionModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const DecisionModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type DecisionModelServingControlRequest = z.infer<typeof DecisionModelServingControlRequestSchema>;\nexport const DecisionModelServingControlIntentSchema = DecisionModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const DecisionModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: DecisionModelServingControlRequestSchema }).strict();\nexport const DecisionModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type DecisionModelServingControl = z.infer<typeof DecisionModelServingControlSchema>;\nexport const DecisionServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const DecisionServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const DecisionModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: DecisionModelVersionSchema,\n availability: DecisionServingAvailabilitySchema,\n control: DecisionModelServingControlSchema.nullable(), cleanup: z.array(DecisionModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(DecisionServingBindingSchema).max(100),\n lastVerifiedScore: DecisionModelScoreReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const DecisionModelServingSchema = DecisionModelServingContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelServing = z.infer<typeof DecisionModelServingSchema>;\nexport const DecisionModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: DecisionModelServingControlRequestSchema, version: DecisionModelVersionSchema, control: DecisionModelServingControlSchema,\n}).strict();\nexport const DecisionModelServingControlReceiptSchema = DecisionModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelServingControlReceipt = z.infer<typeof DecisionModelServingControlReceiptSchema>;\n\nfunction validControl(value: DecisionModelServingControl) {\n return value.modelId === `decision:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function decisionModelServingState(value: Pick<DecisionModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): DecisionModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyDecisionModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: DecisionModelServingControlRequest; actorId?: string;\n}) {\n const value = DecisionModelServingControlReceiptSchema.parse(raw), request = DecisionModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyDecisionModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId, versionHash: request.versionHash });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"decision_serving_control_mismatch\", \"The serving receipt differs from the exact decision Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyDecisionModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = DecisionModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"decision\" }, value.control);\n await parseAndVerifyDecisionModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_serving_mismatch\", \"The serving evidence differs from the exact decision Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.state !== decisionModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `decision:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const score = value.lastVerifiedScore;\n if (score) {\n const { contentHash: receiptHash, ...receipt } = score, { contentHash: resultHash, ...result } = score.result;\n await parseAndVerifyResolvedDecisionSelection(score.selection, value.version);\n // This read checks retained receipt identity, not the unavailable original\n // raw state/questions. Full score verification requires that original command.\n if (receiptHash !== await canonicalSha256(receipt) || resultHash !== await canonicalSha256(result)\n || score.teamId !== expected.teamId || score.modelProjectId !== expected.modelProjectId\n || score.actorId !== value.version.ownerUserId || score.version.contentHash !== expected.versionHash\n || canonicalJson(score.version) !== canonicalJson(value.version)\n || score.result.modelHash !== await canonicalSha256(value.version.request.model)\n || score.result.runtimeHash !== score.runtimeHash\n || canonicalJson(score.result.artifact) !== canonicalJson({ id: value.version.artifact.id, contentHash: value.version.artifact.contentHash })\n || value.pools.some(pool => pool.id === score.poolId && pool.workerImageDigest !== score.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createDecisionModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async decisionModelServing(modelProjectId: string, raw: z.infer<typeof DecisionModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = DecisionModelServingQuerySchema.parse(raw);\n return parseAndVerifyDecisionModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlDecisionModelServing(modelProjectId: string, raw: DecisionModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = DecisionModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyDecisionModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\n/** Names the exact saved classifier without exposing it as a generic chat\n * alias. Train and score are both authored through the same decision form. */\nexport async function experimentStartingModelFromDecisionVersion(raw: unknown, expected: {\n teamId?: string; ownerUserId?: string; label: string;\n}): Promise<Extract<ExperimentStartingModel, { source: \"decision\" }>> {\n const version = await parseAndVerifyDecisionModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({\n source: \"decision\", label: expected.label, inferenceModelId: null, baseModel: version.baseModel,\n decision: { modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash },\n modelHash: await canonicalSha256(version.request.model) },\n });\n if (source.source !== \"decision\") throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"Retain the exact saved decision Model.\");\n return source;\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { AlphaEditExperimentFormDraftSchema, type AlphaEditExperimentFormDraft } from \"./alphaedit-experiment-draft.js\";\nimport { parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\ntype Scope = {teamId?: string; ownerUserId?: string};\nexport async function experimentStartingModelFromAlphaEditVersion(raw: unknown, expected: Scope & {label: string}): Promise<Extract<ExperimentStartingModel, {source: \"alphaedit\"}>> {\n const version = await parseAndVerifyAlphaEditModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"alphaedit\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, alphaedit: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n if (source.source !== \"alphaedit\") throw new OpenPondProtocolError(\"alphaedit_experiment_source_mismatch\", \"Retain the exact saved AlphaEdit Model.\");\n return source;\n}\n/** Continuation must reuse the parent's covariance/projector definition and\n * preservation evidence. A different edit batch and spend remain editable. */\nexport async function alphaEditFormFromModelVersion(form: AlphaEditExperimentFormDraft, raw: unknown, expected: Scope = {}): Promise<AlphaEditExperimentFormDraft> {\n const current = AlphaEditExperimentFormDraftSchema.parse(form), version = await parseAndVerifyAlphaEditModelVersion(raw, expected);\n return AlphaEditExperimentFormDraftSchema.parse({...current, baseModel: version.baseModel,\n preservationBatch: version.request.data.preservation.batch,\n config: {layers: version.request.config.layers.join(\", \"), lossLayer: String(version.request.config.lossLayer),\n contextTemplateGroups: JSON.stringify(version.request.config.contextTemplateGroups),\n nullspaceThreshold: String(version.request.config.nullspaceThreshold), l2: String(version.request.config.l2)},\n parentArtifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n startingModule: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n}\n/** Retains a trained patch for Model/serving selection. Training a new patch\n * from this source is explicitly rejected by experiment setup validation. */\nexport async function experimentStartingModelFromNeuronTrainingVersion(raw: unknown, expected: Scope & {label: string}): Promise<Extract<ExperimentStartingModel, {source: \"neuron_training\"}>> {\n const version = await parseAndVerifyNeuronTrainingModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"neuron_training\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, neuronTraining: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n if (source.source !== \"neuron_training\") throw new OpenPondProtocolError(\"neuron_training_experiment_source_mismatch\", \"Retain the exact saved neuron weights.\");\n return source;\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { EngramExperimentFormDraftSchema, type EngramExperimentFormDraft } from \"./engram-experiment-draft.js\";\nimport { parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport async function experimentStartingModelFromEngramVersion(raw: unknown, expected: {teamId?: string; label: string}): Promise<Extract<ExperimentStartingModel, {source: \"engram\"}>> {\n const version = await parseAndVerifyEngramModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"engram\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, engram: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.artifact.manifest.pins.baseModel)}});\n if (source.source !== \"engram\") throw new OpenPondProtocolError(\"engram_experiment_source_mismatch\", \"Retain the exact saved memory module.\");\n return source;\n}\n/** Seeds the original learned module as the continuation parent, while keeping\n * the existing editable data, training settings, name and spend approval. */\nexport async function engramFormFromModelVersion(form: EngramExperimentFormDraft, raw: unknown, expected: {teamId?: string} = {}): Promise<EngramExperimentFormDraft> {\n const current = EngramExperimentFormDraftSchema.parse(form), version = await parseAndVerifyEngramModelVersion(raw, expected);\n return EngramExperimentFormDraftSchema.parse({...current, baseModel: version.baseModel,\n parentArtifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n startingModule: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n modelHash: await canonicalSha256(version.artifact.manifest.pins.baseModel)}});\n}\n","import { z } from \"zod\";\nimport { TrainingJobSchema } from \"./training-job-contracts.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\n/** Read-only collection metadata. Job identity/state remain owned by training;\n * this projection contains no training examples, input bundles or artifacts. */\nexport const TrainingExecutionSummarySchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionSummary.v1\"),\n job: z.lazy(() => TrainingJobSchema),\n name: z.string().min(1).max(500),\n method: z.enum([\"sft\", \"grpo\", \"reward_model_train\"]).nullable(),\n model: z.object({ modelId: Id, revision: Id.nullable() }).strict().nullable(),\n dataset: ModelProjectVersionedRefSchema.nullable(),\n startedAt: z.iso.datetime().nullable(),\n })\n .strict();\nexport const TrainingExecutionListQuerySchema = z\n .object({\n projectId: Id.optional(),\n datasetHash: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n search: z.string().trim().max(1_000).optional(),\n cursor: z.string().trim().min(1).max(2_000).optional(),\n limit: z.number().int().min(1).max(100).default(30),\n })\n .strict();\nexport const TrainingExecutionPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionPage.v1\"),\n teamId: Id,\n projectId: Id.nullable(),\n items: z.array(TrainingExecutionSummarySchema).max(100),\n nextCursor: z.string().trim().min(1).max(2_000).nullable(),\n })\n .strict();\nexport type TrainingExecutionSummary = z.infer<typeof TrainingExecutionSummarySchema>;\nexport type TrainingExecutionPage = z.infer<typeof TrainingExecutionPageSchema>;\nexport type TrainingExecutionListQuery = z.input<typeof TrainingExecutionListQuerySchema>;\nexport function createTrainingExecutionClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n return {\n async listExecutions(\n teamId: string,\n input: TrainingExecutionListQuery = {},\n ): Promise<TrainingExecutionPage> {\n const scope = Id.parse(teamId),\n query = TrainingExecutionListQuerySchema.parse(input);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = TrainingExecutionPageSchema.parse(\n await request(`/v1/training/executions?${params}`),\n );\n if (\n page.teamId !== scope ||\n page.projectId !== (query.projectId ?? null) ||\n page.items.length > query.limit ||\n new Set(page.items.map((item) => item.job.id)).size !== page.items.length ||\n (query.cursor && page.nextCursor === query.cursor) ||\n page.items.some(\n (item) =>\n item.job.teamId !== scope ||\n (query.datasetHash && item.dataset?.contentHash !== query.datasetHash),\n )\n )\n throw new OpenPondProtocolError(\n \"training_execution_page_mismatch\",\n \"Training history returned a different scope or input selection.\",\n );\n return page;\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertAcceptanceGroupSnapshot, AcceptanceGroupSnapshotSchema } from \"@openpond/evals/learning\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nexport const TrainingAcceptanceGroupReferenceSchema = ModelProjectImmutableRefSchema.extend({ revision: z.number().int().positive() }).strict();\nexport const TrainingAcceptanceGroupSummarySchema = TrainingAcceptanceGroupReferenceSchema.extend({\n teamId: Id, jobId: Id,\n plan: ModelProjectImmutableRefSchema,\n baseline: ModelProjectImmutableRefSchema,\n candidate: ModelProjectImmutableRefSchema,\n state: AcceptanceGroupSnapshotSchema.shape.state,\n updatedAt: z.string().datetime(),\n}).strict();\nexport const TrainingAcceptanceGroupPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingAcceptanceGroupPage.v1\"),\n teamId: Id, jobId: Id, groups: z.array(TrainingAcceptanceGroupSummarySchema).max(100), nextCursor: Id.nullable(),\n}).strict();\nexport const TrainingAcceptanceGroupQuerySchema = z.object({\n cursor: Id.optional(), limit: z.number().int().min(1).max(100).default(25),\n}).strict();\nexport type TrainingAcceptanceGroupReference = z.infer<typeof TrainingAcceptanceGroupReferenceSchema>;\nexport type TrainingAcceptanceGroupSummary = z.infer<typeof TrainingAcceptanceGroupSummarySchema>;\nexport type TrainingAcceptanceGroupPage = z.infer<typeof TrainingAcceptanceGroupPageSchema>;\nexport type TrainingAcceptanceGroupQuery = z.input<typeof TrainingAcceptanceGroupQuerySchema>;\nexport type TrainingAcceptanceTarget = { teamId: string; jobId: string };\n\n/** Read retained evidence. These operations do not create, retry or dispatch checks. */\nexport function createTrainingAcceptanceClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const route = (target: TrainingAcceptanceTarget) => {\n Id.parse(target.teamId);\n return `/v1/training/jobs/${encodeURIComponent(Id.parse(target.jobId))}/acceptance-groups`;\n };\n return {\n async acceptanceGroups(target: TrainingAcceptanceTarget, input: TrainingAcceptanceGroupQuery = {}) {\n const query = TrainingAcceptanceGroupQuerySchema.parse(input);\n const params = new URLSearchParams({ limit: String(query.limit) });\n if (query.cursor) params.set(\"cursor\", query.cursor);\n const page = TrainingAcceptanceGroupPageSchema.parse(await request(`${route(target)}?${params}`));\n if (page.teamId !== target.teamId || page.jobId !== target.jobId || page.groups.length > query.limit ||\n page.groups.some(group => group.teamId !== target.teamId || group.jobId !== target.jobId || (query.cursor && group.id <= query.cursor)) ||\n new Set(page.groups.map(group => group.id)).size !== page.groups.length ||\n (page.nextCursor !== null && page.nextCursor !== page.groups.at(-1)?.id))\n throw new OpenPondProtocolError(\"acceptance_group_scope_mismatch\", \"Acceptance groups do not match the requested workspace, job or cursor.\");\n return page;\n },\n async acceptanceGroup(target: TrainingAcceptanceTarget, groupId: string, expected?: TrainingAcceptanceGroupReference) {\n const reference = expected ? TrainingAcceptanceGroupReferenceSchema.parse({ id: expected.id, revision: expected.revision, contentHash: expected.contentHash }) : null;\n if (reference && reference.id !== groupId) throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"The retained group reference differs from the requested group.\");\n const suffix = reference ? `?revision=${reference.revision}` : \"\";\n const snapshot = assertAcceptanceGroupSnapshot(await request(`${route(target)}/${encodeURIComponent(Id.parse(groupId))}${suffix}`));\n if (snapshot.manifest.teamId !== target.teamId || snapshot.manifest.trainingJob.id !== target.jobId || snapshot.manifest.id !== groupId ||\n (reference && (snapshot.revision !== reference.revision || snapshot.contentHash !== reference.contentHash)))\n throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"Acceptance evidence does not match the requested workspace, job or retained revision.\");\n return snapshot;\n },\n };\n}\n","export * from \"./training-usage-funding.js\";\nexport * from \"./managed-serving-usage.js\";\nexport * from \"./managed-compute-price.js\";\nimport { createEngramModelServingClient } from \"./engram-model-serving.js\";\nexport * from \"./engram-model-serving.js\";\nimport { createSteeringProfileClient } from \"./steering-profile-publication.js\";\nexport * from \"./steering-profile-publication.js\";\nimport { createExperimentDraftClient } from \"./experiment-draft-storage.js\";\nimport { createManagedModificationExecutionClient } from \"./managed-modification-executions.js\";\nimport { createManagedEngramExecutionClient } from \"./managed-engram-executions.js\";\nimport { createManagedDecisionExecutionClient } from \"./managed-decision-executions.js\";\nimport { createManagedAlphaEditExecutionClient } from \"./managed-alphaedit-executions.js\";\nimport { createManagedNeuronTrainingExecutionClient } from \"./managed-neuron-training-executions.js\";\nimport { createWeightModelClient } from \"./weight-model-versions.js\";\nimport { createAlphaEditModelServingClient } from \"./alphaedit-model-serving.js\";\nimport { createNeuronTrainingModelServingClient } from \"./neuron-training-model-serving.js\";\nimport { createDecisionModelClient } from \"./decision-model-version.js\";\nimport { createDecisionModelScoringClient } from \"./decision-model-scoring.js\";\nimport { createDecisionModelServingClient } from \"./decision-model-serving.js\";\nimport { createEngramModelClient } from \"./engram-model-version.js\";\nexport * from \"./managed-engram-executions.js\";\nexport * from \"./decision-model.js\";\nexport * from \"./decision-model-data.js\";\nexport * from \"./decision-model-artifact.js\";\nexport * from \"./decision-model-training.js\";\nexport * from \"./decision-experiment-draft.js\";\nexport * from \"./decision-experiment-authoring.js\";\nexport * from \"./managed-decision-executions.js\";\nexport * from \"./decision-model-version.js\";\nexport * from \"./decision-model-scoring.js\";\nexport * from \"./decision-model-serving.js\";\nexport * from \"./alphaedit.js\";\nexport * from \"./alphaedit-artifact.js\";\nexport * from \"./alphaedit-experiment-draft.js\";\nexport * from \"./managed-alphaedit-executions.js\";\nexport * from \"./neuron-training.js\";\nexport * from \"./neuron-training-artifact.js\";\nexport * from \"./neuron-training-result.js\";\nexport * from \"./neuron-training-experiment-draft.js\";\nexport * from \"./managed-neuron-training-executions.js\";\nexport * from \"./weight-model-versions.js\";\nexport * from \"./weight-experiment-authoring.js\";\nexport * from \"./weight-inference.js\";\nexport * from \"./alphaedit-model-serving.js\";\nexport * from \"./neuron-training-model-serving.js\";\nexport * from \"./engram-inference.js\";\nexport * from \"./engram-model-version.js\";\nexport * from \"./engram-experiment-authoring.js\";\nexport * from \"./experiment-draft-storage.js\";\nimport { createTrainingExecutionClient } from \"./training-executions.js\";\nexport { TrainingExecutionSummarySchema, TrainingExecutionPageSchema, TrainingExecutionListQuerySchema, type TrainingExecutionSummary, type TrainingExecutionPage, type TrainingExecutionListQuery } from \"./training-executions.js\";\nimport { createTrainingRequest } from \"./training-transport.js\";\nexport { SftRecipeSchema, ManagedSftRecipeSchema, type SftRecipe } from \"./training-supervised.js\";\nexport { TrainingApiErrorSchema, OpenPondTrainingApiError } from \"./training-transport.js\";\nimport { createTrainingAcceptanceClient } from \"./training-acceptance.js\";\nimport { createTrainingHardwareClient } from \"./training-hardware.js\";\nexport { HardwareObservationSchema, HardwareFleetSnapshotSchema,\n HardwareAvailabilitySchema, HardwareGpuObservationSchema,\n type HardwareObservation, type HardwareFleetSnapshot, type HardwareObservationQuery } from \"./training-hardware.js\";\nimport { createPostTrainingClient } from \"./post-training.js\";\nexport {\n TrainingAcceptanceGroupReferenceSchema,\n TrainingAcceptanceGroupSummarySchema,\n TrainingAcceptanceGroupPageSchema,\n TrainingAcceptanceGroupQuerySchema,\n type TrainingAcceptanceGroupReference,\n type TrainingAcceptanceGroupSummary,\n type TrainingAcceptanceGroupPage,\n type TrainingAcceptanceGroupQuery,\n type TrainingAcceptanceTarget,\n} from \"./training-acceptance.js\";\nimport { z } from \"zod\";\nimport { TrainingCheckpointRecoveryRequestSchema } from \"./training-recovery.js\";\nexport { TrainingCheckpointRecoveryRequestSchema, TrainingCheckpointRecoveryResourceApprovalSchema,\n createTrainingCheckpointRecoveryResourceApproval } from \"./training-recovery.js\";\nexport { TrainingPhysicalPlacementSchema, type TrainingPhysicalPlacement } from \"./training-physical-placement.js\";\nimport { createTrainingPreparationClient } from \"./training-preparations.js\";\nimport { createTrainingExperimentLearningClient } from \"./training-experiment-learning.js\";\nexport * from \"./training-experiment-learning.js\";\nimport { createTrainingExperimentSetupClient } from \"./training-experiment-setup.js\";\nexport {\n TrainingExperimentSetupRequestSchema, TrainingExperimentSetupReceiptSchema,\n TrainingExperimentInputsPageSchema, type TrainingExperimentInputsPage,\n parseAndVerifyTrainingExperimentSetupReceipt, trainingExperimentConfigurationIdentity,\n type TrainingExperimentSetupRequest, type TrainingExperimentSetupReceipt,\n} from \"./training-experiment-setup.js\";\nimport { createTrainingEstimateClient } from \"./training-estimates.js\";\nimport { createTrainingFundingClient } from \"./training-funding.js\";\nexport * from \"./training-funding.js\";\nimport { createDatasetTrainingReviewClient } from \"./dataset-training-review.js\";\nimport { createTrainingResultClient } from \"./training-result.js\";\nimport { createTrainingModelSaveClient } from \"./training-model-save.js\";\nimport { createTrainingModelServingClient } from \"./training-model-serving.js\";\nexport * from \"./training-model-serving.js\";\nimport { createTrainingModelServingControlClient } from \"./training-model-serving-control.js\";\nexport * from \"./training-model-serving-control.js\";\nimport { createSavedModelServingClient } from \"./steering-model-serving.js\";\nexport * from \"./steering-model-serving.js\";\nexport * from \"./steering-inference.js\";\nexport * from \"./neuron-residual-calibration.js\";\nimport { createNeuronCalibrationClient } from \"./neuron-calibration-records.js\";\nexport * from \"./neuron-calibration-records.js\";\nexport * from \"./neuron-steering.js\";\nexport * from \"./activation-result-comparison.js\";\nexport * from \"./activation-reference.js\";\nexport * from \"./engram-adapter.js\";\nexport * from \"./engram-experiment-draft.js\";\nimport { createModelModificationCapabilitiesClient } from \"./model-modification-capabilities.js\";\nexport * from \"./model-modification-capabilities.js\";\nimport { createModificationRecordingsClient } from \"./modification-recordings.js\";\nexport * from \"./modification-recordings.js\";\nexport * from \"./training-model-save.js\";\nexport * from \"./training-result.js\";\nexport * from \"./experiment-result-reference.js\";\nexport * from \"./dataset-training-review.js\";\nimport { createTrainingGpuCatalogClient } from \"./training-compute-selection.js\";\nimport { createTrainingHardwareCatalogClient } from \"./training-hardware-catalog.js\";\nexport * from \"./training-hardware-catalog.js\";\nexport { TrainingGpuCatalogSchema, TrainingGpuCatalogQuerySchema, TrainingGpuCatalogScopeSchema,\n parseAndVerifyTrainingGpuCatalog, type TrainingGpuCatalog, type TrainingGpuCatalogQuery, type TrainingGpuCatalogScope } from \"./training-compute-selection.js\";\nexport { TrainingQueueStatusSchema, type TrainingQueueStatus } from \"./training-queue.js\";\nexport {\n TrainingGpuSelectionSchema,\n TrainingEstimateSourceSchema,\n TrainingEstimateRequestSchema,\n TrainingEstimateComponentSchema,\n TrainingEstimateReviewSchema,\n TrainingEstimateSchema,\n TrainingEstimateWorkloadSchema,\n trainingEstimateSourceIdentity,\n type TrainingGpuSelection,\n type TrainingEstimateRequest,\n type TrainingEstimate,\n type TrainingEstimateWorkload,\n type TrainingEstimateReview,\n} from \"./training-estimates.js\";\nexport {\n TrainingPreparationParentSchema,\n type TrainingPreparationParent,\n TrainingPreparationRequestSchema,\n TrainingPreparationPlanContentSchema,\n TrainingPreparationPlanSchema,\n TrainingPreparationReceiptSchema,\n TrainingPreparationControlSchema,\n parseAndVerifyTrainingPreparationReceipt,\n type TrainingPreparationRequest,\n type TrainingPreparationPlan,\n type TrainingPreparationReceipt,\n type TrainingPreparationControl,\n} from \"./training-preparations.js\";\nexport {\n TrainingPreparationListQuerySchema,\n TrainingPreparationPageSchema,\n type TrainingPreparationListQuery,\n type TrainingPreparationPage,\n} from \"./training-preparations.js\";\nimport { createTrainingHarnessSourceClient } from \"./training-harness-sources.js\";\nexport { TrainingHarnessSourcePublicationSchema } from \"./training-harness-sources.js\";\nimport { createTrainingCandidateDecisionClient } from \"./training-candidate-decisions.js\";\nexport {\n TrainingCandidateDecisionRequestSchema,\n TrainingCandidateDecisionSchema,\n trainingCandidateDecisionHash,\n parseAndVerifyTrainingCandidateDecision,\n type TrainingCandidateDecisionRequest,\n type TrainingCandidateDecision,\n type TrainingCandidateDecisionTarget,\n} from \"./training-candidate-decisions.js\";\nimport { parseAndVerifyTrainingEvaluationTaskPage } from \"./training-evaluation-results.js\";\n\nexport { deterministicTrainingRewardSource } from \"./training-grading-plan.js\";\nexport {\n TRAINING_EVALUATION_SOURCE_PATH,\n TrainingEvaluationSourceSchema,\n assertTrainingEvaluationIsolation,\n trainingEvaluationSourceRef,\n type TrainingEvaluationSource,\n} from \"./training-evaluation-source.js\";\nexport {\n TrainingEvaluationTaskResultSchema,\n TrainingEvaluationTaskPageSchema,\n trainingEvaluationTaskPageHash,\n parseAndVerifyTrainingEvaluationTaskPage,\n type TrainingEvaluationTaskResult,\n type TrainingEvaluationTaskPage,\n} from \"./training-evaluation-results.js\";\n\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError, canonicalSha256 } from \"./protocol.js\";\n\nexport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n OPENPOND_TRAINING_PROTOCOL_MAJOR,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalJson,\n canonicalJsonByteLength,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nimport {\n TrainingCapabilitiesSchema, TrainingInputArtifactSchema, TrainingJobSchema, TrainingJobPageSchema,\n TrainingJobControlRequestSchema, TrainingJobEventSchema, TrainingJobOutputsSchema, TrainingJobLogSchema,\n parseAndVerifyTrainingInputArtifactUpload, parseAndVerifyTrainingJobSubmission,\n type TrainingInputArtifactUpload, type TrainingJobSubmission,\n} from \"./training-job-contracts.js\";\nexport * from \"./training-job-contracts.js\";\nexport * from \"./training-usage-status.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\n\nexport function createTrainingClient(input: {\n baseUrl: string;\n fetch?: typeof fetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const request = createTrainingRequest(input);\n\n return {\n postTraining: createPostTrainingClient({ request }),\n ...createTrainingPreparationClient(request),\n ...createTrainingExperimentSetupClient(request),\n ...createTrainingExperimentLearningClient(request),\n ...createTrainingEstimateClient(request),\n ...createTrainingFundingClient(request),\n ...createDatasetTrainingReviewClient(request),\n ...createTrainingResultClient(request),\n ...createTrainingModelSaveClient(request),\n ...createSteeringProfileClient(request),\n ...createTrainingModelServingClient(request),\n ...createTrainingModelServingControlClient(request),\n ...createSavedModelServingClient(request),\n ...createEngramModelServingClient(request),\n ...createNeuronCalibrationClient(request),\n ...createTrainingAcceptanceClient(request),\n ...createTrainingHardwareClient(request),\n ...createTrainingHardwareCatalogClient(request),\n ...createTrainingGpuCatalogClient(request),\n ...createModelModificationCapabilitiesClient(request),\n ...createModificationRecordingsClient(request),\n ...createTrainingHarnessSourceClient(request),\n ...createTrainingCandidateDecisionClient(request),\n ...createTrainingExecutionClient(request),\n ...createExperimentDraftClient(request),\n ...createManagedModificationExecutionClient(request),\n ...createManagedEngramExecutionClient(request),\n ...createManagedDecisionExecutionClient(request),\n ...createManagedAlphaEditExecutionClient(request),\n ...createManagedNeuronTrainingExecutionClient(request),\n ...createWeightModelClient(request),\n ...createAlphaEditModelServingClient(request),\n ...createNeuronTrainingModelServingClient(request),\n ...createDecisionModelClient(request),\n ...createDecisionModelScoringClient(request),\n ...createDecisionModelServingClient(request),\n ...createEngramModelClient(request),\n async capabilities() {\n return TrainingCapabilitiesSchema.parse(\n unwrapObject(await request(\"/v1/training/capabilities\"), \"capabilities\"),\n );\n },\n async stageArtifact(upload: TrainingInputArtifactUpload) {\n const parsed = await parseAndVerifyTrainingInputArtifactUpload(upload);\n return TrainingInputArtifactSchema.parse(\n unwrapObject(\n await request(\"/v1/training/artifacts\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"artifact\",\n ),\n );\n },\n async createJob(submission: TrainingJobSubmission) {\n const parsed = await parseAndVerifyTrainingJobSubmission(submission);\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\"/v1/training/jobs\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"job\",\n ),\n );\n },\n async listJobs(\n options: {\n modelProjectId?: string;\n cursor?: string;\n limit?: number;\n } = {},\n ) {\n const parameters = new URLSearchParams();\n if (options.modelProjectId) {\n parameters.set(\"modelProjectId\", IdSchema.parse(options.modelProjectId));\n }\n if (options.cursor) {\n parameters.set(\"cursor\", z.string().trim().min(1).max(2_000).parse(options.cursor));\n }\n if (options.limit !== undefined) {\n parameters.set(\"limit\", String(z.number().int().min(1).max(1_000).parse(options.limit)));\n }\n const query = parameters.size > 0 ? `?${parameters.toString()}` : \"\";\n return TrainingJobPageSchema.parse(await request(`/v1/training/jobs${query}`));\n },\n async getJob(jobId: string) {\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}`),\n \"job\",\n ),\n );\n },\n async cancelJob(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(control),\n }),\n \"job\",\n ),\n );\n },\n async stopAfterGroup(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/stop-after-group`,\n { method: \"POST\", body: JSON.stringify(control) },\n ),\n \"job\",\n ),\n );\n },\n async recoverCheckpoint(jobId: string, input: z.input<typeof TrainingCheckpointRecoveryRequestSchema>) {\n const recovery = TrainingCheckpointRecoveryRequestSchema.parse(input);\n if (recovery.resourceApproval) {\n const { approvalHash, ...body } = recovery.resourceApproval;\n if (body.sourceJobId !== jobId || await canonicalSha256(body) !== approvalHash)\n throw new OpenPondProtocolError(\"content_hash_mismatch\", \"Recovery resource approval does not bind this source request.\");\n }\n return TrainingJobSchema.parse(unwrapObject(await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/recover`,\n { method: \"POST\", body: JSON.stringify(recovery) },\n ), \"job\"));\n },\n async events(jobId: string) {\n return z\n .array(TrainingJobEventSchema)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`),\n \"events\",\n ),\n );\n },\n async outputs(jobId: string) {\n return TrainingJobOutputsSchema.parse(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/outputs`),\n );\n },\n async evaluationTasks(\n jobId: string,\n evaluation: { id: string; contentHash: string },\n options: { cursor?: string; limit?: number } = {},\n ) {\n const id = IdSchema.parse(jobId);\n const reference = ModelProjectImmutableRefSchema.parse(evaluation);\n const parameters = new URLSearchParams();\n const cursor =\n options.cursor === undefined\n ? undefined\n : z\n .string()\n .regex(/^[1-9]\\d*$/)\n .parse(options.cursor);\n const offset =\n cursor === undefined ? 0 : z.number().int().min(1).max(9_999).parse(Number(cursor));\n if (cursor !== undefined) parameters.set(\"cursor\", cursor);\n if (options.limit !== undefined)\n parameters.set(\"limit\", String(z.number().int().min(1).max(100).parse(options.limit)));\n const query = parameters.size ? `?${parameters.toString()}` : \"\";\n return parseAndVerifyTrainingEvaluationTaskPage(\n await request(\n `/v1/training/jobs/${encodeURIComponent(id)}/evaluations/${encodeURIComponent(reference.id)}/tasks${query}`,\n ),\n { jobId: id, evaluation: reference, offset },\n );\n },\n async logs(jobId: string) {\n return z\n .array(TrainingJobLogSchema)\n .max(100_000)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`),\n \"logs\",\n ),\n );\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\nexport { ExperimentDraftSchema, parseAndVerifyExperimentDraft, ExperimentOperationTypeSchema, ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel, experimentOperationLabel, type ExperimentDraft, type ExperimentOperationType, type ExperimentStartingModel } from \"./training-experiment-setup.js\";\nexport * from \"./activation-experiment-draft.js\";\n\nexport { TrainingExperimentFormDraftSchema, ExperimentDraftUpdateSchema, type TrainingExperimentFormDraft, type ExperimentDraftUpdate } from \"./training-experiment-setup.js\";\nexport * from \"./evaluation-experiment-draft.js\";\nexport * from \"./managed-modification-executions.js\";\nexport * from \"./activation-form-compiler.js\";\n\nexport { parseAndVerifyTrainingEstimate } from \"./training-estimates.js\";\n\nexport * from \"./steering-experiment-source.js\";\nexport * from \"./steering-experiment-source-verification.js\";\nexport * from \"./steering-experiment-authoring.js\";\n","import { z } from \"zod\";\nimport { ModelInitialLearningSchema } from \"./model-learning-intent.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectTrainingSetupSchema } from \"./model-projects.js\";\nimport { TrainingPreparationRequestSchema } from \"./training-preparations.js\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TrainingExperimentFormDraftSchema, type TrainingExperimentFormDraft } from \"./training-experiment-setup.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nexport * from \"./training-experiment-learning-intent.js\";\n\n/** An explicit policy save is separate from manual preparation and execution. */\nexport const TrainingExperimentLearningRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentLearning.v1\"),\n teamId: z.string().min(1).max(191),\n projectId: z.string().min(1).max(191).nullable(),\n draftId: z.string().min(1).max(191),\n form: TrainingExperimentFormDraftSchema.omit({ learningConfiguration: true }),\n expectedConfiguration: TrainingPreparationRequestSchema.shape.configuration.optional(),\n expectedPolicy: LearningRevisionRefSchema.optional(),\n}).strict();\nexport type TrainingExperimentLearningRequest = z.infer<typeof TrainingExperimentLearningRequestSchema>;\nexport const TrainingExperimentLearningReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentLearningReceipt.v1\"),\n inputHash: z.string().regex(/^[a-f0-9]{64}$/),\n configuration: HostedModelProjectSummarySchema,\n policy: LearningRevisionRefSchema,\n}).strict();\nexport type TrainingExperimentLearningReceipt = z.infer<typeof TrainingExperimentLearningReceiptSchema>;\n\nexport function trainingExperimentLearningRequest(input: {\n teamId: string; projectId: string | null; draftId: string; form: TrainingExperimentFormDraft;\n}) {\n const { learningConfiguration, ...form } = input.form;\n const saved = learningConfiguration?.configuration;\n return TrainingExperimentLearningRequestSchema.parse({\n schemaVersion: \"openpond.trainingExperimentLearning.v1\", ...input, form,\n ...(saved ? { expectedConfiguration: { id: saved.id, expectedRevision: saved.revision, expectedEtag: saved.etag }, expectedPolicy: learningConfiguration!.policy } : {}),\n });\n}\nexport async function trainingExperimentLearningInputHash(input: TrainingExperimentLearningRequest) {\n const value = TrainingExperimentLearningRequestSchema.parse(input);\n const { baseModel, recipe, batch, evaluation, validationSplit, learningIntent } = value.form;\n return canonicalSha256({ teamId: value.teamId, projectId: value.projectId, draftId: value.draftId,\n baseModel, recipe, batch, evaluation, validationSplit, learningIntent });\n}\n/** Only a training save accepts these authoring inputs. Pausing a policy keeps\n * this binding unchanged even when its current draft has unsaved edits. */\nexport async function trainingExperimentTrainingInputHash(form: TrainingExperimentFormDraft) {\n const { baseModel, recipe, batch, evaluation, validationSplit } = form;\n return canonicalSha256({ baseModel, recipe, batch, evaluation, validationSplit });\n}\nexport async function trainingExperimentSavedConfiguration(form: TrainingExperimentFormDraft) {\n const saved = form.learningConfiguration;\n if (saved && saved.trainingInputHash !== await trainingExperimentTrainingInputHash(form))\n throw new Error(\"Save the changed training inputs before preparing this Model, or restore its accepted settings.\");\n return saved;\n}\nexport function trainingExperimentInitialLearning(input: TrainingExperimentLearningRequest) {\n const value = input.form.learningIntent;\n if (!value || (!value.enabled && !input.expectedPolicy)) throw new Error(\"Enable continual learning before saving its first policy.\");\n return ModelInitialLearningSchema.parse({\n mode: value.mode, minimumTasks: Number(value.minimumTasks), localTime: value.localTime, timeZone: value.timeZone,\n maximumSpendUsd: Number(value.maximumSpendUsd), maximumDailySpendUsd: Number(value.maximumDailySpendUsd),\n });\n}\nexport function trainingExperimentLearningSettings(form: TrainingExperimentFormDraft) {\n return ModelProjectTrainingSetupSchema.parse({\n method: form.recipe.method, baseModel: form.baseModel,\n recipe: { ...form.recipe, dataset: { ...(form.recipe.dataset && typeof form.recipe.dataset === \"object\" ? form.recipe.dataset : {}), validationSplit: form.validationSplit } },\n evaluationTasksetRef: form.evaluation, managedRolloutPlacement: \"remote\",\n });\n}\nexport function createTrainingExperimentLearningClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveExperimentLearning(input: TrainingExperimentLearningRequest) {\n const parsed = TrainingExperimentLearningRequestSchema.parse(input);\n const result = TrainingExperimentLearningReceiptSchema.parse(await request(\"/v1/training/preparations/from-draft/learning\", { method: \"POST\", body: JSON.stringify(parsed) }));\n const pausing = parsed.form.learningIntent?.enabled === false && Boolean(parsed.expectedConfiguration && parsed.expectedPolicy);\n const expected = parsed.expectedConfiguration;\n const configurationMatches = pausing\n ? result.configuration.id === expected!.id && result.configuration.revision === expected!.expectedRevision && result.configuration.etag === expected!.expectedEtag\n : result.configuration.name === parsed.form.name.trim();\n if (result.inputHash !== await trainingExperimentLearningInputHash(parsed) || result.configuration.teamId !== parsed.teamId || !configurationMatches\n || (parsed.expectedPolicy && (result.policy.id !== parsed.expectedPolicy.id || result.policy.revision !== parsed.expectedPolicy.revision + 1)))\n throw new OpenPondProtocolError(\"training_experiment_learning_mismatch\", \"The saved learning policy does not match its authored inputs.\");\n return result;\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { TrainingJobSubmissionSchema, parseAndVerifyTrainingJobSubmission } from \"./training-job-contracts.js\";\nimport { TrainingGpuSelectionSchema, TrainingEstimateReviewSchema } from \"./training-compute-selection.js\";\nimport { TrainingEstimateWorkloadSchema } from \"./training-estimate-workload.js\";\nimport { SftRecipeSchema } from \"./training-supervised.js\";\nexport { TrainingEstimateWorkloadSchema, type TrainingEstimateWorkload } from \"./training-estimate-workload.js\";\nexport { TrainingGpuSelectionSchema, TrainingEstimateReviewSchema,\n type TrainingGpuSelection, type TrainingEstimateReview } from \"./training-compute-selection.js\";\n\nconst Id = z.string().trim().min(1).max(191);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Timestamp = z.string().datetime({ offset: true });\nconst NonNegative = z.number().finite().nonnegative();\n\n/** Hardware choice and allocation sharing are independent decisions. An exact\n * offering is never silently replaced with a different GPU when stock changes. */\nexport const TrainingEstimateSourceSchema = z.discriminatedUnion(\"kind\", [\n z.object({ kind: z.literal(\"preparation\"), id: Id, planHash: Hash, expectedRevision: z.number().int().positive() }).strict(),\n z.object({\n kind: z.literal(\"configuration\"), id: Id,\n expectedRevision: z.number().int().positive(), expectedEtag: Hash,\n batch: ModelProjectVersionedRefSchema.nullable().default(null),\n }).strict(),\n z.object({ kind: z.literal(\"submission\"), submission: z.lazy(() => TrainingJobSubmissionSchema) }).strict(),\n]);\n\n/** An estimate has no approval flag or required spend cap. Existing prepared\n * submissions may carry their original cap, which this operation cannot raise. */\nexport const TrainingEstimateRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEstimateRequest.v1\"),\n teamId: Id,\n source: TrainingEstimateSourceSchema,\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n}).strict();\n\nconst PlanningRange = z.object({ low: NonNegative, high: NonNegative }).strict()\n .refine(value => value.high >= value.low, \"Planning range must be ordered\");\n\nexport const TrainingEstimateComponentSchema = z.object({\n phase: z.enum([\n \"gpu_allocation\", \"startup\", \"baseline_evaluation\", \"rollouts\", \"optimization\", \"checkpointing\",\n \"backbone_materialization\", \"final_evaluation\", \"publication\", \"cleanup\", \"retention\",\n ]),\n resource: z.enum([\"gpu\", \"cpu\", \"judge\", \"storage\", \"network\"]),\n expectedUsd: NonNegative.nullable(),\n expectedSeconds: NonNegative.nullable(),\n planningRangeUsd: PlanningRange.nullable(),\n evidence: z.enum([\"measured\", \"configured_rate\", \"unavailable\"]),\n reason: z.string().trim().min(1).max(1000).nullable(),\n}).strict();\n\n/** A signed review binds the exact workload/price identity. It reserves neither\n * capacity nor money, and submission still checks funding and current pricing. */\nexport function trainingEstimateSourceIdentity(source: z.infer<typeof TrainingEstimateSourceSchema>) {\n if (source.kind === \"submission\") return {\n kind: source.kind, id: source.submission.idempotencyKey, contentHash: source.submission.contentHash, revision: null,\n };\n if (source.kind === \"preparation\") return {\n kind: source.kind, id: source.id, contentHash: source.planHash, revision: source.expectedRevision,\n };\n return { kind: source.kind, id: source.id, contentHash: source.expectedEtag, revision: source.expectedRevision };\n}\n\nexport const TrainingEstimateSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEstimate.v1\"),\n id: Id,\n teamId: Id,\n requestHash: Hash,\n inputHash: Hash,\n source: z.object({\n kind: z.enum([\"preparation\", \"configuration\", \"submission\"]), id: z.string().trim().min(1).max(500),\n contentHash: Hash, revision: z.number().int().positive().nullable(),\n }).strict(),\n status: z.enum([\"available\", \"partial\", \"insufficient_evidence\"]),\n currency: z.literal(\"USD\"),\n createdAt: Timestamp,\n expiresAt: Timestamp,\n estimatorVersion: Id,\n runtimeVersion: Id,\n pricing: z.object({ version: Id, quoteExpiresAt: Timestamp.nullable() }).strict(),\n gpu: z.object({\n requested: TrainingGpuSelectionSchema,\n resolved: z.object({ availabilityId: Id, gpuType: z.string().min(1).max(256), gpuCount: z.union([z.literal(1), z.literal(2)]) }).strict().nullable(),\n customerHourlyUsd: NonNegative.nullable(),\n availability: z.enum([\"available\", \"limited\", \"unavailable\", \"unknown\"]),\n }).strict(),\n configuration: z.object({\n modelId: Id,\n modelRevision: z.string().min(1).max(256),\n method: Id,\n loraRank: z.number().int().positive().nullable(),\n adapterMode: z.enum([\"residual_append\", \"shared\", \"sequential_merge\"]).nullable(),\n groups: z.number().int().nonnegative().nullable(),\n rolloutConcurrency: z.number().int().positive().nullable(),\n maxOutputTokens: z.number().int().positive().nullable(),\n trainingRows: z.number().int().nonnegative().nullable(),\n evaluationRows: z.number().int().nonnegative().nullable(),\n retentionDays: z.number().int().positive().nullable(),\n approvedMaximumUsd: NonNegative.nullable(),\n }).strict(),\n /** Producers bind supplied evidence into inputHash. Absence has no default and\n * preserves the identity of estimates produced before native token preflight. */\n workload: TrainingEstimateWorkloadSchema.optional(),\n cost: z.object({\n expectedUsd: NonNegative.nullable(),\n planningRangeUsd: PlanningRange.nullable(),\n knownMinimumUsd: NonNegative,\n recommendedMaximumUsd: NonNegative.nullable(),\n minimumCleanupReserveUsd: NonNegative.nullable(),\n components: z.array(TrainingEstimateComponentSchema).max(50),\n }).strict(),\n executionSeconds: z.object({ expected: NonNegative.nullable(), planningRange: PlanningRange.nullable() }).strict(),\n queueWaitSeconds: z.object({ expected: NonNegative, planningRange: PlanningRange.nullable() }).strict().nullable(),\n calibration: z.object({\n version: Id,\n cohortHash: Hash,\n completedSamples: z.number().int().nonnegative(),\n partialSamples: z.number().int().nonnegative(),\n scope: z.enum([\"workspace\", \"authorized_aggregate\"]),\n }).strict(),\n assumptions: z.array(z.string().trim().min(1).max(1000)).max(50),\n unknowns: z.array(z.string().trim().min(1).max(1000)).max(50),\n review: TrainingEstimateReviewSchema,\n}).strict().superRefine((estimate, context) => {\n const allocation = estimate.cost.components.filter(component => component.phase === \"gpu_allocation\");\n if (allocation.length) {\n const aggregate = allocation[0]!, rate = estimate.gpu.customerHourlyUsd;\n const mismatch = allocation.length !== 1 || aggregate.resource !== \"gpu\" ||\n (aggregate.expectedUsd === null) !== (aggregate.expectedSeconds === null) ||\n aggregate.expectedUsd !== null && (rate === null || aggregate.evidence !== \"measured\" ||\n Math.abs(aggregate.expectedUsd - aggregate.expectedSeconds! / 3600 * rate) > 1e-9) ||\n aggregate.planningRangeUsd !== null && aggregate.expectedUsd === null ||\n estimate.cost.components.some(component => component.resource === \"gpu\" && component.phase !== \"gpu_allocation\" &&\n (component.expectedUsd !== null || component.expectedSeconds !== null || component.planningRangeUsd !== null));\n if (mismatch) context.addIssue({code: \"custom\", path: [\"cost\", \"components\"],\n message: \"GPU allocation evidence must use the whole-Pod rate once, without duplicate GPU phase quantities or charges\"});\n }\n const workload = estimate.workload;\n if (workload) {\n const model = workload.identity?.baseModel;\n const trainingRows = workload.method === \"sft\" ? workload.trainingRows.total : workload.trainingRows;\n if (workload.method !== estimate.configuration.method ||\n (model && (model.modelId !== estimate.configuration.modelId || model.revision !== estimate.configuration.modelRevision)) ||\n (trainingRows !== null && estimate.configuration.trainingRows !== null && trainingRows !== estimate.configuration.trainingRows) ||\n (workload.evaluationRows !== null && estimate.configuration.evaluationRows !== null &&\n workload.evaluationRows !== estimate.configuration.evaluationRows))\n context.addIssue({ code: \"custom\", path: [\"workload\"], message: \"Workload evidence differs from the selected model, method or row population\" });\n }\n if (estimate.review.estimateId !== estimate.id || estimate.review.inputHash !== estimate.inputHash ||\n estimate.review.requestHash !== estimate.requestHash || estimate.review.pricingVersion !== estimate.pricing.version ||\n estimate.review.expiresAt !== estimate.expiresAt) {\n context.addIssue({ code: \"custom\", path: [\"review\"], message: \"Estimate review identity differs from the estimate\" });\n }\n if (Date.parse(estimate.expiresAt) <= Date.parse(estimate.createdAt)) {\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Estimate must expire after its creation\" });\n }\n if (estimate.status === \"available\" &&\n (estimate.cost.expectedUsd === null || estimate.executionSeconds.expected === null || estimate.unknowns.length > 0)) {\n context.addIssue({ code: \"custom\", path: [\"status\"], message: \"An available estimate requires complete cost and duration coverage\" });\n }\n if (estimate.gpu.requested.mode === \"manual\" && estimate.gpu.resolved &&\n (estimate.gpu.requested.availabilityId !== estimate.gpu.resolved.availabilityId ||\n estimate.gpu.requested.gpuType !== estimate.gpu.resolved.gpuType)) {\n context.addIssue({ code: \"custom\", path: [\"gpu\"], message: \"An explicit GPU offering cannot be substituted\" });\n }\n if (estimate.gpu.resolved && estimate.gpu.resolved.gpuCount !== (estimate.gpu.requested.gpuCount ?? 1)) {\n context.addIssue({ code: \"custom\", path: [\"gpu\", \"resolved\", \"gpuCount\"], message: \"The resolved GPU count must match the requested count\" });\n }\n});\n\nexport type TrainingEstimateRequest = z.infer<typeof TrainingEstimateRequestSchema>;\nexport type TrainingEstimate = z.infer<typeof TrainingEstimateSchema>;\n\nexport function createTrainingEstimateClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async estimate(input: TrainingEstimateRequest): Promise<TrainingEstimate> {\n const parsed = TrainingEstimateRequestSchema.parse(input);\n if (parsed.source.kind === \"submission\") await parseAndVerifyTrainingJobSubmission(parsed.source.submission);\n const result = TrainingEstimateSchema.parse(await request(\"/v1/training/estimates\", {\n method: \"POST\", body: JSON.stringify(parsed),\n }));\n return parseAndVerifyTrainingEstimate(result, parsed);\n },\n };\n}\n\n\n/** Verify the same exact review identity through another authenticated transport. */\nexport async function parseAndVerifyTrainingEstimate(raw: unknown, request: TrainingEstimateRequest): Promise<TrainingEstimate> {\n const parsed = TrainingEstimateRequestSchema.parse(request);\n if (parsed.source.kind === \"submission\") await parseAndVerifyTrainingJobSubmission(parsed.source.submission);\n const result = TrainingEstimateSchema.parse(raw);\n const workload = result.workload;\n if (workload && parsed.source.kind === \"submission\") {\n const submission = parsed.source.submission;\n const identity = workload.identity;\n let mismatch = submission.job.kind !== \"policy_optimize\" || workload.method !== submission.job.recipe.method;\n if (identity) {\n const source = submission.source;\n mismatch ||= identity.recipeHash !== await canonicalSha256(submission.job.recipe) ||\n await canonicalSha256(identity.baseModel) !== await canonicalSha256(submission.job.baseModel) ||\n await canonicalSha256({\n harnessRunManifest: identity.harnessRunManifest, harnessRelease: identity.harnessRelease,\n dataset: identity.dataset, evaluationDataset: identity.evaluationDataset, evidenceSets: identity.evidenceSets,\n }) !== await canonicalSha256({\n harnessRunManifest: source.harnessRunManifest, harnessRelease: source.harnessRelease,\n dataset: source.dataset, evaluationDataset: source.evaluation?.dataset ?? null, evidenceSets: source.evidenceSets,\n });\n }\n if (workload.method === \"sft\" && (workload.preprocessing || workload.planned.exampleExposures !== null)) {\n const recipe = SftRecipeSchema.safeParse(submission.job.recipe);\n if (!recipe.success) mismatch = true;\n else {\n mismatch ||= workload.preprocessing !== null && workload.preprocessing.maxSequenceLength !== recipe.data.dataset.maxSequenceLength;\n const optimizer = recipe.data.optimizer;\n const window = optimizer.batchSize * optimizer.gradientAccumulationSteps;\n if (workload.planned.exampleExposures !== null && workload.trainingRows.total !== null) {\n const exposures = Math.min(Math.ceil(workload.trainingRows.total * optimizer.epochs), optimizer.maxSteps * window);\n mismatch ||= workload.planned.exampleExposures !== exposures || workload.planned.optimizerSteps !== Math.ceil(exposures / window);\n }\n }\n } else if (workload.method === \"grpo\" && workload.preprocessing) {\n const recipe = z.object({ dataset: z.object({ maxPromptTokens: z.number().int().positive() }) }).safeParse(submission.job.recipe);\n mismatch ||= !recipe.success || workload.preprocessing.maxPromptTokens !== recipe.data.dataset.maxPromptTokens;\n }\n if (mismatch) throw new OpenPondProtocolError(\"training_estimate_scope_mismatch\", \"Workload evidence does not match the exact submitted model, recipe and released data.\");\n }\n if (result.teamId !== parsed.teamId || result.requestHash !== await canonicalSha256(parsed) ||\n Date.parse(result.expiresAt) <= Date.now() ||\n await canonicalSha256(result.source) !== await canonicalSha256(trainingEstimateSourceIdentity(parsed.source)) ||\n (parsed.gpuSelection && await canonicalSha256(result.gpu.requested) !== await canonicalSha256(parsed.gpuSelection)) ||\n (parsed.source.kind === \"submission\" && await canonicalSha256(result.gpu.requested) !== await canonicalSha256(\n parsed.source.submission.gpuSelection ?? { mode: \"automatic\", objective: parsed.source.submission.placementObjective }))) {\n throw new OpenPondProtocolError(\"training_estimate_scope_mismatch\", \"The estimate does not match the requested workspace and exact configuration.\");\n }\n return result;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\n\nconst Hash = ModelProjectImmutableRefSchema.shape.contentHash;\nconst Count = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\nconst Reason = z.string().trim().min(1).max(1000);\nconst Coverage = z.enum([\"complete\", \"bounded\", \"unavailable\"]);\n\nconst Identity = z.object({\n baseModel: ModelProjectBaseModelSchema.extend({\n revision: z.string().trim().min(1).max(256),\n tokenizerRevision: z.string().trim().min(1).max(256),\n chatTemplateHash: Hash,\n }).strict(),\n /** Hash the full verified recipe, including optimizer and sampling settings. */\n recipeHash: Hash,\n harnessRunManifest: ModelProjectImmutableRefSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n dataset: ModelProjectImmutableRefSchema,\n evaluationDataset: ModelProjectImmutableRefSchema.nullable(),\n evidenceSets: z.array(ModelProjectImmutableRefSchema).max(10_000),\n}).strict();\n\nconst Preprocessing = z.object({\n version: z.string().trim().min(1).max(191),\n /** Includes policy framing, template invocation, admission and mask code. */\n implementationHash: Hash,\n /** Hash of the verified tokenizer file inventory (paths, sizes and hashes). */\n tokenizerAssetsHash: Hash,\n enableThinking: z.literal(false),\n}).strict();\n\nconst SftTokens = z.object({\n promptTokens: Count,\n retainedPromptTokens: Count,\n /** Includes the final assistant terminal marker; prompt labels are masked. */\n targetTokens: Count,\n inputTokens: Count,\n truncatedPrompts: Count,\n}).strict().superRefine((tokens, context) => {\n if (tokens.retainedPromptTokens > tokens.promptTokens ||\n tokens.inputTokens !== tokens.retainedPromptTokens + tokens.targetTokens ||\n (tokens.truncatedPrompts === 0) !== (tokens.promptTokens === tokens.retainedPromptTokens)) {\n context.addIssue({ code: \"custom\", message: \"SFT tokens must preserve the target and partition the retained input\" });\n }\n});\n\n/** Totals cover only the exact counted subset, never an extrapolated population.\n * inputsHash binds its ordered row IDs/messages or exact initial request payloads.\n * Bounded coverage records a preflight limit; it is not a statistical estimate. */\nconst Population = z.object({\n coverage: Coverage,\n total: Count.nullable(),\n counted: Count,\n inputsHash: Hash.nullable(),\n reason: Reason.nullable(),\n}).strict();\n\nfunction verifyPopulation(value: z.infer<typeof Population> & { totals: unknown }, context: z.RefinementCtx) {\n if (value.total !== null && value.counted > value.total)\n context.addIssue({ code: \"custom\", path: [\"counted\"], message: \"Counted membership exceeds the population\" });\n if (value.coverage === \"unavailable\") {\n if (value.counted !== 0 || value.totals !== null || value.inputsHash !== null || !value.reason)\n context.addIssue({ code: \"custom\", message: \"Unavailable counts require a reason and no token evidence\" });\n } else {\n if (value.totals === null || value.inputsHash === null)\n context.addIssue({ code: \"custom\", message: \"Counted membership requires exact inputs and token totals\" });\n if (value.coverage === \"complete\" && (value.total === null || value.counted !== value.total))\n context.addIssue({ code: \"custom\", message: \"Complete coverage must count the entire declared population\" });\n if (value.coverage === \"bounded\" && !value.reason)\n context.addIssue({ code: \"custom\", path: [\"reason\"], message: \"Bounded coverage must explain its limit\" });\n }\n}\n\nconst PromptPopulation = Population.extend({ totals: z.object({ promptTokens: Count }).strict().nullable() })\n .superRefine(verifyPopulation).superRefine((value, context) => {\n if (value.totals && value.totals.promptTokens < value.counted)\n context.addIssue({ code: \"custom\", path: [\"totals\"], message: \"Each counted initial request requires a nonempty prompt\" });\n});\nconst SftPopulation = Population.extend({ totals: SftTokens.nullable() })\n .superRefine(verifyPopulation).superRefine((value, context) => {\n if (value.totals && (value.totals.truncatedPrompts > value.counted ||\n value.totals.retainedPromptTokens < value.counted || value.totals.targetTokens < value.counted))\n context.addIssue({ code: \"custom\", path: [\"totals\"], message: \"Each counted SFT row requires context and a complete target\" });\n});\n\nconst Common = {\n schemaVersion: z.literal(\"openpond.trainingEstimateWorkload.v1\"),\n identity: Identity.nullable(),\n /** Required when immutable identity or native preprocessing cannot be verified. */\n unavailableReason: Reason.nullable(),\n};\n\n/** Read-only native preprocessing evidence, independent of throughput or price.\n * Planned counts describe a successful full schedule, never actual consumption. */\nexport const TrainingEstimateWorkloadSchema = z.discriminatedUnion(\"method\", [\n z.object({\n ...Common,\n method: z.literal(\"sft\"),\n preprocessing: Preprocessing.extend({\n maxSequenceLength: Count.min(2),\n promptTruncation: z.literal(\"left_preserve_complete_target\"),\n targetMask: z.literal(\"completion_only\"),\n }).strict().nullable(),\n /** One exposure per distinct admitted row, before schedule repetition. */\n trainingRows: SftPopulation,\n evaluationRows: Count.nullable(),\n /** Initial held-out requests only; held-out targets never enter SFT loss. */\n evaluationInitialRequests: PromptPopulation,\n evaluationGeneratedCompletionTokens: z.null(),\n evaluationGeneratedTokensReason: Reason,\n planned: z.object({\n /** Native seeded epoch order, capped by maxSteps × batch × accumulation. */\n exampleExposures: Count.nullable(),\n optimizerSteps: Count.nullable(),\n /** Hash the ordered row IDs with repetition after the native step cap. */\n exposuresHash: Hash.nullable(),\n tokenTotals: SftTokens.nullable(),\n reason: Reason.nullable(),\n }).strict(),\n }).strict(),\n z.object({\n ...Common,\n method: z.literal(\"grpo\"),\n preprocessing: Preprocessing.extend({\n maxPromptTokens: Count.positive(),\n contextAdmission: z.literal(\"native_policy_context\"),\n addGenerationPrompt: z.literal(true),\n }).strict().nullable(),\n /** Distinct released rows, independent of repeated group/slot requests. */\n trainingRows: Count.nullable(),\n evaluationRows: Count.nullable(),\n /** Exact initial request variants, including seeds, tools and context. */\n trainingInitialRequests: PromptPopulation,\n evaluationInitialRequests: PromptPopulation,\n /** Future generations and tool trajectories have no exact preflight count. */\n generatedCompletionTokens: z.null(),\n subsequentToolTurnPromptTokens: z.null(),\n generatedTokensReason: Reason,\n }).strict(),\n]).superRefine((workload, context) => {\n const populations = workload.method === \"sft\"\n ? [workload.trainingRows, workload.evaluationInitialRequests]\n : [workload.trainingInitialRequests, workload.evaluationInitialRequests];\n if (!workload.identity || !workload.preprocessing) {\n if (!workload.unavailableReason || populations.some(value => value.coverage !== \"unavailable\") ||\n workload.method === \"sft\" && workload.planned.tokenTotals !== null)\n context.addIssue({ code: \"custom\", message: \"Native token counts require verified identity and preprocessing; otherwise explain their unavailability\" });\n }\n if (workload.method === \"sft\") {\n const plan = workload.planned;\n if (workload.preprocessing) {\n const limit = workload.preprocessing.maxSequenceLength;\n if (workload.trainingRows.totals && workload.trainingRows.totals.inputTokens > limit * workload.trainingRows.counted ||\n plan.tokenTotals && plan.exampleExposures !== null && plan.tokenTotals.inputTokens > limit * plan.exampleExposures)\n context.addIssue({ code: \"custom\", message: \"SFT token totals exceed the native sequence limit\" });\n }\n if ((plan.exampleExposures === null) !== (plan.optimizerSteps === null) ||\n (plan.exampleExposures === null) !== (plan.exposuresHash === null))\n context.addIssue({ code: \"custom\", path: [\"planned\"], message: \"A native schedule requires exposures, steps and ordered membership together\" });\n if (plan.exampleExposures !== null && (!workload.identity || workload.trainingRows.total === null ||\n plan.optimizerSteps === null || plan.optimizerSteps > plan.exampleExposures ||\n (plan.exampleExposures === 0) !== (plan.optimizerSteps === 0)))\n context.addIssue({ code: \"custom\", path: [\"planned\"], message: \"A native schedule requires immutable identity, admitted row membership and valid step counts\" });\n if (plan.tokenTotals && (plan.exampleExposures === null ||\n plan.tokenTotals.truncatedPrompts > plan.exampleExposures ||\n plan.tokenTotals.retainedPromptTokens < plan.exampleExposures || plan.tokenTotals.targetTokens < plan.exampleExposures))\n context.addIssue({ code: \"custom\", path: [\"planned\", \"tokenTotals\"], message: \"Planned tokens must cover the exact scheduled exposures\" });\n if ((!workload.identity || plan.exampleExposures === null || plan.tokenTotals === null) && !plan.reason)\n context.addIssue({ code: \"custom\", path: [\"planned\", \"reason\"], message: \"Incomplete planned workload requires a reason\" });\n } else if (workload.preprocessing) {\n const value = workload.trainingInitialRequests;\n if (value.totals && value.totals.promptTokens > workload.preprocessing.maxPromptTokens * value.counted)\n context.addIssue({ code: \"custom\", message: \"Training initial request token totals exceed native prompt admission\" });\n }\n});\n\nexport type TrainingEstimateWorkload = z.infer<typeof TrainingEstimateWorkloadSchema>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Amount = z.number().positive().max(1_000_000);\nconst Decimal = z.string().regex(/^\\d+(?:\\.\\d{1,6})?$/);\nconst Timestamp = z.iso.datetime();\nexport const TrainingFundingDraftRefSchema = z.object({\n id: Id, revision: z.number().int().positive(), contentHash: Hash, projectId: Id.nullable(),\n}).strict();\nexport const TrainingFundingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingRequest.v1\"),\n teamId: Id, maximumSpendUsd: Amount, draft: TrainingFundingDraftRefSchema.nullable().default(null),\n}).strict();\n/** Advisory coverage of the whole cap. This read neither reserves funds nor permits dispatch. */\nexport const TrainingFundingSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFunding.v1\"), teamId: Id, actorId: Id,\n requestHash: Hash, maximumSpendUsd: Amount, draft: TrainingFundingDraftRefSchema.nullable(),\n state: z.enum([\"covered\", \"insufficient_credit\", \"member_limit\", \"unavailable\"]),\n canViewBalance: z.boolean(), canPurchase: z.boolean(),\n availableUsageUsd: Decimal.nullable(), prepaidCreditUsd: Decimal.nullable(),\n checkedAt: Timestamp, expiresAt: Timestamp,\n}).strict().superRefine((value, context) => {\n if (!value.canViewBalance && (value.availableUsageUsd !== null || value.prepaidCreditUsd !== null))\n context.addIssue({ code: \"custom\", path: [\"canViewBalance\"], message: \"Private balances cannot accompany a restricted funding read.\" });\n if (Date.parse(value.expiresAt) <= Date.parse(value.checkedAt))\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Funding observations must expire after their check.\" });\n});\nexport const TrainingFundingHandoffRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingHandoffRequest.v1\"),\n teamId: Id, maximumSpendUsd: Amount.nullable(), draft: TrainingFundingDraftRefSchema,\n}).strict();\nexport const TrainingFundingHandoffSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingHandoff.v1\"), teamId: Id, actorId: Id,\n requestHash: Hash, maximumSpendUsd: Amount.nullable(), draft: TrainingFundingDraftRefSchema,\n canPurchase: z.boolean(), billingUrl: z.string().url().nullable(), checkedAt: Timestamp, expiresAt: Timestamp,\n}).strict().superRefine((value, context) => {\n if (Boolean(value.billingUrl) !== value.canPurchase)\n context.addIssue({ code: \"custom\", path: [\"billingUrl\"], message: \"A purchase handoff requires current billing access.\" });\n if (value.billingUrl) {\n const url = new URL(value.billingUrl);\n if ((url.protocol !== \"https:\" && !(url.protocol === \"http:\" && [\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(url.hostname))) || url.username || url.password || url.search || url.hash || !/^\\/entry\\/[A-Za-z0-9_-]{40,4096}$/.test(url.pathname))\n context.addIssue({ code: \"custom\", path: [\"billingUrl\"], message: \"Use a grantless hosted Billing entry URL.\" });\n }\n if (Date.parse(value.expiresAt) <= Date.parse(value.checkedAt))\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Funding handoffs must expire after creation.\" });\n});\nexport type TrainingFundingRequest = z.input<typeof TrainingFundingRequestSchema>;\nexport type TrainingFunding = z.infer<typeof TrainingFundingSchema>;\nexport type TrainingFundingHandoffRequest = z.infer<typeof TrainingFundingHandoffRequestSchema>;\nexport type TrainingFundingHandoff = z.infer<typeof TrainingFundingHandoffSchema>;\n\nexport async function parseAndVerifyTrainingFunding(raw: unknown, input: TrainingFundingRequest, actorId?: string) {\n const request = TrainingFundingRequestSchema.parse(input), value = TrainingFundingSchema.parse(raw);\n if (value.teamId !== request.teamId || actorId && value.actorId !== actorId || value.maximumSpendUsd !== request.maximumSpendUsd || canonicalJson(value.draft) !== canonicalJson(request.draft) || value.requestHash !== await canonicalSha256(request) || Date.parse(value.expiresAt) <= Date.now())\n throw new OpenPondProtocolError(\"training_funding_scope_mismatch\", \"Funding returned another actor, workspace, draft or spending cap.\");\n return value;\n}\nexport async function parseAndVerifyTrainingFundingHandoff(raw: unknown, input: TrainingFundingHandoffRequest, actorId?: string) {\n const request = TrainingFundingHandoffRequestSchema.parse(input), value = TrainingFundingHandoffSchema.parse(raw);\n if (value.teamId !== request.teamId || actorId && value.actorId !== actorId || value.maximumSpendUsd !== request.maximumSpendUsd || canonicalJson(value.draft) !== canonicalJson(request.draft) || value.requestHash !== await canonicalSha256(request) || Date.parse(value.expiresAt) <= Date.now())\n throw new OpenPondProtocolError(\"training_funding_handoff_scope_mismatch\", \"Billing returned another actor, workspace, draft or spending cap.\");\n return value;\n}\nexport function createTrainingFundingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async funding(input: TrainingFundingRequest) {\n const parsed = TrainingFundingRequestSchema.parse(input);\n return parseAndVerifyTrainingFunding(await request(\"/v1/training/funding/preview\", { method: \"POST\", body: canonicalJson(parsed) }), parsed);\n },\n async fundingHandoff(input: TrainingFundingHandoffRequest) {\n const parsed = TrainingFundingHandoffRequestSchema.parse(input);\n return parseAndVerifyTrainingFundingHandoff(await request(\"/v1/training/funding/handoff\", { method: \"POST\", body: canonicalJson(parsed) }), parsed);\n },\n };\n}\n","import { contentHash as learningContentHash } from \"@openpond/harness\";\nimport { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { DatasetTrainingReviewRequestSchema, DatasetTrainingReviewReceiptSchema,\n type DatasetTrainingReviewRequest } from \"./dataset-training-review-contracts.js\";\n\nexport * from \"./dataset-training-review-contracts.js\";\n\nexport async function parseAndVerifyDatasetTrainingReviewReceipt(raw: unknown, input: DatasetTrainingReviewRequest, actorId?: string) {\n const request = DatasetTrainingReviewRequestSchema.parse(input);\n const value = DatasetTrainingReviewReceiptSchema.parse(raw);\n const { contentHash, ...content } = value;\n // The review owner seals this receipt and its operation identity with the\n // learning resource encoding, independently of the training HTTP transport.\n if (contentHash !== learningContentHash(content) || value.requestHash !== learningContentHash(request)\n || value.id !== `dataset-review-${learningContentHash([value.teamId, value.actorId, value.operationId])}`\n || value.teamId !== request.teamId || actorId && value.actorId !== actorId\n || value.operationId !== request.operationId || value.packageHash !== request.packageHash\n || canonicalJson(value.dataset) !== canonicalJson(request.dataset) || value.purpose !== request.purpose)\n throw new OpenPondProtocolError(\"dataset_training_review_mismatch\", \"The Dataset review receipt differs from its exact source or operation.\");\n if (new Set(value.evidence.map(ref => ref.id)).size !== value.evidence.length\n || new Set(value.proposals.map(ref => ref.id)).size !== value.proposals.length\n || value.proposals.length > value.evidence.length\n || request.taskIds && value.evidence.length !== request.taskIds.length)\n throw new OpenPondProtocolError(\"dataset_training_review_inventory_mismatch\", \"The Dataset review returned another example inventory.\");\n return value;\n}\n\nexport function createDatasetTrainingReviewClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async reviewDataset(input: DatasetTrainingReviewRequest) {\n const parsed = DatasetTrainingReviewRequestSchema.parse(input);\n return parseAndVerifyDatasetTrainingReviewReceipt(await request(\"/v1/training/dataset-reviews\", {\n method: \"POST\", body: canonicalJson(parsed),\n }), parsed);\n },\n };\n}\n","import { z } from \"zod\";\nimport { HostedModelProjectSummarySchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(200);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingResultSaveRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResultSave.v1\"),\n teamId: Id, operationId: Id, name: z.string().trim().min(1).max(200),\n expectedModelRevision: z.number().int().positive(),\n submissionHash: Hash, artifact: ModelProjectImmutableRefSchema, checkpointId: Id,\n}).strict();\nexport type TrainingResultSaveRequest = z.infer<typeof TrainingResultSaveRequestSchema>;\nexport const TrainingResultSaveIntentSchema = TrainingResultSaveRequestSchema.omit({ operationId: true }).extend({ jobId: Id }).strict();\nexport const TrainingResultSaveCommandSchema = z.object({ jobId: Id, request: TrainingResultSaveRequestSchema }).strict();\nexport const TrainingResultSaveReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResultSaveReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash,\n model: z.lazy(() => HostedModelProjectSummarySchema), version: z.lazy(() => TrainingModelVersionSchema),\n contentHash: Hash,\n}).strict();\nexport type TrainingResultSaveReceipt = z.infer<typeof TrainingResultSaveReceiptSchema>;\nexport const TrainingSavedModelQuerySchema = z.object({ teamId: Id }).strict();\nexport const TrainingSavedModelSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingSavedModel.v1\"), teamId: Id,\n model: z.lazy(() => HostedModelProjectSummarySchema), version: z.lazy(() => TrainingModelVersionSchema).nullable(),\n}).strict();\nexport async function parseAndVerifyTrainingSavedModel(raw: unknown, expected: { teamId: string; modelProjectId: string }) {\n const value = TrainingSavedModelSchema.parse(raw);\n if (value.teamId !== expected.teamId || value.model.teamId !== expected.teamId || value.model.id !== expected.modelProjectId)\n throw new OpenPondProtocolError(\"training_saved_model_mismatch\", \"The saved Model belongs to another workspace or configuration.\");\n if (value.version) {\n const version = await parseAndVerifyTrainingModelVersion(value.version, expected);\n if (version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"training_saved_model_mismatch\", \"The saved Model version belongs to another configuration.\");\n }\n return value;\n}\nexport async function parseAndVerifyTrainingResultSave(raw: unknown, expected: { jobId: string; request: TrainingResultSaveRequest; actorId?: string }) {\n const value = TrainingResultSaveReceiptSchema.parse(raw);\n const request = TrainingResultSaveRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value;\n const version = await parseAndVerifyTrainingModelVersion(value.version, { teamId: request.teamId, modelProjectId: value.model.id, jobId: expected.jobId });\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || expected.actorId && value.actorId !== expected.actorId\n || value.operationId !== request.operationId || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1\n || value.model.portableProjectId !== version.portableProjectId\n || version.request.submissionHash !== request.submissionHash\n || version.candidate.artifact.id !== request.artifact.id || version.candidate.artifact.contentHash !== request.artifact.contentHash\n || version.candidate.checkpointId !== request.checkpointId)\n throw new OpenPondProtocolError(\"training_result_save_mismatch\", \"The saved Model differs from the reviewed training result or name.\");\n return value;\n}\nexport function createTrainingModelSaveClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async savedModel(modelProjectId: string, query: z.infer<typeof TrainingSavedModelQuerySchema>) {\n const id = Id.parse(modelProjectId), scope = TrainingSavedModelQuerySchema.parse(query);\n return parseAndVerifyTrainingSavedModel(await request(`/v1/training/models/${encodeURIComponent(id)}?${new URLSearchParams(scope)}`), { ...scope, modelProjectId: id });\n },\n async saveResultModel(jobId: string, raw: TrainingResultSaveRequest) {\n const id = Id.parse(jobId), body = TrainingResultSaveRequestSchema.parse(raw);\n return parseAndVerifyTrainingResultSave(await request(`/v1/training/jobs/${encodeURIComponent(id)}/model`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { jobId: id, request: body });\n } };\n}\n","import { ManagedServingUsageReviewResultSchema, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nexport { TrainingServingPoolSchema, MODEL_SERVING_IDLE_TIMEOUT_SECONDS } from \"./model-serving-pool.js\";\nimport { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { TrainingModelServingControlSchema } from \"./training-model-serving-control.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Timestamp = z.string().datetime({ offset: true });\nexport const TrainingModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const TrainingServingVersionSchema = z.lazy(() => TrainingModelVersionSchema);\nexport const TrainingServingRegistrySchema = z.object({\n artifact: ModelProjectImmutableRefSchema, baseProfileId: Id, state: Id, qualified: z.boolean(), revoked: z.boolean(), deleted: z.boolean(),\n reason: z.enum([\"qualified\", \"evaluation_pending\", \"post_training_pending\", \"evaluation_failed\", \"candidate_rejected\", \"artifact_revoked\", \"artifact_deleted\", \"runtime_unavailable\"]),\n source: z.object({ jobId: Id, artifact: ModelProjectImmutableRefSchema, checkpointId: Id }).strict(),\n}).strict();\nexport const TrainingServingDeploymentSchema = z.object({\n id: Id, artifactId: Id, poolId: Id.nullable(), revision: z.number().int().positive(),\n state: z.enum([\"requested\", \"deploying\", \"ready\", \"degraded\", \"deleting\", \"deleted\", \"failed\"]),\n revoked: z.boolean(), lastReadyCheckAt: Timestamp.nullable(), updatedAt: Timestamp,\n}).strict();\nexport const TrainingServingBindingSchema = z.object({ id: Id, modelId: Id, artifactId: Id, deploymentId: Id, revision: z.number().int().positive() }).strict();\nexport const TrainingServingLoadEvidenceSchema = z.object({\n requestId: Id, receipt: ModelProjectImmutableRefSchema, artifact: ModelProjectImmutableRefSchema,\n deploymentId: Id, poolId: Id, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/), completedAt: Timestamp,\n}).strict();\nexport const TrainingModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServing.v1\"), teamId: Id, modelProjectId: Id, observedAt: Timestamp,\n version: TrainingServingVersionSchema, registry: TrainingServingRegistrySchema.nullable(),\n control: TrainingModelServingControlSchema.nullable(),\n cleanup: z.array(TrainingModelServingControlSchema).max(100),\n deployments: z.array(TrainingServingDeploymentSchema).max(100), pools: z.array(TrainingServingPoolSchema).max(100),\n bindings: z.array(TrainingServingBindingSchema).max(100), lastVerifiedInference: TrainingServingLoadEvidenceSchema.nullable(),\n state: z.enum([\"unpublished\", \"qualification_pending\", \"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const TrainingModelServingSchema = TrainingModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingModelServing = z.infer<typeof TrainingModelServingSchema>;\n\n/** Active means a routable, eligible deployment. Worker residency and provider\n * scale-to-zero are separate observations; a past inference is historical. */\nexport function trainingModelServingState(value: Pick<TrainingModelServing, \"registry\" | \"deployments\" | \"pools\" | \"bindings\" | \"control\">): TrainingModelServing[\"state\"] {\n if (value.control?.desiredState === \"stopped\") return value.control.phase === \"stopping\" ? \"retiring\" : value.bindings.length ? \"unavailable\" : \"inactive\";\n if (value.control?.phase === \"failed\") return \"unavailable\";\n if (!value.registry) return \"unpublished\";\n if (!value.registry.qualified) return [\"evaluation_pending\", \"post_training_pending\"].includes(value.registry.reason) ? \"qualification_pending\" : \"unavailable\";\n const pools = new Map(value.pools.map(pool => [pool.id, pool]));\n if (value.bindings.some(binding => value.deployments.some(deployment => deployment.id === binding.deploymentId\n && deployment.state === \"ready\" && !deployment.revoked && deployment.poolId\n && pools.get(deployment.poolId)?.state === \"ready\" && pools.get(deployment.poolId)?.endpointRecorded))) return \"active\";\n if (value.control?.desiredState === \"active\" && value.control.phase === \"starting\") return \"starting\";\n if (value.deployments.some(deployment => [\"requested\", \"deploying\"].includes(deployment.state)\n || deployment.poolId && [\"requested\", \"provisioning\"].includes(pools.get(deployment.poolId)?.state ?? \"\"))) return \"starting\";\n if (value.deployments.some(deployment => deployment.state === \"deleting\") || value.pools.some(pool => pool.state === \"deleting\")) return \"retiring\";\n return value.bindings.length ? \"unavailable\" : \"inactive\";\n}\n\nexport async function parseAndVerifyTrainingModelServing(raw: unknown, expected: { modelProjectId: string; teamId: string; versionHash: string }) {\n const value = TrainingModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"training\" }, value.control);\n await parseAndVerifyTrainingModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"training_model_serving_mismatch\", \"Serving evidence differs from the exact saved Model, registry or deployment.\"); }\n if (value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId || value.version.contentHash !== expected.versionHash\n || contentHash !== await canonicalSha256(content) || value.state !== trainingModelServingState(value)) fail();\n for (const rows of [value.deployments, value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n const registry = value.registry;\n const control = value.control;\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row =>\n row.teamId !== expected.teamId || row.modelProjectId !== expected.modelProjectId || row.desiredState !== \"stopped\")) fail();\n if (control && (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId\n || control.versionHash !== value.version.contentHash && !(control.desiredState === \"stopped\" && control.phase === \"stopped\")\n || control.desiredState === \"active\" && registry && (control.artifact.id !== registry.artifact.id || control.artifact.contentHash !== registry.artifact.contentHash))) fail();\n if (!registry) { if (value.deployments.length || value.pools.length || value.bindings.length || value.lastVerifiedInference) fail(); return value; }\n if (registry.source.jobId !== value.version.jobId || registry.source.checkpointId !== value.version.candidate.checkpointId\n || registry.source.artifact.id !== value.version.candidate.artifact.id || registry.source.artifact.contentHash !== value.version.candidate.artifact.contentHash\n || registry.qualified !== (registry.reason === \"qualified\")\n || registry.qualified && (registry.state !== \"promotable\" || registry.revoked || registry.deleted)) fail();\n const deployments = new Map(value.deployments.map(row => [row.id, row]));\n const pools = new Map(value.pools.map(row => [row.id, row]));\n if (value.deployments.some(row => row.artifactId !== registry.artifact.id || row.poolId && !pools.has(row.poolId))\n || value.bindings.some(row => row.artifactId !== registry.artifact.id || !deployments.has(row.deploymentId))\n || value.pools.some(pool => pool.workersMin > pool.workersMax || !value.deployments.some(row => row.poolId === pool.id))) fail();\n const evidence = value.lastVerifiedInference;\n if (evidence && (evidence.artifact.id !== registry.artifact.id || evidence.artifact.contentHash !== registry.artifact.contentHash\n || deployments.get(evidence.deploymentId)?.poolId !== evidence.poolId\n || pools.get(evidence.poolId)?.workerImageDigest !== evidence.workerImageDigest || evidence.receipt.id !== evidence.requestId)) fail();\n return value;\n}\n\nexport function createTrainingModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async modelServing(modelProjectId: string, raw: z.infer<typeof TrainingModelServingQuerySchema>) {\n const id = Id.parse(modelProjectId), query = TrainingModelServingQuerySchema.parse(raw);\n return parseAndVerifyTrainingModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`), { modelProjectId: id, ...query });\n } };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, managedServingUsageApprovalMatches } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, artifact: ModelProjectImmutableRefSchema,\n actorId: Id, operationId: Id, revision: z.number().int().positive(),\n desiredState: z.enum([\"active\", \"stopped\"]), phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, deploymentId: Id, poolId: Id, idleTimeoutSeconds: z.number().int().min(60).max(3600),\n failureCode: Id.nullable(), updatedAt: z.string().datetime({ offset: true }),\n}).strict();\nexport type TrainingModelServingControl = z.infer<typeof TrainingModelServingControlSchema>;\nexport const TrainingModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServingControlRequest.v1\"), teamId: Id, operationId: Id,\n artifact: ModelProjectImmutableRefSchema,\n versionHash: Hash, expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type TrainingModelServingControlRequest = z.infer<typeof TrainingModelServingControlRequestSchema>;\nexport const TrainingModelServingControlIntentSchema = TrainingModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const TrainingModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: TrainingModelServingControlRequestSchema }).strict();\nexport const TrainingModelServingControlReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id,\n actorId: Id, request: TrainingModelServingControlRequestSchema, control: TrainingModelServingControlSchema, contentHash: Hash,\n}).strict();\nexport type TrainingModelServingControlReceipt = z.infer<typeof TrainingModelServingControlReceiptSchema>;\n\nexport async function parseAndVerifyTrainingModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: TrainingModelServingControlRequest; actorId?: string;\n}) {\n const value = TrainingModelServingControlReceiptSchema.parse(raw), request = TrainingModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || await canonicalSha256(value.request) !== await canonicalSha256(request)\n || value.modelProjectId !== expected.modelProjectId || value.teamId !== request.teamId\n || expected.actorId && value.actorId !== expected.actorId || control.actorId !== value.actorId\n || control.teamId !== request.teamId || control.modelProjectId !== value.modelProjectId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash\n || control.artifact.id !== request.artifact.id || control.artifact.contentHash !== request.artifact.contentHash\n || control.modelId !== `personalized:model:${expected.modelProjectId}`\n || control.revision !== request.expectedRevision + 1 || control.idleTimeoutSeconds !== request.idleTimeoutSeconds\n || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"training_model_serving_control_mismatch\", \"The serving command differs from its reviewed Model, version or action.\");\n return value;\n}\n\nexport function createTrainingModelServingControlClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async controlModelServing(modelProjectId: string, raw: TrainingModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = TrainingModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyTrainingModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { modelProjectId: id, request: body });\n } };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { EngramModelServingSchema, parseAndVerifyEngramModelServing } from \"./engram-model-serving.js\";\nimport { DecisionModelServingSchema, parseAndVerifyDecisionModelServing } from \"./decision-model-serving.js\";\nimport { AlphaEditModelServingSchema, parseAndVerifyAlphaEditModelServing } from \"./alphaedit-model-serving.js\";\nimport { NeuronTrainingModelServingSchema, parseAndVerifyNeuronTrainingModelServing } from \"./neuron-training-model-serving.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { SteeringModelVersionSchema, parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { TrainingModelServingSchema, TrainingModelServingQuerySchema, TrainingServingPoolSchema,\n parseAndVerifyTrainingModelServing } from \"./training-model-serving.js\";\nimport { SteeringPublicationReferenceSchema, type SteeringPublicationReference } from \"./steering-model-selection.js\";\nimport { SteeringInferenceReceiptSchema, parseAndVerifyResolvedSteeringSelection } from \"./steering-inference.js\";\nexport * from \"./steering-model-selection.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nconst Timestamp = z.iso.datetime();\n\nexport const SteeringModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type SteeringModelServingControlRequest = z.infer<typeof SteeringModelServingControlRequestSchema>;\nexport const SteeringModelServingControlIntentSchema = SteeringModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const SteeringModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: SteeringModelServingControlRequestSchema }).strict();\n\nexport const SteeringModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: Timestamp,\n}).strict();\nexport type SteeringModelServingControl = z.infer<typeof SteeringModelServingControlSchema>;\n\nexport const SteeringServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: Id, poolId: Id, versionHash: Hash,\n}).strict();\nexport const SteeringServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"calibration_unavailable\", \"profile_archived\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const SteeringModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: Timestamp, version: SteeringModelVersionSchema,\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n availability: SteeringServingAvailabilitySchema,\n control: SteeringModelServingControlSchema.nullable(), cleanup: z.array(SteeringModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(SteeringServingBindingSchema).max(100),\n lastVerifiedInference: SteeringInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const SteeringModelServingSchema = SteeringModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringModelServing = z.infer<typeof SteeringModelServingSchema>;\nexport const SavedModelServingSchema = z.discriminatedUnion(\"schemaVersion\", [TrainingModelServingSchema, SteeringModelServingSchema, EngramModelServingSchema, DecisionModelServingSchema, AlphaEditModelServingSchema, NeuronTrainingModelServingSchema]);\nexport type SavedModelServing = z.infer<typeof SavedModelServingSchema>;\nexport const SavedModelServingQuerySchema = TrainingModelServingQuerySchema;\n\nexport const SteeringModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringModelServingControlReceipt.v1\"),\n teamId: Id, modelProjectId: Id, actorId: Id,\n request: SteeringModelServingControlRequestSchema, version: SteeringModelVersionSchema,\n control: SteeringModelServingControlSchema,\n}).strict();\nexport const SteeringModelServingControlReceiptSchema = SteeringModelServingControlReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringModelServingControlReceipt = z.infer<typeof SteeringModelServingControlReceiptSchema>;\n\nfunction sameRef(a: SteeringPublicationReference | null, b: SteeringPublicationReference | null) { return canonicalJson(a) === canonicalJson(b); }\nfunction publicationRef(version: z.infer<typeof SteeringModelVersionSchema>): SteeringPublicationReference {\n const { id, revision, contentHash } = version.publication;\n return { id, revision, contentHash };\n}\nfunction validControl(value: SteeringModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n\nexport function steeringModelServingState(value: Pick<SteeringModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): SteeringModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\n\nexport async function parseAndVerifySteeringModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: SteeringModelServingControlRequest; actorId?: string;\n}) {\n const value = SteeringModelServingControlReceiptSchema.parse(raw), request = SteeringModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifySavedModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || request.defaultPublication !== null && !sameRef(request.defaultPublication, publicationRef(value.version))\n || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || !sameRef(control.defaultPublication, request.defaultPublication)\n || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\") || !validControl(control)\n || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"steering_serving_control_mismatch\", \"The serving receipt differs from the exact saved steering Model, default or original command.\");\n return value;\n}\n\nexport async function parseAndVerifySteeringModelServing(raw: unknown, expected: { teamId: string; modelProjectId: string; versionHash: string }) {\n const value = SteeringModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"steering\" }, value.control);\n await parseAndVerifySavedModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"steering_model_serving_mismatch\", \"The serving evidence differs from the exact saved steering Model or retained capacity.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.defaultPublication !== null && !sameRef(value.defaultPublication, publicationRef(value.version))\n || value.state !== steeringModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])]) {\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n }\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && (control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")\n || control.versionHash === expected.versionHash && !sameRef(control.defaultPublication, value.defaultPublication))) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding && !value.bindings.some(row => row.id === control.binding!.id && row.revision === control.binding!.revision\n && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const { contentHash: hash, ...receipt } = inference;\n await parseAndVerifyResolvedSteeringSelection(inference.selection, {\n ...(inference.selection.savedModel === null ? {} : { savedModel: inference.selection.savedModel }),\n ...(inference.selection.requested === \"inherit\" ? {} : { steering: inference.selection.requested === \"off\" ? null : inference.selection.effectivePublication }),\n });\n const knownPublication = publicationRef(value.version), profile = value.version.publication.profile;\n const calibration = profile.normalization.mode === \"fixed_residual_reference\" ? profile.normalization.calibration : null;\n if (inference.selection.defaultPublication !== null && !sameRef(inference.selection.defaultPublication, knownPublication)\n || sameRef(inference.selection.effectivePublication, knownPublication) && (inference.selection.profileHash !== profile.contentHash\n || canonicalJson(inference.selection.calibration) !== canonicalJson(calibration))) fail();\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId || inference.selection.savedModel?.modelProjectId !== expected.modelProjectId\n || inference.selection.savedModel.versionHash !== expected.versionHash\n || inference.selection.modelHash !== await canonicalSha256(value.version.publication.profile.model)\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\n\nexport async function parseAndVerifySavedModelServing(raw: unknown, expected: { teamId: string; modelProjectId: string; versionHash: string }): Promise<SavedModelServing> {\n const value = SavedModelServingSchema.parse(raw);\n if (value.schemaVersion === \"openpond.alphaEditModelServing.v1\") return parseAndVerifyAlphaEditModelServing(value, expected);\n if (value.schemaVersion === \"openpond.neuronTrainingModelServing.v1\") return parseAndVerifyNeuronTrainingModelServing(value, expected);\n return value.schemaVersion === \"openpond.trainingModelServing.v1\"\n ? parseAndVerifyTrainingModelServing(value, expected) : value.schemaVersion === \"openpond.engramModelServing.v1\"\n ? parseAndVerifyEngramModelServing(value, expected) : value.schemaVersion === \"openpond.decisionModelServing.v1\"\n ? parseAndVerifyDecisionModelServing(value, expected) : parseAndVerifySteeringModelServing(value, expected);\n}\n\nexport function createSavedModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async savedModelServing(modelProjectId: string, raw: z.infer<typeof SavedModelServingQuerySchema>) {\n const id = Id.parse(modelProjectId), query = SavedModelServingQuerySchema.parse(raw);\n return parseAndVerifySavedModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`), { modelProjectId: id, ...query });\n },\n async controlSteeringModelServing(modelProjectId: string, raw: SteeringModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = SteeringModelServingControlRequestSchema.parse(raw);\n return parseAndVerifySteeringModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { modelProjectId: id, request: body });\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { SavedSteeringModelSelectionSchema, SteeringPublicationReferenceSchema,\n type SavedSteeringModelSelection } from \"./steering-model-selection.js\";\nimport { SteeringModelVersionSchema, parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { NeuronSteeringReferenceSchema } from \"./neuron-steering.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\n\n/** Absence inherits the admitted default; null explicitly disables steering.\n * Never normalize either case into the other before hashing a request. */\nexport const SteeringInferenceOptionsSchema = z.object({\n savedModel: SavedSteeringModelSelectionSchema.optional(),\n steering: SteeringPublicationReferenceSchema.nullable().optional(),\n}).strict();\nexport type SteeringInferenceOptions = z.infer<typeof SteeringInferenceOptionsSchema>;\n\nexport async function savedSteeringModelSelection(raw: unknown): Promise<SavedSteeringModelSelection> {\n const version = SteeringModelVersionSchema.parse(raw);\n await parseAndVerifySavedModelVersion(version);\n return { modelProjectId: version.modelProjectId, versionHash: version.contentHash };\n}\n\nexport const ResolvedSteeringSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedSteeringSelection.v1\"),\n requested: z.enum([\"inherit\", \"off\", \"override\"]),\n savedModel: SavedSteeringModelSelectionSchema.nullable(),\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n effectivePublication: SteeringPublicationReferenceSchema.nullable(),\n profileHash: Hash.nullable(), modelHash: Hash,\n calibration: NeuronSteeringReferenceSchema.nullable(),\n}).strict();\nexport type ResolvedSteeringSelection = z.infer<typeof ResolvedSteeringSelectionSchema>;\n\nexport async function parseAndVerifyResolvedSteeringSelection(raw: unknown, options: SteeringInferenceOptions) {\n const value = ResolvedSteeringSelectionSchema.parse(raw), request = SteeringInferenceOptionsSchema.parse(options);\n const mode = request.steering === undefined ? \"inherit\" : request.steering === null ? \"off\" : \"override\";\n const effective = mode === \"inherit\" ? value.defaultPublication : request.steering ?? null;\n if (value.requested !== mode || request.savedModel && canonicalJson(value.savedModel) !== canonicalJson(request.savedModel)\n || canonicalJson(value.effectivePublication) !== canonicalJson(effective)\n || (value.effectivePublication === null) !== (value.profileHash === null)\n || value.effectivePublication === null && value.calibration !== null)\n throw new OpenPondProtocolError(\"steering_selection_mismatch\", \"The admitted steering selection differs from the exact request and default.\");\n return value;\n}\n\n/** A completed runner observation, separate from admission. Hosts must require\n * their authenticated worker proof before constructing this receipt. */\nexport const SteeringInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedSteeringSelectionSchema,\n poolId: Id, routingBinding: z.object({ id: Id, revision: z.number().int().positive() }).strict().nullable(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash,\n completedAt: z.iso.datetime(),\n}).strict();\nexport const SteeringInferenceReceiptSchema = SteeringInferenceReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringInferenceReceipt = z.infer<typeof SteeringInferenceReceiptSchema>;\n\nexport async function parseAndVerifySteeringInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; options: SteeringInferenceOptions;\n selection: ResolvedSteeringSelection; runtimeHash: string;\n poolId: string; routingBinding: { id: string; revision: number } | null;\n workerImageDigest: string; engineGeneration: number; cacheNamespace: string;\n}) {\n const value = SteeringInferenceReceiptSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyResolvedSteeringSelection(value.selection, expected.options);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.requestId !== expected.requestId\n || value.requestHash !== expected.requestHash || canonicalJson(value.selection) !== canonicalJson(expected.selection)\n || value.poolId !== expected.poolId || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"steering_inference_receipt_mismatch\", \"The completed inference differs from its admitted steering, runtime or cache identity.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { ActivationReferencePromptSchema } from \"./activation-reference.js\";\nimport { NeuronSteeringModelSchema, NeuronResidualCalibrationSchema,\n parseAndVerifyNeuronResidualCalibration } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** One unsteered forward over an explicit tokenized source. No result scales\n * or profile publication evidence are accepted as a calibration source. */\nexport const NeuronResidualCalibrationRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibrationRequest.v1\"),\n id: Id, revision: z.number().int().positive(), model: NeuronSteeringModelSchema,\n prompt: ActivationReferencePromptSchema,\n layers: z.array(z.number().int().nonnegative().max(511)).min(1).max(512),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000),\n maximumDurationSeconds: z.number().finite().positive().max(300),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.layers).size !== value.layers.length || value.layers.some(layer => layer >= value.model.intermediateSizes.length))\n ctx.addIssue({ code: \"custom\", path: [\"layers\"], message: \"Use unique layers inside the exact model.\" });\n if (value.prompt.attentionMask.filter(Boolean).length < 2)\n ctx.addIssue({ code: \"custom\", path: [\"prompt\"], message: \"Calibration requires a visible token after position zero.\" });\n if (value.prompt.tokenIds.length > value.maximumForwardTokenWork)\n ctx.addIssue({ code: \"custom\", path: [\"maximumForwardTokenWork\"], message: \"The complete unsteered forward exceeds its declared budget.\" });\n});\nexport type NeuronResidualCalibrationRequest = z.infer<typeof NeuronResidualCalibrationRequestSchema>;\n\nexport const NeuronResidualCalibrationExportContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibrationExport.v1\"),\n model: NeuronSteeringModelSchema, prompt: ActivationReferencePromptSchema,\n calibration: NeuronResidualCalibrationSchema,\n runtime: z.object({ implementation: z.literal(\"torch_dense_serial_calibration_v1\"), implementationHash: Hash,\n torchVersion: Id, device: Id }).strict(),\n}).strict();\nexport const NeuronResidualCalibrationExportSchema = NeuronResidualCalibrationExportContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronResidualCalibrationExport = z.infer<typeof NeuronResidualCalibrationExportSchema>;\n\nexport async function parseAndVerifyNeuronResidualCalibrationExport(raw: unknown, expected?: NeuronResidualCalibrationRequest) {\n const value = NeuronResidualCalibrationExportSchema.parse(raw), { contentHash, ...content } = value;\n const calibration = await parseAndVerifyNeuronResidualCalibration(value.calibration, value.model);\n const sourceHash = await canonicalSha256(value.prompt), samples = value.prompt.attentionMask.filter(Boolean).length - 1;\n let mismatch = contentHash !== await canonicalSha256(content) || samples <= 0\n || calibration.source.id !== value.prompt.id || calibration.source.contentHash !== sourceHash\n || calibration.layers.some(layer => layer.sampleCount !== samples);\n if (expected) {\n const request = NeuronResidualCalibrationRequestSchema.parse(expected);\n mismatch ||= canonicalJson(value.model) !== canonicalJson(request.model) || canonicalJson(value.prompt) !== canonicalJson(request.prompt)\n || calibration.id !== request.id || calibration.revision !== request.revision\n || canonicalJson(calibration.layers.map(row => row.layer).sort((a, b) => a - b)) !== canonicalJson([...request.layers].sort((a, b) => a - b));\n }\n if (mismatch) throw new OpenPondProtocolError(\"neuron_calibration_export_mismatch\", \"The original residual calibration differs from its exact measured model, tokenized source or layers.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronResidualCalibrationExportSchema, parseAndVerifyNeuronResidualCalibrationExport } from \"./neuron-residual-calibration.js\";\nimport { NeuronSteeringReferenceSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Name = z.string().trim().min(1).max(200);\nconst Timestamp = z.iso.datetime();\n\n/** Custody proves the retained original bytes and scope. Qualification is a\n * separate runtime authority decision, never granted by importing an export. */\nexport const NeuronCalibrationRecordContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationRecord.v1\"),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: Name,\n artifact: NeuronResidualCalibrationExportSchema,\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: Timestamp, updatedAt: Timestamp,\n}).strict();\nexport const NeuronCalibrationRecordSchema = NeuronCalibrationRecordContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationRecord = z.infer<typeof NeuronCalibrationRecordSchema>;\nexport const NeuronCalibrationImportRequestSchema = z.object({\n teamId: Id, operationId: Id, projectId: Id.nullable(), name: Name,\n artifact: NeuronResidualCalibrationExportSchema,\n}).strict();\nexport type NeuronCalibrationImportRequest = z.infer<typeof NeuronCalibrationImportRequestSchema>;\nexport const NeuronCalibrationReadQuerySchema = z.object({ teamId: Id }).strict();\nexport const NeuronCalibrationArchiveRequestSchema = z.object({\n teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(), contentHash: Hash,\n}).strict();\nexport type NeuronCalibrationArchiveRequest = z.infer<typeof NeuronCalibrationArchiveRequestSchema>;\nexport const NeuronCalibrationReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, record: NeuronCalibrationRecordSchema,\n}).strict();\nexport const NeuronCalibrationReceiptSchema = NeuronCalibrationReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationReceipt = z.infer<typeof NeuronCalibrationReceiptSchema>;\n\nexport const NeuronCalibrationListQuerySchema = z.object({\n projectId: Id.optional(), modelHash: Hash.optional(), archived: z.boolean().default(false),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport const NeuronCalibrationSummarySchema = z.object({\n reference: NeuronSteeringReferenceSchema, teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: Name,\n exportHash: Hash, modelHash: Hash, source: z.object({ id: Id, contentHash: Hash }).strict(),\n implementationHash: Hash, layerCount: z.number().int().min(1).max(512),\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: Timestamp, updatedAt: Timestamp,\n}).strict();\nexport const NeuronCalibrationPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationPage.v1\"), teamId: Id, ownerUserId: Id,\n query: NeuronCalibrationListQuerySchema, items: z.array(NeuronCalibrationSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const NeuronCalibrationPageSchema = NeuronCalibrationPageContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationPage = z.infer<typeof NeuronCalibrationPageSchema>;\n\nexport async function parseAndVerifyNeuronCalibrationRecord(raw: unknown, expected: { teamId?: string; ownerUserId?: string; id?: string } = {}) {\n const value = NeuronCalibrationRecordSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyNeuronResidualCalibrationExport(value.artifact);\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId\n || expected.ownerUserId && value.ownerUserId !== expected.ownerUserId || expected.id && value.artifact.calibration.id !== expected.id)\n throw new OpenPondProtocolError(\"neuron_calibration_record_mismatch\", \"The original calibration record differs from its artifact or authorized workspace.\");\n return value;\n}\n\nexport async function parseAndVerifyNeuronCalibrationReceipt(raw: unknown, request: NeuronCalibrationImportRequest | NeuronCalibrationArchiveRequest, id?: string) {\n const value = NeuronCalibrationReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const importing = \"artifact\" in request;\n const parsed = importing ? NeuronCalibrationImportRequestSchema.parse(request) : NeuronCalibrationArchiveRequestSchema.parse(request);\n await parseAndVerifyNeuronCalibrationRecord(value.record, { teamId: parsed.teamId, ownerUserId: value.actorId, id });\n if (contentHash !== await canonicalSha256(content) || value.teamId !== parsed.teamId || value.operationId !== parsed.operationId\n || value.requestHash !== await canonicalSha256(importing ? parsed : { id, request: parsed }))\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"Retry the original calibration custody command.\");\n if (\"artifact\" in parsed) {\n if (canonicalJson(value.record.artifact) !== canonicalJson(parsed.artifact) || value.record.projectId !== parsed.projectId\n || value.record.name !== parsed.name || value.record.archived || value.record.revision !== 1)\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"The imported record differs from the original measured export.\");\n } else if (!value.record.archived || value.record.revision !== parsed.expectedRevision + 1 || value.record.artifact.contentHash !== parsed.contentHash) {\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"The archive differs from the original artifact and record revision.\");\n }\n return value;\n}\n\nexport function createNeuronCalibrationClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async importNeuronCalibration(raw: NeuronCalibrationImportRequest) {\n const body = NeuronCalibrationImportRequestSchema.parse(raw);\n await parseAndVerifyNeuronResidualCalibrationExport(body.artifact);\n return parseAndVerifyNeuronCalibrationReceipt(await request(\"/v1/training/neuron-calibrations\", {\n method: \"POST\", body: JSON.stringify(body),\n }), body);\n },\n async getNeuronCalibration(teamId: string, id: string) {\n const scope = Id.parse(teamId), key = Id.parse(id);\n return parseAndVerifyNeuronCalibrationRecord(await request(`/v1/training/neuron-calibrations/${encodeURIComponent(key)}?${new URLSearchParams({ teamId: scope })}`), { teamId: scope, id: key });\n },\n async archiveNeuronCalibration(id: string, raw: NeuronCalibrationArchiveRequest) {\n const key = Id.parse(id), body = NeuronCalibrationArchiveRequestSchema.parse(raw);\n return parseAndVerifyNeuronCalibrationReceipt(await request(`/v1/training/neuron-calibrations/${encodeURIComponent(key)}/archive`, {\n method: \"POST\", body: JSON.stringify(body),\n }), body, key);\n },\n async listNeuronCalibrations(teamId: string, raw: z.input<typeof NeuronCalibrationListQuerySchema> = {}) {\n const scope = Id.parse(teamId), query = Object.fromEntries(Object.entries(NeuronCalibrationListQuerySchema.parse(raw)).filter(([, value]) => value !== undefined)) as z.infer<typeof NeuronCalibrationListQuerySchema>, params = new URLSearchParams({ teamId: scope });\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = NeuronCalibrationPageSchema.parse(await request(`/v1/training/neuron-calibrations?${params}`)), { contentHash, ...content } = page;\n if (page.teamId !== scope || canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content)\n || page.items.length > query.limit || new Set(page.items.map(row => row.reference.id)).size !== page.items.length\n || page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor))\n throw new OpenPondProtocolError(\"neuron_calibration_page_mismatch\", \"Refresh calibration history in its original workspace.\");\n for (const [index, row] of page.items.entries()) if (row.teamId !== scope || row.ownerUserId !== page.ownerUserId\n || row.archived !== query.archived || query.projectId && row.projectId !== query.projectId || query.modelHash && row.modelHash !== query.modelHash\n || index && page.items[index - 1]!.reference.id >= row.reference.id)\n throw new OpenPondProtocolError(\"neuron_calibration_page_mismatch\", \"Calibration history returned a different creator or source scope.\");\n return page;\n },\n };\n}\n","import { canonicalJson } from \"./protocol.js\";\nimport {\n parseAndVerifyActivationReferenceRequest,\n parseAndVerifyActivationReferenceResult,\n type ActivationReferenceRequest,\n type ActivationReferenceResult,\n} from \"./activation-reference.js\";\n\nexport type ActivationComparisonVariant = ActivationReferenceRequest[\"variants\"][number];\ntype Capture = ActivationReferenceResult[\"captures\"][number];\n\nconst difference = (candidate: number, reference: number) => {\n const value = candidate - reference;\n return Number.isFinite(value) ? value : null;\n};\n\n/** A dose difference is meaningful only when all other intervention inputs agree. */\nexport function activationDoseComparison(\n reference: ActivationComparisonVariant,\n candidate: ActivationComparisonVariant,\n) {\n const a = reference.profile,\n b = candidate.profile;\n const settings = (profile: NonNullable<ActivationComparisonVariant[\"profile\"]>) => {\n const { entries, contentHash: _, ...rest } = profile;\n return canonicalJson({\n ...rest,\n coordinates: entries.map(({ layer, neuron }) => `${layer}:${neuron}`).sort(),\n });\n };\n const reason =\n a && b && settings(a) !== settings(b)\n ? \"Dose differences unavailable: model, hook, normalization, token scope or targeted coordinates differ.\"\n : null;\n const coordinates = new Map<\n string,\n { layer: number; neuron: number; reference: number | null; candidate: number | null }\n >();\n for (const [profile, side] of [\n [a, \"reference\"],\n [b, \"candidate\"],\n ] as const) {\n for (const entry of profile?.entries ?? []) {\n const key = `${entry.layer}:${entry.neuron}`;\n const row = coordinates.get(key) ?? {\n layer: entry.layer,\n neuron: entry.neuron,\n reference: a === null ? 0 : null,\n candidate: b === null ? 0 : null,\n };\n row[side] = entry.dose;\n coordinates.set(key, row);\n }\n }\n return {\n reason,\n rows: [...coordinates.values()]\n .sort((x, y) => x.layer - y.layer || x.neuron - y.neuron)\n .map((row) => ({\n ...row,\n difference:\n !reason && row.reference !== null && row.candidate !== null\n ? difference(row.candidate, row.reference)\n : null,\n })),\n };\n}\n\n/** Both inputs are from the same SDK-verified request/result. Never align a\n * generated capture after its causal token prefix diverges, even if it rejoins. */\nexport function activationResultComparison(\n request: ActivationReferenceRequest,\n result: ActivationReferenceResult,\n referenceId: string,\n candidateId: string,\n promptId: string | null,\n) {\n const captureKey = (row: Pick<Capture, \"promptId\" | \"tokenIndex\" | \"layer\" | \"neuron\">) =>\n JSON.stringify([row.promptId, row.tokenIndex, row.layer, row.neuron]);\n const referenceCaptures = new Map<string, Capture>(),\n candidateCaptures = new Map<string, Capture>();\n for (const row of result.captures) {\n if (row.variantId === referenceId) referenceCaptures.set(captureKey(row), row);\n if (row.variantId === candidateId) candidateCaptures.set(captureKey(row), row);\n }\n const outcomes = new Map(\n result.outcomes.map((row) => [JSON.stringify([row.promptId, row.variantId]), row]),\n );\n const prompts = request.prompts.filter((row) => promptId === null || row.id === promptId);\n const pairs = prompts.map((prompt) => {\n const reference = outcomes.get(JSON.stringify([prompt.id, referenceId])),\n candidate = outcomes.get(JSON.stringify([prompt.id, candidateId]));\n const inputTokenIds = prompt.tokenIds.filter((_, index) => prompt.attentionMask[index] === 1);\n const a = reference ? inputTokenIds.concat(reference.generatedTokenIds) : [],\n b = candidate ? inputTokenIds.concat(candidate.generatedTokenIds) : [];\n let sharedPrefix = 0;\n while (sharedPrefix < Math.min(a.length, b.length) && a[sharedPrefix] === b[sharedPrefix])\n sharedPrefix++;\n const generatedPrefix = Math.max(0, sharedPrefix - inputTokenIds.length);\n const generatedStatus: \"missing_outcome\" | \"identical\" | \"different\" =\n !reference || !candidate\n ? \"missing_outcome\"\n : reference.generatedTokenIds.length === candidate.generatedTokenIds.length &&\n generatedPrefix === reference.generatedTokenIds.length\n ? \"identical\"\n : \"different\";\n return {\n prompt,\n reference,\n candidate,\n inputTokenIds,\n referenceTokenIds: a,\n candidateTokenIds: b,\n sharedPrefix,\n generatedStatus,\n generatedDifferencePosition: generatedStatus === \"different\" ? generatedPrefix : null,\n };\n });\n const captures = pairs.flatMap((pair) => {\n // Enumerate requested coordinates as well as retained captures so absence\n // cannot disappear from the comparison table.\n const length = Math.max(\n pair.referenceTokenIds.length,\n pair.candidateTokenIds.length,\n pair.inputTokenIds.length,\n );\n const rows = [];\n for (let tokenIndex = 0; tokenIndex < length; tokenIndex++)\n for (const coordinate of request.capture)\n for (const neuron of coordinate.neurons) {\n const key = captureKey({\n promptId: pair.prompt.id,\n tokenIndex,\n layer: coordinate.layer,\n neuron,\n });\n const reference = referenceCaptures.get(key),\n candidate = candidateCaptures.get(key);\n const status: ActivationCaptureAlignment =\n !reference || !candidate\n ? !reference && !candidate\n ? \"missing_both\"\n : !reference\n ? \"missing_reference\"\n : \"missing_candidate\"\n : tokenIndex >= pair.sharedPrefix\n ? \"incompatible_context\"\n : \"aligned\";\n rows.push({\n key,\n promptId: pair.prompt.id,\n tokenIndex,\n phase: tokenIndex < pair.inputTokenIds.length ? \"Prompt\" : \"Generated\",\n layer: coordinate.layer,\n neuron,\n reference,\n candidate,\n status,\n difference:\n status === \"aligned\" ? difference(candidate!.after, reference!.after) : null,\n });\n }\n return rows;\n });\n return { pairs, captures, aligned: captures.filter((row) => row.status === \"aligned\").length };\n}\n\n/** Headless entry point for untrusted retained bytes. Console uses the pure\n * projection after its existing execution client has already verified them. */\nexport async function verifyAndCompareActivationReferenceResult(\n request: ActivationReferenceRequest,\n raw: unknown,\n referenceId: string,\n candidateId: string,\n promptId: string | null = null,\n) {\n const input = await parseAndVerifyActivationReferenceRequest(request);\n const result = await parseAndVerifyActivationReferenceResult(raw, input);\n return activationResultComparison(input, result, referenceId, candidateId, promptId);\n}\n\nexport type ActivationCaptureAlignment =\n | \"aligned\"\n | \"incompatible_context\"\n | \"missing_reference\"\n | \"missing_candidate\"\n | \"missing_both\";\nexport type ActivationResultComparison = ReturnType<typeof activationResultComparison>;\nexport type ActivationDoseComparison = ReturnType<typeof activationDoseComparison>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ActivationReferenceRequestSchema, ActivationReferenceResultSchema, parseAndVerifyActivationReferenceRequest, parseAndVerifyActivationReferenceResult } from \"./activation-reference.js\";\nimport { ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const MODIFICATION_RECORDING_MAX_BYTES = 8_388_608;\nexport const ModificationRecordingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modificationRecordingRequest.v1\"), teamId: Id, operationId: Id,\n name: z.string().trim().min(1).max(500), projectId: Id.nullable(), method: ModelModificationMethodSchema,\n request: ActivationReferenceRequestSchema, result: ActivationReferenceResultSchema,\n}).strict();\nexport type ModificationRecordingRequest = z.infer<typeof ModificationRecordingRequestSchema>;\nexport const ModificationRecordingContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modificationRecording.v1\"), id: Id, teamId: Id, actorId: Id, operationId: Id,\n commandHash: Hash, name: z.string().trim().min(1).max(500), projectId: Id.nullable(), method: ModelModificationMethodSchema,\n accountScopeHash: Hash,\n custody: z.literal(\"local\"), provenance: z.literal(\"external_observation\"), measurementAttestation: z.literal(\"unattested\"),\n model: ActivationReferenceRequestSchema.shape.model, inputHash: Hash, resultHash: Hash,\n artifact: z.object({ contentHash: Hash, sizeBytes: z.number().int().positive().max(MODIFICATION_RECORDING_MAX_BYTES) }).strict(),\n counts: z.object({ prompts: z.number().int().positive().max(8), variants: z.number().int().positive().max(17),\n outcomes: z.number().int().positive().max(136), captures: z.number().int().nonnegative().max(32_768) }).strict(),\n createdAt: z.iso.datetime(),\n}).strict();\nexport const ModificationRecordingSchema = ModificationRecordingContentSchema.extend({ contentHash: Hash }).strict();\nexport type ModificationRecording = z.infer<typeof ModificationRecordingSchema>;\nexport const ModificationRecordingDocumentSchema = z.object({ request: ActivationReferenceRequestSchema, result: ActivationReferenceResultSchema }).strict();\nexport const ModificationRecordingReadSchema = z.object({ recording: ModificationRecordingSchema, document: ModificationRecordingDocumentSchema }).strict();\nexport const ModificationRecordingReadQuerySchema = z.object({ teamId: Id }).strict();\nexport const ModificationRecordingListQuerySchema = z.object({ teamId: Id, projectId: Id.optional(),\n search: z.string().trim().max(1000).optional(), cursor: z.string().min(1).max(2000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport type ModificationRecordingListQuery = z.input<typeof ModificationRecordingListQuerySchema>;\nexport const ModificationRecordingPageSchema = z.object({ teamId: Id, actorId: Id, accountScopeHash: Hash, projectId: Id.nullable(),\n items: z.array(ModificationRecordingSchema).max(100), nextCursor: z.string().min(1).max(2000).nullable() }).strict();\n\nexport async function verifyModificationRecordingRequest(raw: unknown) {\n const value = ModificationRecordingRequestSchema.parse(raw);\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > MODIFICATION_RECORDING_MAX_BYTES)\n throw new OpenPondProtocolError(\"modification_recording_too_large\", \"The recording exceeds 8 MiB.\");\n const request = await parseAndVerifyActivationReferenceRequest(value.request);\n await parseAndVerifyActivationReferenceResult(value.result, request);\n const profiles = request.variants.filter(row => row.profile !== null).length;\n if (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length)\n throw new OpenPondProtocolError(\"modification_recording_method_mismatch\", \"Inspection must be unsteered; a steering comparison needs an explicit Off baseline and intervention.\");\n return value;\n}\nexport async function verifyModificationRecording(raw: unknown, teamId?: string, actorId?: string) {\n const value = ModificationRecordingSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || teamId !== undefined && value.teamId !== teamId || actorId !== undefined && value.actorId !== actorId\n || value.id !== `observation-${await canonicalSha256({ scope: value.accountScopeHash, operationId: value.operationId })}`\n || value.counts.outcomes !== value.counts.prompts * value.counts.variants)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The retained recording differs from its owner or immutable metadata.\");\n return value;\n}\nexport async function verifyModificationRecordingRead(raw: unknown, teamId?: string, actorId?: string) {\n const value = ModificationRecordingReadSchema.parse(raw), recording = await verifyModificationRecording(value.recording, teamId, actorId);\n const command = await verifyModificationRecordingRequest({ schemaVersion: \"openpond.modificationRecordingRequest.v1\", teamId: recording.teamId,\n operationId: recording.operationId, name: recording.name, projectId: recording.projectId, method: recording.method, ...value.document });\n const sizeBytes = new TextEncoder().encode(canonicalJson(value.document)).byteLength;\n if (recording.commandHash !== await canonicalSha256(command) || recording.artifact.contentHash !== await canonicalSha256(value.document)\n || recording.artifact.sizeBytes !== sizeBytes || recording.inputHash !== await canonicalSha256(value.document.request)\n || recording.resultHash !== value.document.result.contentHash || canonicalJson(recording.model) !== canonicalJson(command.request.model)\n || recording.counts.prompts !== command.request.prompts.length || recording.counts.variants !== command.request.variants.length\n || recording.counts.outcomes !== command.result.outcomes.length || recording.counts.captures !== command.result.captures.length)\n throw new OpenPondProtocolError(\"modification_recording_artifact_mismatch\", \"The retained observation differs from its request, output or capture inventory.\");\n return { ...value, recording };\n}\nexport function createModificationRecordingsClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n return {\n async recordModificationObservation(raw: ModificationRecordingRequest) {\n const command = await verifyModificationRecordingRequest(raw);\n const value = await verifyModificationRecording(await request(\"/v1/modification-recordings\", { method: \"POST\", body: canonicalJson(command) }), command.teamId);\n if (value.commandHash !== await canonicalSha256(command) || value.operationId !== command.operationId)\n throw new OpenPondProtocolError(\"modification_recording_request_mismatch\", \"The service retained another observation.\");\n return value;\n },\n async modificationRecording(id: string, query: { teamId: string }) {\n const identity = Id.parse(id), teamId = Id.parse(query.teamId);\n const value = await verifyModificationRecordingRead(await request(`/v1/modification-recordings/${encodeURIComponent(identity)}?${new URLSearchParams({ teamId })}`, undefined,\n MODIFICATION_RECORDING_MAX_BYTES + 65_536), teamId);\n if (value.recording.id !== identity) throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The service returned another recording.\");\n return value;\n },\n async modificationRecordings(raw: ModificationRecordingListQuery) {\n const query = ModificationRecordingListQuerySchema.parse(raw), params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = ModificationRecordingPageSchema.parse(await request(`/v1/modification-recordings?${params}`));\n if (page.teamId !== query.teamId || page.projectId !== (query.projectId ?? null) || page.items.length > query.limit\n || new Set(page.items.map(row => row.id)).size !== page.items.length || query.cursor && page.nextCursor === query.cursor)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The recording list returned another scope or page.\");\n for (const row of page.items) {\n await verifyModificationRecording(row, query.teamId, page.actorId);\n if (row.accountScopeHash !== page.accountScopeHash || query.projectId && row.projectId !== query.projectId)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The recording list returned another Project.\");\n }\n return page;\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst OpaqueIdentifier = z.string().min(1).max(191).regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]*$/);\n\n/** Hardware metadata never quotes stock, price, or permission to start work. */\nexport const TrainingHardwareSpecificationSchema = z.object({\n id: z.string().trim().min(1).max(256),\n name: z.string().trim().min(1).max(256),\n manufacturer: z.string().trim().min(1).max(100),\n memoryGb: z.number().int().positive(),\n secureCloud: z.boolean(),\n communityCloud: z.boolean(),\n maximumPerPod: z.object({\n secure: z.number().int().nonnegative(),\n community: z.number().int().nonnegative(),\n }).strict(),\n}).strict();\nexport type TrainingHardwareSpecification = z.infer<typeof TrainingHardwareSpecificationSchema>;\n\nexport const TrainingHardwareInventorySchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHardwareInventory.v1\"),\n provider: OpaqueIdentifier,\n source: OpaqueIdentifier,\n version: z.string().regex(/^[a-f0-9]{64}$/),\n observedAt: z.iso.datetime(),\n refreshAfter: z.iso.datetime(),\n hardware: z.array(TrainingHardwareSpecificationSchema).max(1000),\n}).strict();\nexport type TrainingHardwareInventory = z.infer<typeof TrainingHardwareInventorySchema>;\n\nexport const TrainingHardwareCatalogSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHardwareCatalog.v1\"),\n inventory: TrainingHardwareInventorySchema,\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n eligibility: z.array(z.object({\n gpuTypeId: z.string().min(1).max(256),\n status: z.enum([\"requires_live_workload_check\", \"not_admitted\"]),\n reason: z.enum([\"candidate_for_current_runtime\", \"gpu_type_not_enabled\", \"secure_pods_unavailable\", \"insufficient_memory\"]),\n }).strict()).max(1000),\n}).strict();\nexport type TrainingHardwareCatalog = z.infer<typeof TrainingHardwareCatalogSchema>;\n\nexport async function parseAndVerifyTrainingHardwareInventory(raw: unknown) {\n const inventory = TrainingHardwareInventorySchema.parse(raw);\n const { version, observedAt, refreshAfter, ...content } = inventory;\n if (version !== await canonicalSha256(content) ||\n Date.parse(refreshAfter) <= Date.parse(observedAt) ||\n new Set(inventory.hardware.map(item => item.id)).size !== inventory.hardware.length)\n throw new OpenPondProtocolError(\"training_hardware_inventory_mismatch\", \"Hardware metadata could not be verified.\");\n return inventory;\n}\n\nexport async function parseAndVerifyTrainingHardwareCatalog(raw: unknown) {\n const catalog = TrainingHardwareCatalogSchema.parse(raw);\n await parseAndVerifyTrainingHardwareInventory(catalog.inventory);\n const ids = new Set(catalog.inventory.hardware.map(item => item.id));\n if (catalog.eligibility.length !== ids.size ||\n new Set(catalog.eligibility.map(item => item.gpuTypeId)).size !== ids.size ||\n catalog.eligibility.some(item => !ids.has(item.gpuTypeId) ||\n (item.status === \"requires_live_workload_check\") !== (item.reason === \"candidate_for_current_runtime\")))\n throw new OpenPondProtocolError(\"training_hardware_catalog_mismatch\", \"Hardware eligibility does not match its inventory.\");\n return catalog;\n}\n\nexport function createTrainingHardwareCatalogClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async hardwareCatalog() {\n return parseAndVerifyTrainingHardwareCatalog(await request(\"/v1/training/hardware-catalog\"));\n },\n };\n}\n","import { z } from \"zod\";\nimport { ImmutableReleaseRefSchema, validateHarnessSourcePackage, validateHarnessPolicySourcePackage, type HarnessPolicySourcePackage, type HarnessSourcePackage, type ImmutableReleaseRef } from \"@openpond/harness\";\nimport { assertCanonicalPayloadSize, TRAINING_INPUT_ARTIFACT_MAX_BYTES } from \"./protocol.js\";\n\nexport const TrainingHarnessSourcePublicationSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHarnessSourcePublication.v1\"),\n harnessRelease: ImmutableReleaseRefSchema,\n sourcePackageHash: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().positive().max(TRAINING_INPUT_ARTIFACT_MAX_BYTES),\n}).strict();\n\n/** Publication stores immutable source only; it never starts training. */\nexport function createTrainingHarnessSourceClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n const route = (reference: ImmutableReleaseRef) => {\n const ref = ImmutableReleaseRefSchema.parse(reference);\n return `/v1/training/harness-sources/${encodeURIComponent(ref.id)}/${ref.contentHash}`;\n };\n return {\n async publishHarnessSource(value: HarnessSourcePackage | HarnessPolicySourcePackage) {\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n const source = validateSource(value);\n const portability = source.agentSnapshot.portability;\n if (!portability.portable || portability.blockers.length || portability.localOnlyAssetRefs.length || portability.hostPrivateAssetRefs.length || (source.schemaVersion === \"openpond.harnessSourcePackage.v1\" && source.harnessRelease.files.some(file => file.visibility !== \"policy\"))) {\n throw new Error(\"Hosted training Harness publication requires portable, policy-visible source.\");\n }\n const result = TrainingHarnessSourcePublicationSchema.parse(await request(route({ id: source.harnessRelease.id, contentHash: source.harnessRelease.contentHash }), { method: \"PUT\", body: JSON.stringify(source) }));\n if (result.harnessRelease.id !== source.harnessRelease.id || result.harnessRelease.contentHash !== source.harnessRelease.contentHash || result.sourcePackageHash !== source.contentHash) {\n throw new Error(\"Published Harness source differs from the selected immutable package.\");\n }\n return result;\n },\n async getHarnessSource(reference: ImmutableReleaseRef) {\n const value = await request(route(reference), undefined, TRAINING_INPUT_ARTIFACT_MAX_BYTES);\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n return validateSource(value, reference);\n },\n };\n}\n\nfunction validateSource(value: unknown, reference?: ImmutableReleaseRef) {\n return typeof value === \"object\" && value !== null\n && Reflect.get(value, \"schemaVersion\") === \"openpond.harnessPolicySourcePackage.v1\"\n ? validateHarnessPolicySourcePackage(value, reference)\n : validateHarnessSourcePackage(value, reference);\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** A reviewed candidate decision never activates serving or alters training evidence. */\nexport const TrainingCandidateDecisionRequestSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecisionRequest.v1\"),\n teamId: IdSchema,\n jobId: IdSchema,\n artifact: ModelProjectImmutableRefSchema,\n evaluation: ModelProjectImmutableRefSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n decision: z.enum([\"accepted\", \"rejected\"]),\n reason: z.string().trim().min(1).max(5_000),\n idempotencyKey: IdSchema,\n expectedDecision: ModelProjectImmutableRefSchema.nullable(),\n}).strict())();\n\n/** Append-only, authenticated hosted record. Hash verification is not a signature. */\nexport const TrainingCandidateDecisionSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecision.v1\"),\n id: IdSchema,\n request: TrainingCandidateDecisionRequestSchema,\n revision: z.number().int().positive(),\n actor: z.object({ userId: IdSchema, kind: z.enum([\"user\", \"api_key\", \"agent_delegate\"]), id: IdSchema }).strict(),\n decidedAt: z.string().datetime({ offset: true }),\n contentHash: HashSchema,\n}).strict().superRefine((value, context) => {\n if ((value.revision === 1) !== (value.request.expectedDecision === null)) {\n context.addIssue({ code: \"custom\", path: [\"revision\"], message: \"A first decision has no predecessor; later decisions must reference the prior decision.\" });\n }\n if (value.request.expectedDecision?.id === value.id) {\n context.addIssue({ code: \"custom\", path: [\"request\", \"expectedDecision\"], message: \"A decision cannot supersede itself.\" });\n }\n}))();\n\nexport type TrainingCandidateDecisionRequest = z.infer<typeof TrainingCandidateDecisionRequestSchema>;\nexport type TrainingCandidateDecision = z.infer<typeof TrainingCandidateDecisionSchema>;\nexport type TrainingCandidateDecisionTarget = Pick<TrainingCandidateDecisionRequest, \"teamId\" | \"jobId\" | \"artifact\">;\n\nexport async function trainingCandidateDecisionHash(\n value: Omit<TrainingCandidateDecision, \"contentHash\"> | TrainingCandidateDecision,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingCandidateDecision;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingCandidateDecision(\n value: unknown,\n expected: TrainingCandidateDecisionTarget & { request?: TrainingCandidateDecisionRequest },\n): Promise<TrainingCandidateDecision> {\n assertCanonicalPayloadSize(value, 32_768, \"Training candidate decision\");\n const parsed = TrainingCandidateDecisionSchema.parse(value);\n if (parsed.contentHash !== await trainingCandidateDecisionHash(parsed)) {\n throw new OpenPondProtocolError(\"content_hash_mismatch\", \"Training candidate decision content hash does not match.\");\n }\n if (parsed.request.teamId !== expected.teamId || parsed.request.jobId !== expected.jobId\n || parsed.request.artifact.id !== expected.artifact.id\n || parsed.request.artifact.contentHash !== expected.artifact.contentHash) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision belongs to a different team, Job or artifact.\");\n }\n if (expected.request && await canonicalSha256(parsed.request) !== await canonicalSha256(TrainingCandidateDecisionRequestSchema.parse(expected.request))) {\n throw new OpenPondProtocolError(\"candidate_decision_request_mismatch\", \"Training candidate decision does not match the submitted review.\");\n }\n return parsed;\n}\n\nexport function createTrainingCandidateDecisionClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n function route(target: TrainingCandidateDecisionTarget) {\n return `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(target.jobId))}/candidates/${encodeURIComponent(ModelProjectImmutableRefSchema.parse(target.artifact).id)}/decision`;\n }\n return {\n async candidateDecision(\n target: TrainingCandidateDecisionTarget,\n options: { decision?: { id: string; contentHash: string } } = {},\n ): Promise<TrainingCandidateDecision | null> {\n IdSchema.parse(target.teamId);\n const reference = options.decision ? ModelProjectImmutableRefSchema.parse(options.decision) : undefined;\n const query = reference ? `?decisionId=${encodeURIComponent(reference.id)}` : \"\";\n const response = z.object({ decision: z.unknown().nullable() }).strict().parse(await request(`${route(target)}${query}`));\n if (response.decision === null && !reference) return null;\n const decision = await parseAndVerifyTrainingCandidateDecision(response.decision, target);\n if (reference && (decision.id !== reference.id || decision.contentHash !== reference.contentHash)) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision does not match the requested history entry.\");\n }\n return decision;\n },\n async recordCandidateDecision(input: TrainingCandidateDecisionRequest): Promise<TrainingCandidateDecision> {\n const parsed = TrainingCandidateDecisionRequestSchema.parse(input);\n const response = await request(route(parsed), { method: \"POST\", body: JSON.stringify(parsed) });\n return parseAndVerifyTrainingCandidateDecision(response, { ...parsed, request: parsed });\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n TRAINING_API_RESPONSE_MAX_BYTES,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** Reviewer-facing evidence only: never a worker response or training sample. */\nexport const TrainingEvaluationTaskResultSchema = /* @__PURE__ */ (() => z.object({\n taskId: IdSchema,\n taskSha256: HashSchema,\n resultSha256: HashSchema,\n input: z.object({\n instruction: z.string().max(1_000_000),\n context: z.record(z.string(), z.unknown()),\n }).strict(),\n output: z.string().max(1_000_000),\n outputSha256: HashSchema,\n score: z.number().finite().min(0).max(1),\n evidence: z.object({\n kind: z.enum([\"worker_command\", \"hosted_trace\", \"local_trace\"]),\n id: IdSchema,\n }).strict(),\n}).strict())();\n\n/** Supplements an existing evaluation; does not replace its terminal receipt. */\nexport const TrainingEvaluationTaskPageSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingEvaluationTaskPage.v1\"),\n jobId: IdSchema,\n teamId: IdSchema,\n evaluation: ModelProjectImmutableRefSchema,\n kind: z.enum([\"baseline\", \"candidate\"]),\n policyVersion: z.number().int().nonnegative(),\n taskset: ModelProjectVersionedRefSchema,\n panelSha256: HashSchema,\n offset: z.number().int().nonnegative(),\n total: z.number().int().min(1).max(10_000),\n tasks: z.array(TrainingEvaluationTaskResultSchema).min(1).max(100),\n nextCursor: z.string().regex(/^[1-9]\\d*$/).nullable(),\n contentHash: HashSchema,\n}).strict().superRefine((page, context) => {\n const end = page.offset + page.tasks.length;\n const expectedCursor = end < page.total ? String(end) : null;\n if (end > page.total || page.nextCursor !== expectedCursor) {\n context.addIssue({ code: \"custom\", path: [\"nextCursor\"], message: \"Evaluation pagination must cover consecutive task positions.\" });\n }\n if (new Set(page.tasks.map((task) => task.taskId)).size !== page.tasks.length) {\n context.addIssue({ code: \"custom\", path: [\"tasks\"], message: \"Evaluation task identities must be unique.\" });\n }\n}))();\n\nexport type TrainingEvaluationTaskResult = z.infer<typeof TrainingEvaluationTaskResultSchema>;\nexport type TrainingEvaluationTaskPage = z.infer<typeof TrainingEvaluationTaskPageSchema>;\n\nexport async function trainingEvaluationTaskPageHash(\n value: Omit<TrainingEvaluationTaskPage, \"contentHash\"> | TrainingEvaluationTaskPage,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingEvaluationTaskPage;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingEvaluationTaskPage(\n value: unknown,\n expected: {\n jobId: string;\n evaluation: { id: string; contentHash: string };\n offset?: number;\n teamId?: string;\n },\n): Promise<TrainingEvaluationTaskPage> {\n assertCanonicalPayloadSize(value, TRAINING_API_RESPONSE_MAX_BYTES, \"Training evaluation task page\");\n const page = TrainingEvaluationTaskPageSchema.parse(value);\n const reference = ModelProjectImmutableRefSchema.parse(expected.evaluation);\n if (page.jobId !== IdSchema.parse(expected.jobId)\n || page.evaluation.id !== reference.id\n || page.evaluation.contentHash !== reference.contentHash\n || page.offset !== (expected.offset ?? 0)\n || (expected.teamId !== undefined && page.teamId !== IdSchema.parse(expected.teamId))) {\n throw new OpenPondProtocolError(\"evaluation_page_identity_mismatch\", \"Evaluation results differ from the requested Job, evaluation, or page.\");\n }\n if (await trainingEvaluationTaskPageHash(page) !== page.contentHash) {\n throw new OpenPondProtocolError(\"evaluation_page_hash_mismatch\", \"Evaluation task page content hash did not match.\");\n }\n for (const task of page.tasks) {\n if (await canonicalSha256(task.output) !== task.outputSha256) {\n throw new OpenPondProtocolError(\"evaluation_output_hash_mismatch\", \"A retained evaluation output hash did not match.\");\n }\n }\n return page;\n}\n","import { verifySavedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport type { SteeringModelVersion } from \"./steering-profile-publication.js\";\nimport { ActivationExperimentFormDraftSchema, type ActivationExperimentFormDraft } from \"./activation-experiment-draft.js\";\nimport { parseAndVerifyActivationReferenceRequest, type ActivationReferenceRequest } from \"./activation-reference.js\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { createNeuronSteeringProfile, NeuronSteeringModelSchema, parseAndVerifyNeuronResidualCalibration,\n type NeuronSteeringModel, type NeuronResidualCalibration } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError, type CanonicalJsonValue } from \"./protocol.js\";\n\n/** Trusted host adapter, never an HTTP input. Encoding preserves the original\n * literal text without padding or truncation. Its complete descriptor identifies\n * tokenizer files and encoding settings and must hash to model.tokenizerHash. */\nexport interface ActivationFormTokenizer {\n source: NonNullable<ActivationExperimentFormDraft[\"baseModel\"]>;\n descriptor: Record<string, CanonicalJsonValue>;\n encode(text: string): readonly number[] | Promise<readonly number[]>;\n}\nconst numberPattern = /^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\nfunction fail(code: string): never { throw new OpenPondProtocolError(`activation_form_${code}`, \"The activation form cannot be compiled with these exact inputs.\"); }\nfunction decimal(text: string) {\n const value = text.trim();\n if (!numberPattern.test(value)) fail(\"number_incomplete\");\n return value;\n}\nfunction finite(text: string) {\n const value = decimal(text), number = Number(value);\n if (!Number.isFinite(number) || number === 0 && /[1-9]/.test(value.split(/[eE]/)[0]!)) fail(\"number_out_of_range\");\n return number;\n}\n/** Check integrality before converting to binary64; rounded fractions must not\n * become accepted coordinates. Exponents never allocate unbounded integers. */\nfunction integer(text: string, low: number, high: number) {\n const value = decimal(text), negative = value.startsWith(\"-\"), unsigned = value.replace(/^[+-]/, \"\");\n const [mantissa, exponent = \"0\"] = unsigned.split(/[eE]/), [whole, fraction = \"\"] = mantissa!.split(\".\");\n let digits = `${whole}${fraction}`.replace(/^0+/, \"\");\n if (!digits) return low <= 0 && high >= 0 ? 0 : fail(\"integer_out_of_range\");\n const scale = BigInt(exponent) - BigInt(fraction.length);\n if (scale < 0n) {\n const remove = -scale;\n if (remove >= BigInt(digits.length) || remove > BigInt(digits.length - digits.replace(/0+$/, \"\").length)) fail(\"integer_out_of_range\");\n digits = digits.slice(0, digits.length - Number(remove));\n } else {\n if (BigInt(digits.length) + scale > BigInt(String(Math.max(Math.abs(low), Math.abs(high))).length)) fail(\"integer_out_of_range\");\n digits += \"0\".repeat(Number(scale));\n }\n const result = Number(`${negative ? \"-\" : \"\"}${digits}`);\n if (!Number.isSafeInteger(result) || result < low || result > high) fail(\"integer_out_of_range\");\n return result;\n}\nfunction multipliers(text: string) {\n // Python str.split also recognizes the C0 information separators.\n // eslint-disable-next-line no-control-regex\n const raw = text.trim(), parts = raw.includes(\",\") ? raw.split(\",\") : raw ? raw.split(/[\\t-\\r\\x1c-\\x20\\x85\\xa0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]+/) : [];\n if (parts.length < 1 || parts.length > 16) fail(\"sweep_size_invalid\");\n const values = parts.map(finite);\n if (new Set(values).size !== values.length) fail(\"duplicate_multiplier\");\n return values;\n}\n\n/** Pure bounded authoring compilation, matching the Python SDK compiler. This\n * grants no execution admission; the host must authorize assets and the executor\n * must independently verify its actual loaded model and calibration custody. */\nexport async function compileActivationForm(form: ActivationExperimentFormDraft, options: {\n method: \"neuron_steering\" | \"inspect_activations\"; model: NeuronSteeringModel; tokenizer: ActivationFormTokenizer;\n calibrations?: readonly NeuronResidualCalibration[]; maximumAbsoluteDose?: number;\n startingProfileVersion?: SteeringModelVersion;\n}): Promise<ActivationReferenceRequest> {\n const raw = ActivationExperimentFormDraftSchema.parse(form), model = NeuronSteeringModelSchema.parse(options.model);\n const { method, tokenizer, calibrations = [], maximumAbsoluteDose = 16 } = options;\n if (method !== \"neuron_steering\" && method !== \"inspect_activations\") fail(\"method_unsupported\");\n if (!raw.prompts.length || !raw.coordinates.length) fail(\"rows_invalid\");\n if (typeof maximumAbsoluteDose !== \"number\" || !Number.isFinite(maximumAbsoluteDose) || maximumAbsoluteDose <= 0) fail(\"dose_limit_invalid\");\n const source = ModelProjectBaseModelSchema.parse(tokenizer.source), descriptor = tokenizer.descriptor;\n if (!raw.baseModel || canonicalJson(raw.baseModel) !== canonicalJson(source) || !source.revision || !source.tokenizerRevision ||\n source.modelId !== model.modelId || source.revision !== model.revision || await canonicalSha256(descriptor) !== model.tokenizerHash)\n fail(\"tokenizer_identity_mismatch\");\n const vocabulary = descriptor.vocabSize, eos = descriptor.eosTokenIds;\n if (typeof vocabulary !== \"number\" || !Number.isInteger(vocabulary) || vocabulary < 1 || vocabulary > 2_147_483_648 ||\n !Array.isArray(eos) || eos.length > 16 || eos.some(token => typeof token !== \"number\" || !Number.isInteger(token) || token < 0 || token >= vocabulary) ||\n new Set(eos).size !== eos.length || typeof tokenizer.encode !== \"function\") fail(\"tokenizer_descriptor_invalid\");\n let startingProfile: SteeringModelVersion[\"publication\"][\"profile\"] | null = null;\n if (raw.startingProfile) {\n if (method !== \"neuron_steering\") fail(\"saved_source_method_unsupported\");\n if (!options.startingProfileVersion) fail(\"saved_source_unresolved\");\n const version = await verifySavedSteeringExperimentSource(raw.startingProfile, options.startingProfileVersion);\n if (canonicalJson(version.publication.baseModel) !== canonicalJson(raw.baseModel) || canonicalJson(version.publication.profile.model) !== canonicalJson(model)) fail(\"saved_source_model_mismatch\");\n startingProfile = version.publication.profile;\n if (startingProfile.entries.some(entry => Math.abs(entry.dose) > maximumAbsoluteDose)) fail(\"dose_limit_exceeded\");\n if (startingProfile.normalization.mode === \"fixed_residual_reference\") {\n const reference = startingProfile.normalization.calibration;\n const matches = calibrations.filter(item => item.id === reference.id && item.revision === reference.revision && item.contentHash === reference.contentHash);\n if (matches.length !== 1) fail(\"calibration_unavailable\");\n const calibration = await parseAndVerifyNeuronResidualCalibration(matches[0], model, reference);\n if (startingProfile.entries.some(entry => !calibration.layers.some(row => row.layer === entry.layer))) fail(\"calibration_incomplete\");\n }\n } else if (options.startingProfileVersion) fail(\"saved_source_unrequested\");\n const entries: { layer: number; neuron: number; dose: number }[] = [], capture = new Map<number, number[]>(), seen = new Set<string>();\n for (const row of raw.coordinates) {\n const layer = integer(row.layer, 0, model.intermediateSizes.length - 1), neuron = integer(row.neuron, 0, model.intermediateSizes[layer]! - 1);\n const key = `${layer}:${neuron}`;\n if (seen.has(key)) fail(\"duplicate_coordinate\");\n seen.add(key); const neurons = capture.get(layer) ?? []; neurons.push(neuron); capture.set(layer, neurons);\n if (method === \"neuron_steering\") entries.push({ layer, neuron, dose: finite(row.dose) });\n }\n const variants: ActivationReferenceRequest[\"variants\"] = [{ id: \"baseline\", profile: null }];\n if (startingProfile) variants.push({id: \"saved-profile\", profile: startingProfile});\n if (method === \"neuron_steering\") {\n if (raw.normalization.mode === \"fixed_residual_reference\") {\n const reference = raw.normalization.calibration;\n if (calibrations.some(item => !item || typeof item !== \"object\" || Array.isArray(item))) fail(\"calibration_invalid\");\n const matches = calibrations.filter(item => item.id === reference.id && item.revision === reference.revision && item.contentHash === reference.contentHash);\n if (matches.length !== 1) fail(\"calibration_unavailable\");\n const calibration = await parseAndVerifyNeuronResidualCalibration(matches[0], model, reference);\n if (entries.some(entry => !calibration.layers.some(row => row.layer === entry.layer))) fail(\"calibration_incomplete\");\n }\n for (const [index, multiplier] of multipliers(raw.doseMultipliers).entries()) {\n const scaled = entries.map(entry => ({ ...entry, dose: entry.dose * multiplier }));\n if (scaled.some((entry, i) => !Number.isFinite(entry.dose) || Math.abs(entry.dose) > maximumAbsoluteDose ||\n entry.dose === 0 && entries[i]!.dose !== 0 && multiplier !== 0)) fail(\"dose_limit_exceeded\");\n const profile = await createNeuronSteeringProfile({\n schemaVersion: \"openpond.neuronSteeringProfile.v1\", model, hook: \"mlp.down_proj.input\", operation: \"add\",\n normalization: raw.normalization, tokenScope: raw.tokenScope, entries: scaled,\n });\n if (!startingProfile || !variants.some(variant => variant.profile?.contentHash === profile.contentHash))\n variants.push({id: `strength-${index + 1}`, profile});\n }\n }\n if (variants.length > 17) fail(\"variant_limit_exceeded\");\n // Reject incomplete numeric budgets before invoking a potentially costly host encoder.\n const bounds = {maxNewTokens: integer(raw.maxNewTokens, 0, 128), maximumCapturedValues: integer(raw.maximumCapturedValues, 1, 65_536),\n maximumForwardTokenWork: integer(raw.maximumForwardTokenWork, 1, 1_000_000), maximumDurationSeconds: finite(raw.maximumDurationSeconds)};\n if (bounds.maximumDurationSeconds <= 0 || bounds.maximumDurationSeconds > 300) fail(\"number_out_of_range\");\n const prompts: ActivationReferenceRequest[\"prompts\"] = [];\n for (const prompt of raw.prompts) {\n if (!prompt.text) fail(\"prompt_empty\");\n let encoded: readonly number[];\n try { encoded = await tokenizer.encode(prompt.text); } catch { fail(\"tokenization_failed\"); }\n if (!Array.isArray(encoded) || encoded.length < 1 || encoded.length > 4096 ||\n encoded.some(token => typeof token !== \"number\" || !Number.isInteger(token) || token < 0 || token >= vocabulary)) fail(\"tokenization_invalid\");\n prompts.push({ id: prompt.id, tokenIds: [...encoded], attentionMask: encoded.map(() => 1) });\n }\n if (variants.some(row => row.profile?.normalization.mode === \"baseline_prompt_residual_median\") && prompts.some(prompt => prompt.tokenIds.length < 2))\n fail(\"calibration_prompt_too_short\");\n return parseAndVerifyActivationReferenceRequest({ schemaVersion: \"openpond.activationReferenceRequest.v1\", model, prompts, variants,\n ...(raw.startingProfile ? {startingProfile: {...raw.startingProfile, variantId: \"saved-profile\"}} : {}),\n capture: Array.from(capture, ([layer, neurons]) => ({ layer, neurons })), eosTokenIds: eos,\n ...bounds });\n}\n","import { ActivationExperimentFormDraftSchema, type ActivationExperimentFormDraft } from \"./activation-experiment-draft.js\";\nimport { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { savedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\n/** Seeds editable replacement controls from a verified immutable source. Prompts,\n * raw limits and spend remain the caller's existing form. Off remains a separate\n * null-profile comparison; editing these controls never stacks interventions. */\nexport async function activationFormFromSteeringVersion(form: ActivationExperimentFormDraft, resolved: unknown, expected: {teamId?: string} = {}): Promise<ActivationExperimentFormDraft> {\n const current = ActivationExperimentFormDraftSchema.parse(form);\n const version = await parseAndVerifySavedModelVersion(resolved, expected);\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\")\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Choose a saved steering Model version.\");\n const profile = version.publication.profile;\n return ActivationExperimentFormDraftSchema.parse({...current, baseModel: version.publication.baseModel,\n coordinates: profile.entries.map((entry, index) => ({id: `saved-coordinate-${index + 1}`, layer: String(entry.layer), neuron: String(entry.neuron), dose: String(entry.dose)})),\n doseMultipliers: \"1\", normalization: profile.normalization, tokenScope: profile.tokenScope,\n startingProfile: savedSteeringExperimentSource(version)});\n}\nexport async function experimentStartingModelFromSteeringVersion(resolved: unknown, options: {teamId?: string; label?: string} = {}): Promise<Extract<ExperimentStartingModel, {source: \"steering\"}>> {\n const version = await parseAndVerifySavedModelVersion(resolved, options);\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\")\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Choose a saved steering Model version.\");\n const source = ExperimentStartingModelSchema.parse({source: \"steering\", label: options.label ?? version.publication.name,\n inferenceModelId: null, baseModel: version.publication.baseModel, steering: savedSteeringExperimentSource(version)});\n if (source.source !== \"steering\") throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Retain the saved steering source.\");\n return source;\n}\n"],"mappings":"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","names":["control","contentHash","z","z","z","z","Id","z","Hash","contentHash","Hash","z","Id","contentHash","fail","file","Id","z","Hash","contentHash","file","z","Id","z","Id","z","Hash","contentHash","Id","z","Hash","Timestamp","control","contentHash","fail","receipt","z","z","z","Id","Hash","z","z","Id","z","Hash","contentHash","fail","z","Id","z","Hash","contentHash","fail","receipt","z","assertBoundedTaskJson","z","assertBoundedTaskJson","z","Hash","z","z","Hash","z","contentHash","fail","question","z","Hash","z","contentHash","fail","Hash","z","assertBoundedTaskJson","contentHash","fail","file","z","Hash","z","Id","z","Hash","assertBoundedTaskJson","contentHash","fail","file","z","z","z","Id","Text","z","z","contentHash","fail","file","z","assertBoundedTaskJson","Hash","z","assertBoundedTaskJson","z","z","assertBoundedTaskJson","Hash","z","contentHash","assertBoundedTaskJson","Hash","z","assertBoundedTaskJson","contentHash","z","Id","z","Hash","Field","z","z","z","Id","z","Hash","contentHash","params","Id","z","Hash","Id","z","Hash","Field","Id","z","Hash","fail","contentHash","file","Id","z","Hash","contentHash","params","z","z","z","Id","z","Hash","receipt","contentHash","scope","params","z","z","Id","z","Hash","z","z","z","z","Field","z","z","z","z","z","Id","z","contentHash","receipt","identity","params","z","z","Id","z","Hash","contentHash","Id","z","Hash","contentHash","params","z","Id","z","Hash","Money","fields","fail","contentHash","scope","z","assertBoundedTaskJson","Id","z","Hash","Money","Method","Query","fail","checkSource","checkForm","contentHash","question","assertBoundedTaskJson","parseExecutionListQuery","params","scope","z","Id","z","Hash","Money","Method","Query","fields","fail","checkSource","checkForm","checkFormQuery","contentHash","parseExecutionListQuery","params","scope","z","Id","z","Hash","Money","Method","Query","fields","fail","checkSource","checkForm","checkFormQuery","contentHash","parseExecutionListQuery","params","scope","z","z","Id","z","Hash","contentHash","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","assertBoundedTaskJson","Id","z","Hash","assertBoundedTaskJson","contentHash","fail","z","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","Id","z","scope","params","z","Id","z","params","z","z","LearningRevisionRefSchema","z","LearningRevisionRefSchema","z","z","Hash","z","Id","z","Hash","Timestamp","mismatch","identity","z","Id","z","Hash","Timestamp","contentHash","z","Id","z","Hash","contentHash","scope","z","z","Id","z","Hash","contentHash","control","Id","z","Hash","Timestamp","contentHash","fail","control","z","z","Hash","z","Id","contentHash","Id","z","Hash","BindingRef","Timestamp","contentHash","validControl","control","fail","receipt","z","Id","z","Hash","contentHash","mismatch","z","Id","z","Hash","Name","Timestamp","contentHash","scope","params","z","Id","z","Hash","contentHash","identity","params","z","z","z","z","file","z","z","z","IdSchema","z","HashSchema","fail","IdSchema","z","control","input"]}
1
+ {"version":3,"sources":["../src/managed-serving-usage.ts","../src/engram-model-serving.ts","../src/engram-model-version.ts","../src/engram-adapter.ts","../src/neuron-steering.ts","../src/model-serving-pool.ts","../src/engram-inference.ts","../src/steering-profile-publication.ts","../src/steering-experiment-source.ts","../src/steering-model-selection.ts","../src/activation-reference.ts","../src/training-result.ts","../src/decision-model-version.ts","../src/decision-model-training.ts","../src/decision-model.ts","../src/decision-model-data.ts","../src/decision-model-artifact.ts","../src/decision-experiment-draft.ts","../src/weight-model-versions.ts","../src/alphaedit.ts","../src/alphaedit-artifact.ts","../src/neuron-training.ts","../src/neuron-training-result.ts","../src/neuron-training-artifact.ts","../src/alphaedit-experiment-draft.ts","../src/neuron-training-experiment-draft.ts","../src/experiment-result-reference.ts","../src/model-modification-capabilities.ts","../src/experiment-draft-storage.ts","../src/training-experiment-setup.ts","../src/training-preparations.ts","../src/evaluation-experiment-draft.ts","../src/hosted-evaluation-experiment-draft.ts","../src/activation-experiment-draft.ts","../src/engram-experiment-draft.ts","../src/training-experiment-learning-intent.ts","../src/steering-experiment-source-verification.ts","../src/experiment-starting-model.ts","../src/managed-modification-executions.ts","../src/managed-modification-compilation.ts","../src/managed-engram-executions.ts","../src/managed-decision-executions.ts","../src/managed-alphaedit-executions.ts","../src/managed-neuron-training-executions.ts","../src/alphaedit-model-serving.ts","../src/weight-inference.ts","../src/neuron-training-model-serving.ts","../src/decision-model-scoring.ts","../src/decision-model-serving.ts","../src/decision-experiment-authoring.ts","../src/weight-experiment-authoring.ts","../src/engram-experiment-authoring.ts","../src/training-executions.ts","../src/training-acceptance.ts","../src/training.ts","../src/training-experiment-learning.ts","../src/training-estimates.ts","../src/training-estimate-workload.ts","../src/training-funding.ts","../src/dataset-training-review.ts","../src/training-model-save.ts","../src/training-model-serving.ts","../src/training-model-serving-control.ts","../src/steering-model-serving.ts","../src/steering-inference.ts","../src/neuron-residual-calibration.ts","../src/neuron-calibration-records.ts","../src/activation-result-comparison.ts","../src/modification-recordings.ts","../src/training-hardware-catalog.ts","../src/training-harness-sources.ts","../src/training-candidate-decisions.ts","../src/training-evaluation-results.ts","../src/activation-form-compiler.ts","../src/steering-experiment-authoring.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ComputeAppliedPriceSchema, canonicalComputeSpendCap } from \"./managed-compute-price.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nfunction computeUsdMicros(value: string): number {\n if (!/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/.test(value) || value.length > 24)\n throw new Error(\"invalid_compute_amount\");\n const [whole, fraction = \"\"] = value.split(\".\");\n const micros = BigInt(whole!) * 1_000_000n + BigInt(fraction.padEnd(6, \"0\"));\n if (micros > BigInt(Number.MAX_SAFE_INTEGER)) throw new Error(\"invalid_compute_amount\");\n return Number(micros);\n}\nfunction normalizedComputeUsd(value: string): string {\n const micros = BigInt(computeUsdMicros(value));\n return `${micros / 1_000_000n}.${(micros % 1_000_000n).toString().padStart(6, \"0\")}`;\n}\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Image = z.string().regex(/^sha256:[a-f0-9]{64}$/);\nconst Timestamp = z.iso\n .datetime()\n .refine((value) => new Date(value).toISOString() === value);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)\\.\\d{6}$/).max(24).refine((value) => {\n try {\n return normalizedComputeUsd(value) === value;\n } catch {\n return false;\n }\n});\nexport const ManagedServingUsageMethodSchema = z.enum([\n \"training\",\n \"steering\",\n \"engram\",\n \"decision\",\n \"alphaedit\",\n \"selective_neuron_training\",\n]);\nexport type ManagedServingUsageMethod = z.infer<\n typeof ManagedServingUsageMethodSchema\n>;\nexport const ManagedServingUsagePriceSchema = ComputeAppliedPriceSchema.extend({\n service: z.literal(\"model_serving\"),\n});\n\n/** Portable review. Provider account, Pod identity and allocation credentials\n * remain in the private physical owner, never in customer approval documents. */\nexport const ManagedServingUsageReviewSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageReview.v1\"),\n teamId: Id,\n modelProjectId: Id,\n versionHash: Hash,\n method: ManagedServingUsageMethodSchema,\n price: ManagedServingUsagePriceSchema,\n runtimeHash: Hash,\n workerImageDigest: Image,\n providerConfigurationHash: Hash,\n idleTimeoutSeconds: z.literal(300),\n rules: z\n .object({\n billableStart: z.literal(\"provider_allocation\"),\n startupBillable: z.literal(true),\n idleBillable: z.literal(true),\n explicitStop: z.literal(\"logical_admission_closed\"),\n postTrainingReuseBillable: z.literal(false),\n minimumBillableMillis: z.literal(0),\n tokenRetailUsd: z.literal(\"0.000000\"),\n })\n .strict(),\n nativeControl: z\n .object({\n protocol: z.literal(\"openpond.workerComputeControl.v1\"),\n executionLeaseMillis: z.literal(30000),\n stopHeadroomMillis: z.literal(60000),\n qualificationHash: Hash,\n })\n .strict(),\n workDeadlineAt: Timestamp,\n expiresAt: Timestamp,\n contentHash: Hash,\n })\n .strict();\nexport type ManagedServingUsageReview = z.infer<\n typeof ManagedServingUsageReviewSchema\n>;\n\n/** Omitted usageApproval retains the original token-billed serving contract.\n * The field, when present, is an explicit price/context approval; null cap means\n * available shared credit, while a positive cap limits cumulative retail. */\nexport const ManagedServingUsageApprovalSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageApproval.v1\"),\n reviewHash: Hash,\n customerCapUsd: Money.refine(\n (value) => computeUsdMicros(value) > 0,\n ).nullable(),\n })\n .strict();\nexport type ManagedServingUsageApproval = z.infer<\n typeof ManagedServingUsageApprovalSchema\n>;\n\nexport const ManagedServingUsageSnapshotSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsage.v1\"),\n deploymentKey: Id,\n reviewHash: Hash,\n price: ManagedServingUsagePriceSchema,\n customerCapUsd: Money.nullable(),\n fundingState: z.enum([\"pending\", \"active\", \"exhausted\", \"closed\"]),\n stopReason: z\n .enum([\n \"explicit_stop\",\n \"idle_timeout\",\n \"credit_exhausted\",\n \"cap_reached\",\n \"control_expired\",\n \"policy_changed\",\n \"member_cap_reached\",\n \"native_unavailable\",\n \"work_deadline\",\n ])\n .nullable(),\n startedAt: Timestamp.nullable(),\n lastActivityAt: Timestamp.nullable(),\n idleExpiresAt: Timestamp.nullable(),\n billableStoppedAt: Timestamp.nullable(),\n quantityMillis: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),\n chargedUsd: Money,\n reservationId: Id.nullable(),\n })\n .strict();\nexport type ManagedServingUsageSnapshot = z.infer<\n typeof ManagedServingUsageSnapshotSchema\n>;\n\nexport const ManagedServingUsageReviewResultSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedServingUsageReviewResult.v1\"),\n availability: z.enum([\"reviewable\", \"unavailable\"]),\n reason: Id.nullable(),\n review: ManagedServingUsageReviewSchema.nullable(),\n usage: ManagedServingUsageSnapshotSchema.nullable(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (\n (value.availability === \"reviewable\") !== (value.review !== null) ||\n (value.availability === \"reviewable\") !== (value.reason === null)\n )\n ctx.addIssue({\n code: \"custom\",\n message: \"Serving price review availability is inconsistent\",\n });\n });\n\nexport type ManagedServingUsageReviewResult = z.infer<typeof ManagedServingUsageReviewResultSchema>;\n\n/** Validate nested price context as well as the containing status receipt hash. */\nexport async function verifyManagedServingUsageBilling(\n value: ManagedServingUsageReviewResult | undefined,\n expected: { teamId: string; modelProjectId: string; versionHash: string; method: ManagedServingUsageMethod },\n control?: { usage?: ManagedServingUsageSnapshot } | null,\n) {\n if (!value) return;\n const { review, usage } = ManagedServingUsageReviewResultSchema.parse(value);\n if (await canonicalSha256(usage) !== await canonicalSha256(control?.usage ?? null))\n throw new OpenPondProtocolError(\"managed_serving_usage_mismatch\", \"Serving usage differs from the retained deployment owner.\");\n if (!review) return;\n const { contentHash, ...content } = review;\n if (contentHash !== await canonicalSha256(content) ||\n review.teamId !== expected.teamId || review.modelProjectId !== expected.modelProjectId ||\n review.versionHash !== expected.versionHash || review.method !== expected.method ||\n Date.parse(review.expiresAt) > Date.parse(review.workDeadlineAt) ||\n usage && (usage.reviewHash !== contentHash || await canonicalSha256(usage.price) !== await canonicalSha256(review.price)))\n throw new OpenPondProtocolError(\"managed_serving_usage_mismatch\", \"Serving pricing differs from the exact saved Model, runtime or accepted terms.\");\n}\n\n/** A successful activation must retain the exact reviewed cap and price owner. */\nexport function managedServingUsageApprovalMatches(\n request: { action: \"activate\" | \"stop\"; usageApproval?: ManagedServingUsageApproval },\n control: { usage?: ManagedServingUsageSnapshot },\n) {\n if (request.action === \"stop\") return true;\n const approved = request.usageApproval, usage = control.usage;\n if (!approved) return usage === undefined;\n return Boolean(usage && usage.reviewHash === approved.reviewHash && usage.customerCapUsd === approved.customerCapUsd);\n}\n\n/** Accept a fresh verified price without reserving credit or starting serving. */\nexport async function createManagedServingUsageApproval(\n rawReview: ManagedServingUsageReview,\n spendingLimit?: string | null,\n): Promise<ManagedServingUsageApproval> {\n const review = ManagedServingUsageReviewSchema.parse(rawReview);\n const { contentHash, ...content } = review;\n if (contentHash !== await canonicalSha256(content) || Date.parse(review.expiresAt) <= Date.now() ||\n Date.parse(review.workDeadlineAt) <= Date.now())\n throw new OpenPondProtocolError(\"managed_serving_review_expired\", \"Refresh the exact Model's serving price before activation.\");\n return ManagedServingUsageApprovalSchema.parse({\n schemaVersion: \"openpond.managedServingUsageApproval.v1\",\n reviewHash: contentHash,\n customerCapUsd: canonicalComputeSpendCap(spendingLimit),\n });\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EngramModelVersionSchema, parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { EngramInferenceReceiptSchema, parseAndVerifyResolvedEngramSelection } from \"./engram-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nconst Timestamp = z.iso.datetime();\n\nexport const EngramModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n defaultEnabled: z.boolean(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type EngramModelServingControlRequest = z.infer<typeof EngramModelServingControlRequestSchema>;\nexport const EngramModelServingControlIntentSchema = EngramModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const EngramModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: EngramModelServingControlRequestSchema }).strict();\n\nexport const EngramModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), defaultEnabled: z.boolean(),\n desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: Timestamp,\n}).strict();\nexport type EngramModelServingControl = z.infer<typeof EngramModelServingControlSchema>;\n\nexport const EngramServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: Id, poolId: Id, versionHash: Hash,\n}).strict();\nexport const EngramServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"module_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const EngramModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.engramModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: Timestamp, version: EngramModelVersionSchema,\n defaultEnabled: z.boolean(),\n availability: EngramServingAvailabilitySchema,\n control: EngramModelServingControlSchema.nullable(), cleanup: z.array(EngramModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(EngramServingBindingSchema).max(100),\n lastVerifiedInference: EngramInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const EngramModelServingSchema = EngramModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type EngramModelServing = z.infer<typeof EngramModelServingSchema>;\nexport const EngramModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramModelServingControlReceipt.v1\"),\n teamId: Id, modelProjectId: Id, actorId: Id,\n request: EngramModelServingControlRequestSchema, version: EngramModelVersionSchema,\n control: EngramModelServingControlSchema,\n}).strict();\nexport const EngramModelServingControlReceiptSchema = EngramModelServingControlReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type EngramModelServingControlReceipt = z.infer<typeof EngramModelServingControlReceiptSchema>;\n\nfunction validControl(value: EngramModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n\nexport function engramModelServingState(value: Pick<EngramModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): EngramModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\n\nexport async function parseAndVerifyEngramModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: EngramModelServingControlRequest; actorId?: string;\n}) {\n const value = EngramModelServingControlReceiptSchema.parse(raw), request = EngramModelServingControlRequestSchema.parse(expected.request);\n const {contentHash, ...content} = value, control = value.control;\n await parseAndVerifyEngramModelVersion(value.version, {teamId: request.teamId, modelProjectId: expected.modelProjectId});\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId\n || control.actorId !== value.actorId || control.operationId !== request.operationId || control.versionHash !== request.versionHash\n || control.revision !== request.expectedRevision + 1 || control.idleTimeoutSeconds !== request.idleTimeoutSeconds\n || control.defaultEnabled !== request.defaultEnabled || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"engram_serving_control_mismatch\", \"The serving receipt differs from the exact memory Model or original command.\");\n return value;\n}\n\nexport async function parseAndVerifyEngramModelServing(raw: unknown, expected: {teamId: string; modelProjectId: string; versionHash: string}) {\n const value = EngramModelServingSchema.parse(raw), {contentHash, ...content} = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"engram\" }, value.control);\n await parseAndVerifyEngramModelVersion(value.version, expected);\n function fail(): never {throw new OpenPondProtocolError(\"engram_model_serving_mismatch\", \"The serving evidence differs from the exact memory Model or retained capacity.\");}\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== engramModelServingState(value)\n || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && (control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")\n || control.versionHash === expected.versionHash && control.defaultEnabled !== value.defaultEnabled)) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding && !value.bindings.some(row => row.id === control.binding!.id && row.revision === control.binding!.revision\n && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n parseAndVerifyResolvedEngramSelection(inference.selection, {savedModel: inference.selection.savedModel,\n ...(inference.selection.requested === \"inherit\" ? {} : {engram: inference.selection.requested === \"on\"})});\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || inference.selection.savedModel.modelProjectId !== expected.modelProjectId || inference.selection.savedModel.versionHash !== expected.versionHash\n || inference.selection.module.id !== value.version.artifact.id || inference.selection.module.contentHash !== value.version.artifact.contentHash\n || inference.selection.module.payloadSha256 !== value.version.artifact.manifest.payload.sha256\n || inference.selection.modelHash !== await canonicalSha256(value.version.artifact.manifest.pins.baseModel)\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createEngramModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {async controlEngramModelServing(modelProjectId: string, raw: EngramModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = EngramModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyEngramModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body),\n }), {modelProjectId: id, request: body});\n }};\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EngramTrainingResultSchema, parseAndVerifyEngramAdapterArtifact } from \"./engram-adapter.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const EngramModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramModelVersion.v1\"), teamId: Id, ownerUserId: Id,\n modelProjectId: Id, portableProjectId: Id, baseModel: ModelProjectBaseModelSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash}).strict(),\n artifact: EngramTrainingResultSchema.shape.artifact, createdAt: z.iso.datetime(),\n}).strict();\nexport const EngramModelVersionSchema = EngramModelVersionContentSchema.extend({contentHash: Hash});\nexport type EngramModelVersion = z.infer<typeof EngramModelVersionSchema>;\nexport const SavedEngramExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type SavedEngramExperimentSource = z.infer<typeof SavedEngramExperimentSourceSchema>;\nexport async function parseAndVerifyEngramModelVersion(raw: unknown, expected: {teamId?: string; modelProjectId?: string; ownerUserId?: string} = {}) {\n const value = EngramModelVersionSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyEngramAdapterArtifact(value.artifact.manifest);\n const files = value.artifact.files, metadata = files.find(file => file.path === \"manifest.json\"), tensor = files.find(file => file.path === \"adapter.safetensors\");\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId\n || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId || expected.ownerUserId && value.ownerUserId !== expected.ownerUserId\n || value.baseModel.modelId !== manifest.pins.baseModel.modelId || value.baseModel.revision !== manifest.pins.baseModel.revision\n || value.source.runtimeHash !== manifest.pins.runtimeHash || value.artifact.contentHash !== manifest.contentHash\n || !metadata || !tensor || metadata.sha256 !== await canonicalSha256(manifest)\n || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || files.some(file => file.artifactId !== value.artifact.id))\n throw new OpenPondProtocolError(\"engram_model_version_mismatch\", \"The saved Model differs from its exact trained memory module.\");\n return value;\n}\nexport const EngramResultSaveRequestSchema = z.object({\n teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the exact existing Model revision, or create a new Model.\"});\nexport type EngramResultSaveRequest = z.infer<typeof EngramResultSaveRequestSchema>;\nexport const EngramResultSaveReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramResultSaveReceipt.v1\"), teamId: Id, actorId: Id,\n operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema, version: EngramModelVersionSchema,\n}).strict();\nexport const EngramResultSaveReceiptSchema = EngramResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type EngramResultSaveReceipt = z.infer<typeof EngramResultSaveReceiptSchema>;\nexport async function parseAndVerifyEngramResultSaveReceipt(raw: unknown, input: EngramResultSaveRequest) {\n const request = EngramResultSaveRequestSchema.parse(input), value = EngramResultSaveReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyEngramModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || value.operationId !== request.operationId || value.requestHash !== await canonicalSha256(request)\n || value.version.source.executionId !== request.executionId || value.version.source.resultHash !== request.resultHash\n || value.version.artifact.contentHash !== request.artifactHash || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1 || request.modelProjectId && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"engram_model_save_mismatch\", \"The saved Model differs from the original execution, module or Model revision.\");\n return value;\n}\nexport function createEngramModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveEngramResultModel(raw: EngramResultSaveRequest) {\n const body = EngramResultSaveRequestSchema.parse(raw);\n return parseAndVerifyEngramResultSaveReceipt(await request(`/v1/training/modification-executions/${encodeURIComponent(body.executionId)}/model`, {\n method: \"POST\", body: canonicalJson(body),\n }), body);\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\nexport const ENGRAM_ADAPTER_MAX_BYTES = 2_147_483_648;\n\n/** Independent implementation of arXiv:2608.29327v1, section 3 and appendix B.\n * Explicit boundary, initialization and history choices identify this runtime;\n * the paper's reported retention is not a guarantee for a trained module. */\nexport const EngramAdapterConfigSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramAdapterConfig.v1\"),\n implementation: z.literal(\"openpond_qwen_engram_paper_v1\"),\n hook: z.literal(\"self_attn.input\"),\n injectLayers: z.tuple([z.literal(1), z.literal(3), z.literal(7), z.literal(15)]),\n suffixOrders: z.tuple([z.literal(2), z.literal(3)]),\n previousOrders: z.tuple([z.literal(3)]),\n numHashes: z.literal(4), tableSize: z.literal(90_007),\n perHashDim: z.union([z.literal(128), z.literal(256)]),\n alpha: z.literal(0.2), memoryInitStd: z.literal(0.02),\n adapterDtype: z.literal(\"float32\"), projectionInit: z.literal(\"zeros\"),\n gateInit: z.literal(\"zeros_no_bias\"), boundary: z.literal(\"incomplete_group_off_v1\"),\n occupancy: z.literal(\"training_before_lookup_v1\"),\n history: z.literal(\"request_absolute_positions_v1\"), batchSize: z.literal(1),\n}).strict();\nexport type EngramAdapterConfig = z.infer<typeof EngramAdapterConfigSchema>;\n\nexport const EngramTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.001),\n weightDecay: z.number().finite().min(0).max(0.1),\n maxSteps: z.number().int().min(1).max(128),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n maxSequenceLength: z.number().int().min(2).max(8192),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n}).strict();\nexport type EngramTrainingSettings = z.infer<typeof EngramTrainingSettingsSchema>;\nexport const EngramTrainingDataSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport const EngramArtifactReferenceSchema = z.object({ id: Id, contentHash: Hash }).strict();\nexport const EngramTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramTrainingRequest.v1\"),\n model: NeuronSteeringModelSchema,\n data: EngramTrainingDataSchema,\n config: EngramAdapterConfigSchema,\n training: EngramTrainingSettingsSchema,\n parentArtifact: EngramArtifactReferenceSchema.nullable(),\n}).strict().superRefine((value, context) => {\n if (value.model.intermediateSizes.length <= 15 || value.model.dtype !== \"bfloat16\")\n context.addIssue({code: \"custom\", path: [\"model\"], message: \"This Engram implementation requires the exact compatible BF16 dense base.\"});\n});\nexport type EngramTrainingRequest = z.infer<typeof EngramTrainingRequestSchema>;\n\nexport const EngramSupervisedEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramSupervisedEncoding.v1\"),\n implementation: z.literal(\"supervised_trainer.prepare_example.v1\"),\n modelHash: Hash, tokenizerHash: Hash,\n maxSequenceLength: z.number().int().min(2).max(8192),\n completionOnly: z.literal(true), enableThinking: z.literal(false),\n truncation: z.literal(\"left_prompt_preserve_final_target_v1\"),\n}).strict();\n\n/** Declares the exact existing supervised encoder. This is not a claim that\n * the caller measured tokenization or inspected private Dataset examples. */\nexport async function engramSupervisedEncoding(model: z.infer<typeof NeuronSteeringModelSchema>, maxSequenceLength: number) {\n return EngramSupervisedEncodingSchema.parse({\n schemaVersion: \"openpond.engramSupervisedEncoding.v1\",\n implementation: \"supervised_trainer.prepare_example.v1\",\n modelHash: await canonicalSha256(NeuronSteeringModelSchema.parse(model)),\n tokenizerHash: model.tokenizerHash, maxSequenceLength,\n completionOnly: true, enableThinking: false,\n truncation: \"left_prompt_preserve_final_target_v1\",\n });\n}\nexport async function parseAndVerifyEngramTrainingRequest(raw: unknown) {\n const request = EngramTrainingRequestSchema.parse(raw);\n if (request.data.encodingHash !== await canonicalSha256(await engramSupervisedEncoding(request.model, request.training.maxSequenceLength)))\n throw new OpenPondProtocolError(\"engram_encoding_mismatch\", \"The Engram request differs from its exact supervised encoder.\");\n return request;\n}\n\nexport const EngramArtifactPinsSchema = z.object({\n baseModel: NeuronSteeringModelSchema,\n adapterConfigHash: Hash, recipeHash: Hash, dataHash: Hash,\n data: EngramTrainingDataSchema, runtimeHash: Hash,\n parentArtifactHash: Hash.nullable(),\n}).strict();\nexport const EngramAdapterTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.-]{1,200}$/),\n shape: z.array(z.number().int().positive().max(10_000_000)).min(1).max(2),\n dtype: z.enum([\"F32\", \"BOOL\"]),\n}).strict();\nexport const EngramAdapterArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramAdapterArtifact.v1\"),\n method: z.literal(\"engram_adapter\"), config: EngramAdapterConfigSchema,\n pins: EngramArtifactPinsSchema,\n payload: z.object({\n path: z.literal(\"adapter.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n tensors: z.array(EngramAdapterTensorSchema).min(1).max(100),\n }).strict(),\n}).strict();\nexport const EngramAdapterArtifactSchema = EngramAdapterArtifactContentSchema.extend({contentHash: Hash});\nexport type EngramAdapterArtifact = z.infer<typeof EngramAdapterArtifactSchema>;\n\nexport function engramAdapterTensorInventory(config: EngramAdapterConfig, hiddenSize: number) {\n const parsed = EngramAdapterConfigSchema.parse(config);\n const hidden = z.number().int().positive().max(1_000_000).parse(hiddenSize);\n const items: z.infer<typeof EngramAdapterTensorSchema>[] = [];\n for (const group of [\"suffix2\", \"suffix3\", \"previous3\"]) {\n for (let head = 0; head < parsed.numHashes; head++) {\n items.push({name: `shared.embeddings.${group}.${head}.weight`, dtype: \"F32\", shape: [parsed.tableSize, parsed.perHashDim]});\n items.push({name: `shared.occupancy.${group}.h${head}`, dtype: \"BOOL\", shape: [parsed.tableSize]});\n }\n }\n const memoryWidth = 3 * parsed.numHashes * parsed.perHashDim;\n for (const layer of parsed.injectLayers) {\n items.push({name: `layers.${layer}.projection.weight`, dtype: \"F32\", shape: [hidden, memoryWidth]});\n items.push({name: `layers.${layer}.gate_memory`, dtype: \"F32\", shape: [memoryWidth]});\n items.push({name: `layers.${layer}.gate_hidden`, dtype: \"F32\", shape: [hidden]});\n }\n return items.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\n\n/** Metadata verification does not prove possession of the tensor bytes. The\n * artifact custodian must separately verify their size, digest and inventory. */\nexport async function parseAndVerifyEngramAdapterArtifact(raw: unknown, expected?: {\n request: EngramTrainingRequest; runtimeHash: string;\n}) {\n const value = EngramAdapterArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const fail = (): never => {throw new OpenPondProtocolError(\"engram_artifact_mismatch\", \"The Engram module differs from its exact configuration, data or parent.\");};\n if (contentHash !== await canonicalSha256(content)\n || value.pins.adapterConfigHash !== await canonicalSha256(value.config)\n || value.pins.dataHash !== await canonicalSha256(value.pins.data)\n || new Set(value.payload.tensors.map(row => row.name)).size !== value.payload.tensors.length\n || canonicalJson([...value.payload.tensors].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0))\n !== canonicalJson(engramAdapterTensorInventory(value.config, value.pins.baseModel.hiddenSize))) fail();\n if (expected) {\n const request = await parseAndVerifyEngramTrainingRequest(expected.request);\n if (canonicalJson(value.config) !== canonicalJson(request.config)\n || canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data)\n || value.pins.recipeHash !== await canonicalSha256(request.training)\n || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== (request.parentArtifact?.contentHash ?? null)\n || value.payload.sizeBytes > request.training.maxCheckpointBytes) fail();\n }\n return value;\n}\n\nexport const EngramModuleFileSchema = z.object({\n path: z.enum([\"manifest.json\", \"adapter.safetensors\"]),\n artifactId: Id, sha256: Hash,\n sizeBytes: z.number().int().positive().max(ENGRAM_ADAPTER_MAX_BYTES),\n}).strict();\nexport const EngramTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramTrainingResult.v1\"),\n inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash,\n optimizerSteps: z.number().int().min(1).max(128),\n examplesProcessed: z.number().int().positive().max(4096),\n targetTokens: z.number().int().positive().max(33_554_432),\n forwardTokenWork: z.number().int().positive().max(100_000_000),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n baseWeightsHashBefore: Hash, baseWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n artifact: z.object({\n id: Id, contentHash: Hash, manifest: EngramAdapterArtifactSchema,\n files: z.array(EngramModuleFileSchema).length(2),\n }).strict(),\n}).strict();\nexport const EngramTrainingResultSchema = EngramTrainingResultContentSchema.extend({contentHash: Hash});\nexport type EngramTrainingResult = z.infer<typeof EngramTrainingResultSchema>;\n\n/** Successful results require exact committed file custody as well as the\n * producer's training evidence. A manifest alone is not a trained Model. */\nexport async function parseAndVerifyEngramTrainingResult(raw: unknown, expected: {\n request: EngramTrainingRequest; runtimeHash: string;\n}) {\n const request = await parseAndVerifyEngramTrainingRequest(expected.request);\n const value = EngramTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyEngramAdapterArtifact(value.artifact.manifest, expected);\n const tensor = value.artifact.files.find(file => file.path === \"adapter.safetensors\");\n const metadata = value.artifact.files.find(file => file.path === \"manifest.json\");\n if (contentHash !== await canonicalSha256(content)\n || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model)\n || value.dataHash !== await canonicalSha256(request.data)\n || value.runtimeHash !== expected.runtimeHash\n || value.optimizerSteps !== request.training.maxSteps\n || value.examplesProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.targetTokens > value.forwardTokenWork\n || value.durationMs > request.training.maxDurationSeconds * 1000\n || value.baseWeightsHashBefore !== request.model.weightsHash\n || value.baseWeightsHashAfter !== value.baseWeightsHashBefore\n || value.artifact.contentHash !== manifest.contentHash\n || !tensor || !metadata || metadata.sizeBytes > 262_144\n || metadata.sha256 !== await canonicalSha256(manifest)\n || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((total, file) => total + file.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"engram_training_result_mismatch\", \"The Engram training result differs from its exact run, frozen base or committed module.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronSteeringReferenceSchema = z.object({ id: Id, revision: z.number().int().positive(), contentHash: Hash }).strict();\n\n/** Reference identity is verified against tensor state, configuration and\n * tokenizer descriptors. It is not a registry publication or worker release. */\nexport const NeuronSteeringModelSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronSteeringModel.v1\"), modelId: Id, revision: Id,\n configHash: Hash, weightsHash: Hash, tokenizerHash: Hash,\n weightIdentity: z.literal(\"torch_state_dict_sha256_v1\"), architecture: z.literal(\"dense_decoder\"),\n dtype: z.enum([\"float32\", \"float16\", \"bfloat16\"]), quantization: z.literal(\"none\"), adapter: z.null(),\n hiddenSize: z.number().int().positive().max(1_000_000),\n intermediateSizes: z.array(z.number().int().positive().max(10_000_000)).min(1).max(512),\n}).strict();\nexport type NeuronSteeringModel = z.infer<typeof NeuronSteeringModelSchema>;\nexport const NeuronSteeringEntrySchema = z.object({\n layer: z.number().int().nonnegative().max(511), neuron: z.number().int().nonnegative().max(9_999_999), dose: z.number().finite(),\n}).strict();\nexport const NeuronSteeringTokenScopeSchema = z.object({\n phase: z.enum([\"prompt_and_decode\", \"prompt_only\", \"decode_only\"]),\n positions: z.enum([\"all_non_padding\", \"after_position_zero\"]),\n}).strict();\nexport const NeuronSteeringNormalizationSchema = z.discriminatedUnion(\"mode\", [\n z.object({ mode: z.literal(\"baseline_prompt_residual_median\"), statistic: z.literal(\"midpoint_median_fp32\"),\n sample: z.literal(\"non_padding_prompt_after_position_zero\") }).strict(),\n z.object({ mode: z.literal(\"fixed_residual_reference\"), calibration: NeuronSteeringReferenceSchema }).strict(),\n]);\nexport const NeuronSteeringProfileContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronSteeringProfile.v1\"),\n model: NeuronSteeringModelSchema, hook: z.literal(\"mlp.down_proj.input\"), operation: z.literal(\"add\"),\n normalization: NeuronSteeringNormalizationSchema, tokenScope: NeuronSteeringTokenScopeSchema,\n entries: z.array(NeuronSteeringEntrySchema).min(1).max(64),\n}).strict().superRefine((value, ctx) => {\n const seen = new Set<string>();\n value.entries.forEach((entry, index) => {\n const key = `${entry.layer}:${entry.neuron}`;\n if (seen.has(key) || entry.layer >= value.model.intermediateSizes.length || entry.neuron >= (value.model.intermediateSizes[entry.layer] ?? 0))\n ctx.addIssue({ code: \"custom\", path: [\"entries\", index], message: \"Each coordinate must be unique and within this exact dense model.\" });\n seen.add(key);\n });\n});\nexport const NeuronSteeringProfileSchema = NeuronSteeringProfileContentSchema.safeExtend({ contentHash: Hash });\nexport type NeuronSteeringProfile = z.infer<typeof NeuronSteeringProfileSchema>;\nexport async function createNeuronSteeringProfile(raw: z.input<typeof NeuronSteeringProfileContentSchema>): Promise<NeuronSteeringProfile> {\n const content = NeuronSteeringProfileContentSchema.parse(raw);\n return { ...content, contentHash: await canonicalSha256(content) };\n}\nexport async function parseAndVerifyNeuronSteeringProfile(raw: unknown, model?: NeuronSteeringModel) {\n const value = NeuronSteeringProfileSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || model && await canonicalSha256(value.model) !== await canonicalSha256(NeuronSteeringModelSchema.parse(model)))\n throw new OpenPondProtocolError(\"neuron_steering_profile_mismatch\", \"The intervention differs from its exact model or retained payload.\");\n return value;\n}\n\nexport const NeuronResidualCalibrationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibration.v1\"), id: Id, revision: z.number().int().positive(), modelHash: Hash,\n source: z.object({ id: Id, contentHash: Hash }).strict(), statistic: z.literal(\"midpoint_median_fp32\"),\n sample: z.literal(\"non_padding_prompt_after_position_zero\"),\n layers: z.array(z.object({ layer: z.number().int().nonnegative().max(511), median: z.number().finite().positive(),\n sampleCount: z.number().int().positive() }).strict()).min(1).max(512),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.layers.map(layer => layer.layer)).size !== value.layers.length)\n ctx.addIssue({ code: \"custom\", path: [\"layers\"], message: \"Calibration layers must be unique.\" });\n});\nexport const NeuronResidualCalibrationSchema = NeuronResidualCalibrationContentSchema.safeExtend({ contentHash: Hash });\nexport type NeuronResidualCalibration = z.infer<typeof NeuronResidualCalibrationSchema>;\nexport async function parseAndVerifyNeuronResidualCalibration(raw: unknown, model: NeuronSteeringModel, reference?: z.infer<typeof NeuronSteeringReferenceSchema>) {\n const value = NeuronResidualCalibrationSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || value.modelHash !== await canonicalSha256(NeuronSteeringModelSchema.parse(model))\n || reference && (reference.id !== value.id || reference.revision !== value.revision || reference.contentHash !== value.contentHash)\n || value.layers.some(layer => layer.layer >= model.intermediateSizes.length))\n throw new OpenPondProtocolError(\"neuron_calibration_mismatch\", \"The residual calibration differs from its exact model or immutable reference.\");\n return value;\n}\n","import { z } from \"zod\";\n\n/** New serving activations use one five-minute idle window. Historical\n * requests/receipts keep their original value for exact replay and Stop. */\nexport const MODEL_SERVING_IDLE_TIMEOUT_SECONDS = 300;\n\nconst Id = z.string().trim().min(1).max(500);\n\nexport const TrainingServingPoolSchema = z.object({\n id: Id, provider: Id, state: z.enum([\"requested\", \"provisioning\", \"ready\", \"degraded\", \"deleting\", \"deleted\", \"failed\"]),\n workersMin: z.number().int().nonnegative(), workersMax: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().nonnegative(), workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/).nullable(),\n endpointRecorded: z.boolean(), activeDeployments: z.number().int().nonnegative(), activeBindings: z.number().int().nonnegative(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(), retirementBlocked: z.boolean(),\n}).strict();\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const EngramModuleReferenceSchema = z.object({id: Id, contentHash: Hash, payloadSha256: Hash}).strict();\nexport const SavedEngramModelSelectionSchema = z.object({modelProjectId: Id, versionHash: Hash}).strict();\n/** An omitted switch inherits the retained serving default. Each request/KV\n * namespace pins one committed module, including when the switch is Off. */\nexport const EngramInferenceOptionsSchema = z.object({\n savedModel: SavedEngramModelSelectionSchema.optional(), engram: z.boolean().optional(),\n}).strict();\nexport type EngramInferenceOptions = z.infer<typeof EngramInferenceOptionsSchema>;\nexport const ResolvedEngramSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedEngramSelection.v1\"),\n requested: z.enum([\"inherit\", \"on\", \"off\"]), savedModel: SavedEngramModelSelectionSchema,\n defaultEnabled: z.boolean(), effectiveEnabled: z.boolean(), module: EngramModuleReferenceSchema, modelHash: Hash,\n}).strict();\nexport type ResolvedEngramSelection = z.infer<typeof ResolvedEngramSelectionSchema>;\n\nexport function parseAndVerifyResolvedEngramSelection(raw: unknown, options: EngramInferenceOptions) {\n const value = ResolvedEngramSelectionSchema.parse(raw), request = EngramInferenceOptionsSchema.parse(options);\n if (value.requested !== (request.engram === undefined ? \"inherit\" : request.engram ? \"on\" : \"off\")\n || value.effectiveEnabled !== (request.engram ?? value.defaultEnabled)\n || request.savedModel && canonicalJson(request.savedModel) !== canonicalJson(value.savedModel))\n throw new OpenPondProtocolError(\"engram_selection_mismatch\", \"The admitted memory module differs from this exact Model or request.\");\n return value;\n}\n\nexport const EngramInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedEngramSelectionSchema,\n poolId: Id, routingBinding: z.object({id: Id, revision: z.number().int().positive()}).strict(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash, completedAt: z.iso.datetime(),\n}).strict();\nexport const EngramInferenceReceiptSchema = EngramInferenceReceiptContentSchema.extend({contentHash: Hash});\nexport type EngramInferenceReceipt = z.infer<typeof EngramInferenceReceiptSchema>;\nexport async function parseAndVerifyEngramInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; options: EngramInferenceOptions;\n selection: ResolvedEngramSelection; poolId: string; routingBinding: {id: string; revision: number};\n runtimeHash: string; workerImageDigest: string; engineGeneration: number; cacheNamespace: string;\n}) {\n const value = EngramInferenceReceiptSchema.parse(raw), {contentHash, ...content} = value;\n parseAndVerifyResolvedEngramSelection(value.selection, expected.options);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.requestId !== expected.requestId\n || value.requestHash !== expected.requestHash || canonicalJson(value.selection) !== canonicalJson(expected.selection)\n || value.poolId !== expected.poolId || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"engram_inference_receipt_mismatch\", \"The completed inference differs from its admitted memory module, runtime or cache.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelProjectBaseModelSchema, HostedModelProjectSummarySchema } from \"./model-projects.js\";\nimport { NeuronSteeringProfileSchema, parseAndVerifyNeuronSteeringProfile } from \"./neuron-steering.js\";\nimport { ActivationReferenceOutcomeSchema } from \"./activation-reference.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { EngramModelVersionSchema, parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { AlphaEditModelVersionSchema, NeuronTrainingModelVersionSchema,\n parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SteeringProfilePublicationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringProfilePublication.v1\"), id: Id, revision: z.literal(1),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: z.string().trim().min(1).max(200),\n baseModel: ModelProjectBaseModelSchema, profile: NeuronSteeringProfileSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash, variantId: Id}).strict(),\n calibrationEvidence: z.array(z.object({promptId: Id, calibration: ActivationReferenceOutcomeSchema.shape.calibration}).strict()).min(1).max(8),\n createdAt: z.iso.datetime(),\n}).strict();\nexport const SteeringProfilePublicationSchema = SteeringProfilePublicationContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfilePublication = z.infer<typeof SteeringProfilePublicationSchema>;\nexport async function parseAndVerifySteeringProfilePublication(raw: unknown, expected: {teamId?: string; ownerUserId?: string; id?: string} = {}) {\n const value = SteeringProfilePublicationSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyNeuronSteeringProfile(value.profile);\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId ||\n expected.ownerUserId && value.ownerUserId !== expected.ownerUserId || expected.id && value.id !== expected.id ||\n value.baseModel.modelId !== value.profile.model.modelId || value.baseModel.revision !== value.profile.model.revision ||\n new Set(value.calibrationEvidence.map(row => row.promptId)).size !== value.calibrationEvidence.length)\n throw new OpenPondProtocolError(\"steering_publication_mismatch\", \"The immutable steering profile differs from its exact source or workspace.\");\n return value;\n}\nexport const SteeringModelVersionContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringModelVersion.v1\"),\n teamId: Id, modelProjectId: Id, portableProjectId: Id, publication: SteeringProfilePublicationSchema, createdAt: z.iso.datetime()}).strict();\nexport const SteeringModelVersionSchema = SteeringModelVersionContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringModelVersion = z.infer<typeof SteeringModelVersionSchema>;\nexport const SavedModelVersionSchema = z.discriminatedUnion(\"schemaVersion\", [TrainingModelVersionSchema, SteeringModelVersionSchema, EngramModelVersionSchema, DecisionModelVersionSchema, AlphaEditModelVersionSchema, NeuronTrainingModelVersionSchema]);\nexport type SavedModelVersion = z.infer<typeof SavedModelVersionSchema>;\nexport async function parseAndVerifySavedModelVersion(raw: unknown, expected: {teamId?: string; modelProjectId?: string} = {}): Promise<SavedModelVersion> {\n const value = SavedModelVersionSchema.parse(raw);\n if (value.schemaVersion === \"openpond.trainingModelVersion.v1\") return parseAndVerifyTrainingModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.engramModelVersion.v1\") return parseAndVerifyEngramModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.decisionModelVersion.v1\") return parseAndVerifyDecisionModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.alphaEditModelVersion.v1\") return parseAndVerifyAlphaEditModelVersion(value, expected);\n if (value.schemaVersion === \"openpond.neuronTrainingModelVersion.v1\") return parseAndVerifyNeuronTrainingModelVersion(value, expected);\n const {contentHash, ...content} = value;\n await parseAndVerifySteeringProfilePublication(value.publication, expected);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== value.publication.teamId ||\n expected.teamId && value.teamId !== expected.teamId || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId)\n throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The saved steering Model version differs from its immutable publication.\");\n return value;\n}\nexport const SteeringProfileRecordContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfileRecord.v1\"),\n publication: SteeringProfilePublicationSchema, revision: z.number().int().positive(), archived: z.boolean(), updatedAt: z.iso.datetime()}).strict();\nexport const SteeringProfileRecordSchema = SteeringProfileRecordContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfileRecord = z.infer<typeof SteeringProfileRecordSchema>;\nexport async function parseAndVerifySteeringProfileRecord(raw: unknown, expected: {teamId?: string; ownerUserId?: string; id?: string} = {}) {\n const value = SteeringProfileRecordSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifySteeringProfilePublication(value.publication, expected);\n if (contentHash !== await canonicalSha256(content)) throw new OpenPondProtocolError(\"steering_profile_record_mismatch\", \"The retained profile record changed.\");\n return value;\n}\nexport const SteeringProfileSaveRequestSchema = z.object({teamId: Id, operationId: Id, executionId: Id, variantId: Id,\n resultHash: Hash, profileHash: Hash, name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(),\n expectedModelRevision: z.number().int().nonnegative()}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the exact existing Model revision, or create a new Model.\"});\nexport type SteeringProfileSaveRequest = z.infer<typeof SteeringProfileSaveRequestSchema>;\nexport const SteeringProfileArchiveRequestSchema = z.object({teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(), contentHash: Hash}).strict();\nexport const SteeringProfileReceiptContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfileReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, record: SteeringProfileRecordSchema,\n model: HostedModelProjectSummarySchema.nullable(), version: SteeringModelVersionSchema.nullable()}).strict();\nexport const SteeringProfileReceiptSchema = SteeringProfileReceiptContentSchema.extend({contentHash: Hash}).strict();\nexport type SteeringProfileReceipt = z.infer<typeof SteeringProfileReceiptSchema>;\nexport async function parseAndVerifySteeringProfileReceipt(raw: unknown, request: SteeringProfileSaveRequest | z.infer<typeof SteeringProfileArchiveRequestSchema>, id?: string) {\n const value = SteeringProfileReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifySteeringProfileRecord(value.record, {teamId: request.teamId, ownerUserId: value.actorId, id});\n const saving = \"executionId\" in request;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.operationId !== request.operationId ||\n value.requestHash !== await canonicalSha256(saving ? request : {id, request})) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"Retry the original steering Model command.\");\n if (saving) {\n const publication = value.record.publication;\n if (!value.model || !value.version || publication.source.executionId !== request.executionId || publication.source.variantId !== request.variantId ||\n publication.source.resultHash !== request.resultHash || publication.profile.contentHash !== request.profileHash || publication.name !== request.name ||\n value.model.name !== request.name || request.modelProjectId && value.model.id !== request.modelProjectId ||\n value.model.revision !== request.expectedModelRevision + 1) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The saved Model differs from the selected result variant.\");\n await parseAndVerifySavedModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id});\n if (canonicalJson(value.version.publication) !== canonicalJson(publication)) throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The Model version has a different publication.\");\n } else if (!value.record.archived || value.record.revision !== request.expectedRevision + 1 || value.record.publication.contentHash !== request.contentHash || value.model || value.version)\n throw new OpenPondProtocolError(\"steering_profile_receipt_mismatch\", \"The archive receipt differs from its original immutable profile.\");\n return value;\n}\nexport const SteeringProfileListQuerySchema = z.object({projectId: Id.optional(), modelProjectId: Id.optional(), archived: z.boolean().default(false), limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional()}).strict();\nexport const SteeringProfileSummarySchema = z.object({id: Id, teamId: Id, ownerUserId: Id, projectId: Id.nullable(), modelProjectId: Id, name: z.string().min(1).max(200), publicationHash: Hash, profileHash: Hash,\n baseModel: ModelProjectBaseModelSchema, source: SteeringProfilePublicationContentSchema.shape.source,\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: z.iso.datetime(), updatedAt: z.iso.datetime()}).strict();\nexport const SteeringProfileReadQuerySchema = z.object({teamId: Id}).strict();\nexport const SteeringProfilePageContentSchema = z.object({schemaVersion: z.literal(\"openpond.steeringProfilePage.v1\"), teamId: Id, ownerUserId: Id,\n query: SteeringProfileListQuerySchema, items: z.array(SteeringProfileSummarySchema).max(100), nextCursor: z.string().min(1).max(2048).nullable()}).strict();\nexport const SteeringProfilePageSchema = SteeringProfilePageContentSchema.extend({contentHash: Hash}).strict();\nexport const SavedModelVersionReadSchema = z.object({schemaVersion: z.literal(\"openpond.savedModelVersionRead.v1\"), teamId: Id, model: HostedModelProjectSummarySchema, version: SavedModelVersionSchema.nullable()}).strict();\nexport async function parseAndVerifySavedModelVersionRead(raw: unknown, teamId: string, modelProjectId: string, versionHash?: string) {\n const value = SavedModelVersionReadSchema.parse(raw);\n if (value.teamId !== teamId || value.model.teamId !== teamId || value.model.id !== modelProjectId) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"Choose this Model's workspace.\");\n if (versionHash !== undefined && value.version?.contentHash !== versionHash) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The response differs from the exact saved Model version.\");\n if (value.version) { await parseAndVerifySavedModelVersion(value.version, {teamId, modelProjectId});\n if (value.version.portableProjectId !== value.model.portableProjectId) throw new OpenPondProtocolError(\"saved_model_version_mismatch\", \"The saved version belongs to another Model.\"); }\n return value;\n}\nexport function createSteeringProfileClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveModificationResultModel(raw: SteeringProfileSaveRequest) { const body = SteeringProfileSaveRequestSchema.parse(raw);\n return parseAndVerifySteeringProfileReceipt(await request(\"/v1/training/steering-profiles\", {method: \"POST\", body: JSON.stringify(body)}), body); },\n async getSteeringProfile(teamId: string, id: string) { return parseAndVerifySteeringProfileRecord(await request(`/v1/training/steering-profiles/${encodeURIComponent(Id.parse(id))}?${new URLSearchParams({teamId: Id.parse(teamId)})}`), {teamId, id}); },\n async archiveSteeringProfile(id: string, raw: z.infer<typeof SteeringProfileArchiveRequestSchema>) { const body = SteeringProfileArchiveRequestSchema.parse(raw);\n return parseAndVerifySteeringProfileReceipt(await request(`/v1/training/steering-profiles/${encodeURIComponent(Id.parse(id))}/archive`, {method: \"POST\", body: JSON.stringify(body)}), body, id); },\n async listSteeringProfiles(teamId: string, raw: z.input<typeof SteeringProfileListQuerySchema> = {}) { const query = Object.fromEntries(Object.entries(SteeringProfileListQuerySchema.parse(raw)).filter(([, value]) => value !== undefined)) as z.infer<typeof SteeringProfileListQuerySchema>;\n const params = new URLSearchParams({teamId: Id.parse(teamId)}); for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = SteeringProfilePageSchema.parse(await request(`/v1/training/steering-profiles?${params}`)), {contentHash, ...content} = page;\n if (page.teamId !== teamId || canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content) || page.items.length > query.limit ||\n new Set(page.items.map(row => row.id)).size !== page.items.length || page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor))\n throw new OpenPondProtocolError(\"steering_profile_page_mismatch\", \"Refresh this profile history.\");\n for (const [index, item] of page.items.entries()) {\n if (item.teamId !== teamId || item.ownerUserId !== page.ownerUserId || query.projectId && item.projectId !== query.projectId || query.modelProjectId && item.modelProjectId !== query.modelProjectId || item.archived !== query.archived || index && page.items[index - 1]!.id >= item.id) throw new OpenPondProtocolError(\"steering_profile_page_mismatch\", \"The profile list scope changed.\"); }\n return page; },\n async modelVersion(modelProjectId: string, query: {teamId: string; versionHash?: string}) {\n const params = new URLSearchParams({teamId: Id.parse(query.teamId)});\n if (query.versionHash !== undefined) params.set(\"versionHash\", Hash.parse(query.versionHash));\n return parseAndVerifySavedModelVersionRead(await request(`/v1/training/models/${encodeURIComponent(Id.parse(modelProjectId))}/version?${params}`), query.teamId, modelProjectId, query.versionHash);\n },\n };\n}\n\nexport type SteeringProfilePage = z.infer<typeof SteeringProfilePageSchema>;\nexport type SteeringProfileSummary = z.infer<typeof SteeringProfileSummarySchema>;\n","import { z } from \"zod\";\nimport { SavedSteeringModelSelectionSchema, SteeringPublicationReferenceSchema } from \"./steering-model-selection.js\";\n\n/** Compact untrusted authoring provenance. Resolve and verify the full saved\n * version before using its profile; these pins alone grant no authority. */\nexport const SavedSteeringExperimentSourceSchema = SavedSteeringModelSelectionSchema.extend({\n publication: SteeringPublicationReferenceSchema,\n profileHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict();\nexport type SavedSteeringExperimentSource = z.infer<typeof SavedSteeringExperimentSourceSchema>;\nexport const ActivationStartingProfileSchema = SavedSteeringExperimentSourceSchema.extend({\n variantId: z.string().trim().min(1).max(500),\n}).strict();\n\n/** The full source stays with authoring/resolution; request hashes bind its\n * compact provenance even when a prepare command omits the authoring form. */\nexport function activationStartingProfileSource(value: z.infer<typeof ActivationStartingProfileSchema>): SavedSteeringExperimentSource {\n const {variantId: _variant, ...source} = ActivationStartingProfileSchema.parse(value);\n return source;\n}\n","import { z } from \"zod\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** An immutable publication identity, never a mutable profile record revision. */\nexport const SteeringPublicationReferenceSchema = z.object({\n id: Id, revision: z.number().int().positive(), contentHash: Hash,\n}).strict();\nexport type SteeringPublicationReference = z.infer<typeof SteeringPublicationReferenceSchema>;\n\n/** Pins a saved Model without copying its publication or result evidence. */\nexport const SavedSteeringModelSelectionSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n}).strict();\nexport type SavedSteeringModelSelection = z.infer<typeof SavedSteeringModelSelectionSchema>;\n","import { ActivationStartingProfileSchema } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronSteeringModelSchema, NeuronSteeringProfileSchema, parseAndVerifyNeuronSteeringProfile } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ActivationReferencePromptSchema = z.object({ id: Id,\n tokenIds: z.array(z.number().int().nonnegative().max(2_147_483_647)).min(1).max(4096),\n attentionMask: z.array(z.union([z.literal(0), z.literal(1)])).min(1).max(4096),\n}).strict().superRefine((value, ctx) => {\n if (value.tokenIds.length !== value.attentionMask.length || !value.attentionMask.some(Boolean) || value.attentionMask.at(-1) !== 1)\n ctx.addIssue({ code: \"custom\", message: \"Use matching tokens and a nonempty left-padded prompt.\" });\n let foundToken = false;\n for (const mask of value.attentionMask) {\n if (mask) foundToken = true;\n else if (foundToken) ctx.addIssue({ code: \"custom\", path: [\"attentionMask\"], message: \"The reference admits only contiguous left padding.\" });\n }\n});\nexport const ActivationReferenceRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.activationReferenceRequest.v1\"), model: NeuronSteeringModelSchema,\n startingProfile: ActivationStartingProfileSchema.optional(),\n prompts: z.array(ActivationReferencePromptSchema).min(1).max(8),\n variants: z.array(z.object({ id: Id, profile: z.lazy(() => NeuronSteeringProfileSchema).nullable() }).strict()).min(1).max(17),\n capture: z.array(z.object({ layer: z.number().int().nonnegative().max(511),\n neurons: z.array(z.number().int().nonnegative().max(9_999_999)).min(1).max(64) }).strict()).min(1).max(64),\n maxNewTokens: z.number().int().nonnegative().max(128), eosTokenIds: z.array(z.number().int().nonnegative().max(2_147_483_647)).max(16),\n maximumCapturedValues: z.number().int().positive().max(65_536),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000), maximumDurationSeconds: z.number().finite().positive().max(300),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.prompts.map(item => item.id)).size !== value.prompts.length || new Set(value.variants.map(item => item.id)).size !== value.variants.length)\n ctx.addIssue({ code: \"custom\", message: \"Prompt and variant IDs must be unique.\" });\n if (value.startingProfile) {\n const reference = value.variants.find(row => row.id === value.startingProfile!.variantId);\n if (!reference?.profile || reference.profile.contentHash !== value.startingProfile.profileHash || !value.variants.some(row => row.profile === null))\n ctx.addIssue({code: \"custom\", path: [\"startingProfile\"], message: \"Retain the exact saved profile variant and a separate Off control.\"});\n }\n const seen = new Set<string>();\n for (const row of value.capture) for (const neuron of row.neurons) {\n const key = `${row.layer}:${neuron}`;\n if (seen.has(key) || neuron >= (value.model.intermediateSizes[row.layer] ?? 0)) ctx.addIssue({ code: \"custom\", path: [\"capture\"], message: \"Capture coordinates must be unique and inside the model.\" });\n seen.add(key);\n }\n});\nexport type ActivationReferenceRequest = z.infer<typeof ActivationReferenceRequestSchema>;\nexport async function parseAndVerifyActivationReferenceRequest(raw: unknown) {\n const value = ActivationReferenceRequestSchema.parse(raw);\n for (const variant of value.variants) if (variant.profile) await parseAndVerifyNeuronSteeringProfile(variant.profile, value.model);\n const coordinates = value.capture.reduce((sum, row) => sum + row.neurons.length, 0), n = value.maxNewTokens;\n const captures = value.prompts.reduce((sum, row) => sum + row.attentionMask.filter(Boolean).length + n, 0) * value.variants.length * coordinates * 2;\n const work = value.prompts.reduce((sum, prompt) => sum + value.variants.reduce((subtotal, variant) => subtotal\n + (n + 1) * prompt.tokenIds.length + n * (n + 1) / 2\n + (variant.profile?.normalization.mode === \"baseline_prompt_residual_median\" ? prompt.tokenIds.length : 0), 0), 0);\n if (captures > value.maximumCapturedValues || work > value.maximumForwardTokenWork)\n throw new OpenPondProtocolError(\"activation_reference_budget_exceeded\", \"The full requested capture and forward work exceed their declared bounds.\");\n return value;\n}\n\nexport const ActivationReferenceCaptureSchema = z.object({ promptId: Id, variantId: Id,\n layer: z.number().int().nonnegative(), neuron: z.number().int().nonnegative(), tokenIndex: z.number().int().nonnegative(),\n tokenId: z.number().int().nonnegative(), before: z.number().finite(), after: z.number().finite(),\n}).strict();\nexport const ActivationReferenceOutcomeSchema = z.object({ promptId: Id, variantId: Id, profileHash: Hash.nullable(),\n generatedTokenIds: z.array(z.number().int().nonnegative()).max(128), forwardTokenWork: z.number().int().positive(),\n calibration: z.array(z.object({ layer: z.number().int().nonnegative(), median: z.number().finite().positive(), sampleCount: z.number().int().positive(),\n columnNorms: z.array(z.object({ neuron: z.number().int().nonnegative(), norm: z.number().finite().positive() }).strict()).max(64),\n }).strict()).max(64), durationMs: z.number().finite().nonnegative(), captureCount: z.number().int().nonnegative(),\n}).strict();\nexport const ActivationReferenceResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.activationReferenceResult.v1\"), requestHash: Hash, modelHash: Hash,\n runtime: z.object({ implementation: z.literal(\"torch_dense_serial_reference_v1\"), implementationHash: Hash, torchVersion: Id, device: Id }).strict(),\n outcomes: z.array(ActivationReferenceOutcomeSchema).min(1).max(136), captures: z.array(ActivationReferenceCaptureSchema).max(32_768),\n}).strict();\nexport const ActivationReferenceResultSchema = ActivationReferenceResultContentSchema.extend({ contentHash: Hash }).strict();\nexport type ActivationReferenceResult = z.infer<typeof ActivationReferenceResultSchema>;\nexport async function parseAndVerifyActivationReferenceResult(raw: unknown, input: ActivationReferenceRequest) {\n const request = await parseAndVerifyActivationReferenceRequest(input), value = ActivationReferenceResultSchema.parse(raw), { contentHash, ...content } = value;\n const fail = () => { throw new OpenPondProtocolError(\"activation_reference_result_mismatch\", \"The inspection differs from its exact prompt, model, intervention or capture bounds.\"); };\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.captures.length * 2 > request.maximumCapturedValues\n || value.outcomes.length !== request.prompts.length * request.variants.length\n || value.outcomes.reduce((sum, row) => sum + row.forwardTokenWork, 0) > request.maximumForwardTokenWork) fail();\n const pairs = new Set<string>(), counts = new Map<string, number>(), captureKeys = new Set<string>();\n const prompts = new Map(request.prompts.map(row => [row.id, row])), variants = new Map(request.variants.map(row => [row.id, row]));\n for (const capture of value.captures) {\n const key = JSON.stringify([capture.promptId, capture.variantId]), token = JSON.stringify([key, capture.layer, capture.neuron, capture.tokenIndex]);\n if (captureKeys.has(token) || !prompts.has(capture.promptId) || !variants.has(capture.variantId)\n || !request.capture.some(row => row.layer === capture.layer && row.neurons.includes(capture.neuron))) fail();\n captureKeys.add(token); counts.set(key, (counts.get(key) ?? 0) + 1);\n }\n for (const row of value.outcomes) {\n const key = JSON.stringify([row.promptId, row.variantId]), prompt = prompts.get(row.promptId), variant = variants.get(row.variantId);\n if (!prompt || !variant || pairs.has(key) || row.profileHash !== (variant?.profile?.contentHash ?? null)\n || row.generatedTokenIds.length > request.maxNewTokens || row.captureCount !== (counts.get(key) ?? 0)) fail();\n pairs.add(key);\n const tokenIds = prompt!.tokenIds.filter((_, index) => prompt!.attentionMask[index] === 1).concat(row.generatedTokenIds);\n const n = row.generatedTokenIds.length, coordinates = request.capture.reduce((sum, item) => sum + item.neurons.length, 0);\n const work = (n + 1) * prompt!.tokenIds.length + n * (n + 1) / 2\n + (variant!.profile?.normalization.mode === \"baseline_prompt_residual_median\" ? prompt!.tokenIds.length : 0);\n if (row.captureCount !== tokenIds.length * coordinates || row.forwardTokenWork !== work\n || variant!.profile === null && row.calibration.length !== 0) fail();\n if (n < request.maxNewTokens && (!n || !request.eosTokenIds.includes(row.generatedTokenIds[n - 1]!))\n || row.generatedTokenIds.slice(0, -1).some(token => request.eosTokenIds.includes(token))) fail();\n if (variant!.profile) {\n const targets = new Map<number, Set<number>>();\n for (const entry of variant!.profile.entries) { const neurons = targets.get(entry.layer) ?? new Set<number>(); neurons.add(entry.neuron); targets.set(entry.layer, neurons); }\n if (row.calibration.length !== targets.size || new Set(row.calibration.map(item => item.layer)).size !== targets.size\n || row.calibration.some(item => !targets.has(item.layer) || item.columnNorms.length !== targets.get(item.layer)!.size\n || new Set(item.columnNorms.map(column => column.neuron)).size !== item.columnNorms.length\n || item.columnNorms.some(column => !targets.get(item.layer)!.has(column.neuron))\n || variant!.profile!.normalization.mode === \"baseline_prompt_residual_median\" && item.sampleCount !== tokenIds.length - n - 1)) fail();\n }\n if (value.captures.some(capture => capture.promptId === row.promptId && capture.variantId === row.variantId && tokenIds[capture.tokenIndex] !== capture.tokenId)) fail();\n }\n return value;\n}\n","import { z } from \"zod\";\nimport { TrainingJobSchema, TrainingJobOutputsSchema, TrainingJobSourceSchema } from \"./training-job-contracts.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingResultSourceSchema = z.object({\n submissionHash: Hash,\n source: z.lazy(() => TrainingJobSourceSchema),\n baseModel: ModelProjectBaseModelSchema,\n recipe: z.record(z.string(), z.unknown()),\n}).strict();\nexport const TrainingResultCandidateSchema = z.object({\n artifact: ModelProjectImmutableRefSchema,\n checkpointId: Id,\n /** Canonical registry publication is independent of saving a named Model. */\n registryArtifactId: Id.nullable(),\n composition: z.enum([\"base\", \"residual_append\", \"shared\", \"sequential_merge\"]),\n parent: z.object({ jobId: Id, artifact: ModelProjectImmutableRefSchema, checkpointId: Id }).strict().nullable(),\n}).strict();\nexport const TrainingModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingModelVersion.v1\"),\n teamId: Id, modelProjectId: Id, portableProjectId: Id, jobId: Id,\n request: TrainingResultSourceSchema,\n candidate: TrainingResultCandidateSchema.omit({ registryArtifactId: true }),\n executionReceipt: ModelProjectImmutableRefSchema,\n createdAt: z.string().datetime({ offset: true }),\n}).strict();\nexport const TrainingModelVersionSchema = TrainingModelVersionContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingModelVersion = z.infer<typeof TrainingModelVersionSchema>;\n\nexport async function parseAndVerifyTrainingModelVersion(raw: unknown, expected: { teamId?: string; modelProjectId?: string; jobId?: string } = {}) {\n const value = TrainingModelVersionSchema.parse(raw);\n const { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId && value.teamId !== expected.teamId\n || expected.modelProjectId && value.modelProjectId !== expected.modelProjectId\n || expected.jobId && value.jobId !== expected.jobId\n || value.request.source.modelProject.id !== value.modelProjectId\n || value.request.source.modelProject.portableProjectId !== value.portableProjectId\n || (value.candidate.composition === \"base\") !== (value.candidate.parent === null))\n throw new OpenPondProtocolError(\"training_model_version_mismatch\", \"The saved Model version differs from its original training result.\");\n return value;\n}\nexport const TrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResult.v1\"),\n teamId: Id,\n name: z.string().min(1).max(500),\n job: z.lazy(() => TrainingJobSchema),\n model: z.lazy(() => HostedModelProjectSummarySchema).nullable(),\n savedVersion: TrainingModelVersionSchema.nullable(),\n request: TrainingResultSourceSchema.nullable(),\n outputs: z.lazy(() => TrainingJobOutputsSchema),\n candidate: TrainingResultCandidateSchema.nullable(),\n candidateState: z.enum([\"not_finished\", \"request_unavailable\", \"qualification_only\", \"not_model_training\", \"cleanup_pending\", \"artifact_pending\", \"retained\"]),\n}).strict();\nexport const TrainingResultSchema = TrainingResultContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingResult = z.infer<typeof TrainingResultSchema>;\n\n/** Verify an exact result read without interpreting retained weights as serving\n * readiness, quality approval or authority to start another training Job. */\nexport async function parseAndVerifyTrainingResult(raw: unknown, expected: { teamId?: string; jobId: string }) {\n const value = TrainingResultSchema.parse(raw);\n const { contentHash, ...content } = value;\n function fail(): never { throw new OpenPondProtocolError(\"training_result_mismatch\", \"The trained result differs from its producing Job, request or outputs.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== value.job.teamId\n || value.job.id !== expected.jobId || expected.teamId && value.teamId !== expected.teamId\n || value.outputs.outputs.some(output => output.jobId !== value.job.id)\n || new Set(value.outputs.outputs.map(output => output.id)).size !== value.outputs.outputs.length) fail();\n if (value.model && (value.model.id !== value.job.modelProjectId || value.model.teamId !== value.teamId\n || value.model.portableProjectId !== value.job.portableProjectId)) fail();\n const request = value.request;\n if (request && (request.submissionHash !== value.job.submissionHash\n || request.source.modelProject.id !== value.job.modelProjectId\n || request.source.modelProject.portableProjectId !== value.job.portableProjectId\n || request.source.modelProject.revision !== value.job.sourceProjectRevision)) fail();\n const receipt = value.outputs.receipt;\n const payloadOutputs = value.outputs.outputs.filter(output => output.kind !== \"receipt\");\n const receiptOutputs = value.outputs.outputs.filter(output => output.kind === \"receipt\");\n if (receipt && (receipt.jobId !== value.job.id || receipt.teamId !== value.teamId\n || receipt.submissionHash !== value.job.submissionHash\n || receipt.outputs.length !== payloadOutputs.length\n || payloadOutputs.some(output => !receipt.outputs.some(ref => ref.id === output.id && ref.contentHash === output.contentHash))\n || new Set(receipt.outputs.map(ref => ref.id)).size !== receipt.outputs.length)) fail();\n // The receipt's recipeHash identifies the compiled worker recipe, while\n // request.recipe retains the original public training settings.\n if (receipt && request && receipt.manifestHash !== request.source.harnessRunManifest.contentHash) fail();\n if (receiptOutputs.length > 1 || !receipt && receiptOutputs.length\n || receiptOutputs[0] && (receiptOutputs[0].id !== `${receipt!.id}:output`\n || receiptOutputs[0].contentHash !== await canonicalSha256(receipt))) fail();\n if ((value.candidate !== null) !== (value.candidateState === \"retained\")) fail();\n if (value.candidate) {\n const candidate = value.candidate;\n const artifact = value.outputs.outputs.find(output => output.id === candidate.artifact.id && output.contentHash === candidate.artifact.contentHash);\n if (!request || value.job.state !== \"succeeded\" || value.job.kind !== \"policy_optimize\" || value.job.executionMode\n || !receipt?.cleanupComplete || !artifact || artifact.kind !== \"adapter\"\n || artifact.metadata.checkpointId !== candidate.checkpointId\n || candidate.composition === \"base\" && candidate.parent !== null\n || candidate.composition !== \"base\" && candidate.parent === null) fail();\n for (const ref of [request.source.harnessRunManifest, request.source.harnessRelease, request.source.tasksetRelease, request.source.dataset, ...request.source.evidenceSets])\n if (!receipt!.inputs.some(item => item.id === ref.id && item.contentHash === ref.contentHash)) fail();\n }\n if (value.savedVersion) {\n const saved = await parseAndVerifyTrainingModelVersion(value.savedVersion, { teamId: value.teamId, modelProjectId: value.job.modelProjectId, jobId: value.job.id });\n const candidate = value.candidate;\n if (!request || !candidate) fail();\n const { registryArtifactId: _registry, ...savedCandidate } = candidate;\n if (await canonicalSha256(saved.request) !== await canonicalSha256(request)\n || await canonicalSha256(saved.candidate) !== await canonicalSha256(savedCandidate)) fail();\n }\n return value;\n}\n\nexport function createTrainingResultClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async result(jobId: string, expected: { teamId?: string } = {}) {\n const id = Id.parse(jobId);\n return parseAndVerifyTrainingResult(await request(`/v1/training/jobs/${encodeURIComponent(id)}/result`), { ...expected, jobId: id });\n } };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { DecisionTrainingRequestSchema, DecisionTrainingResultSchema, parseAndVerifyDecisionTrainingRequest } from \"./decision-model-training.js\";\nimport { parseAndVerifyDecisionAdapterArtifact } from \"./decision-model-artifact.js\";\nimport { DecisionExperimentFormDraftSchema, SavedDecisionExperimentSourceSchema,\n type DecisionExperimentFormDraft, type SavedDecisionExperimentSource } from \"./decision-experiment-draft.js\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionModelVersionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelVersion.v1\"),\n teamId: Id, ownerUserId: Id, modelProjectId: Id, portableProjectId: Id,\n baseModel: ModelProjectBaseModelSchema, request: DecisionTrainingRequestSchema,\n source: z.object({ executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash }).strict(),\n artifact: DecisionTrainingResultSchema.shape.artifact, createdAt: z.iso.datetime(),\n}).strict();\nexport const DecisionModelVersionSchema = DecisionModelVersionContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelVersion = z.infer<typeof DecisionModelVersionSchema>;\n\n/** Verifies an immutable metadata publication. Only the authenticated execution\n * owner can establish that resultHash names its actual completed result and\n * that every artifact file was committed; no numerical evidence is invented. */\nexport async function parseAndVerifyDecisionModelVersion(raw: unknown, expected: {\n teamId?: string; modelProjectId?: string; ownerUserId?: string; versionHash?: string;\n} = {}) {\n assertBoundedTaskJson(raw, 524_288);\n const value = DecisionModelVersionSchema.parse(raw), { contentHash, ...content } = value;\n const request = await parseAndVerifyDecisionTrainingRequest(value.request);\n const manifest = await parseAndVerifyDecisionAdapterArtifact(value.artifact.manifest, {\n model: request.model, inputHash: await canonicalSha256(request), recipeHash: await canonicalSha256(request.training),\n dataHash: await canonicalSha256(request.data), runtimeHash: value.source.runtimeHash,\n parentArtifactHash: request.parentArtifact?.contentHash ?? null,\n });\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_version_mismatch\", \"The saved decision Model differs from its exact trained source, runtime or committed artifact.\"); }\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId !== undefined && value.teamId !== expected.teamId\n || expected.modelProjectId !== undefined && value.modelProjectId !== expected.modelProjectId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || expected.versionHash !== undefined && value.contentHash !== expected.versionHash\n || canonicalJson(value.baseModel) !== canonicalJson(request.model.source)\n || value.source.inputHash !== manifest.pins.inputHash || value.artifact.contentHash !== manifest.contentHash\n || new Set(value.artifact.files.map(file => file.path)).size !== 4\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n const tensor = value.artifact.files.find(file => file.path === \"adapter_model.safetensors\");\n if (!tensor || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes) fail();\n for (const [path, payload] of [\n [\"manifest.json\", manifest], [\"adapter_config.json\", manifest.adapterConfig], [\"decision_contract.json\", manifest.contract],\n ] as const) {\n const file = value.artifact.files.find(row => row.path === path);\n if (!file || file.sha256 !== await canonicalSha256(payload) || file.sizeBytes !== canonicalJsonByteLength(payload) || file.sizeBytes > 262_144) fail();\n }\n return value;\n}\n\nexport async function verifySavedDecisionExperimentSource(source: SavedDecisionExperimentSource, raw: unknown, expected: {\n teamId?: string; ownerUserId?: string;\n} = {}) {\n const pin = SavedDecisionExperimentSourceSchema.parse(source);\n const version = await parseAndVerifyDecisionModelVersion(raw, { ...expected, modelProjectId: pin.modelProjectId, versionHash: pin.versionHash });\n if (version.artifact.id !== pin.artifact.id || version.artifact.contentHash !== pin.artifact.contentHash\n || await canonicalSha256(version.request.model) !== pin.modelHash)\n throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"Retain the exact saved decision Model and trained adapter.\");\n return version;\n}\n\n/** Reuses the current editable train/score form and its original data, limits,\n * name and cap. The selected exact saved artifact replaces its source; its\n * released backbone is ancestry, never a substitute for the learned adapter. */\nexport async function decisionFormFromModelVersion(form: DecisionExperimentFormDraft, raw: unknown, expected: {\n teamId?: string; ownerUserId?: string;\n} = {}): Promise<DecisionExperimentFormDraft> {\n const current = DecisionExperimentFormDraftSchema.parse(form), version = await parseAndVerifyDecisionModelVersion(raw, expected);\n return DecisionExperimentFormDraftSchema.parse({ ...current, baseModel: version.baseModel,\n parentArtifact: { id: version.artifact.id, contentHash: version.artifact.contentHash },\n startingDecision: { modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash }, modelHash: await canonicalSha256(version.request.model) },\n });\n}\n\nexport const DecisionResultSaveRequestSchema = z.object({\n teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId === null ? value.expectedModelRevision === 0 : value.expectedModelRevision > 0,\n { message: \"Retain the exact existing Model revision, or create a new Model.\" });\nexport type DecisionResultSaveRequest = z.infer<typeof DecisionResultSaveRequestSchema>;\nexport const DecisionResultSaveReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionResultSaveReceipt.v1\"), teamId: Id, actorId: Id,\n operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema, version: DecisionModelVersionSchema,\n}).strict();\nexport const DecisionResultSaveReceiptSchema = DecisionResultSaveReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionResultSaveReceipt = z.infer<typeof DecisionResultSaveReceiptSchema>;\nexport async function parseAndVerifyDecisionResultSaveReceipt(raw: unknown, input: DecisionResultSaveRequest, actorId?: string) {\n const request = DecisionResultSaveRequestSchema.parse(input), value = DecisionResultSaveReceiptSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyDecisionModelVersion(value.version, { teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId });\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || actorId !== undefined && value.actorId !== actorId || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(request) || value.version.source.executionId !== request.executionId\n || value.version.source.resultHash !== request.resultHash || value.version.artifact.contentHash !== request.artifactHash\n || value.model.name !== request.name || value.model.revision !== request.expectedModelRevision + 1\n || request.modelProjectId !== null && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"decision_model_save_mismatch\", \"The saved Model differs from the original decision training result, artifact or Model revision.\");\n return value;\n}\nexport function createDecisionModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveDecisionResultModel(raw: DecisionResultSaveRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const body = DecisionResultSaveRequestSchema.parse(raw);\n return parseAndVerifyDecisionResultSaveReceipt(await request(`/v1/training/modification-executions/${encodeURIComponent(body.executionId)}/model`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), body, options?.actorId);\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport {\n DECISION_ADAPTER_MAXIMUM_BYTES, DECISION_PROMPT_CODE_SHA256,\n DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity, type DecisionModelIdentity,\n} from \"./decision-model.js\";\nimport { DecisionArtifactReferenceSchema } from \"./decision-model-data.js\";\nimport {\n DecisionAdapterArtifactSchema, DecisionModuleFileSchema,\n parseAndVerifyDecisionAdapterArtifact,\n} from \"./decision-model-artifact.js\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.001),\n weightDecay: z.number().finite().min(0).max(0.1),\n maxSteps: z.number().int().min(1).max(4096),\n gradientAccumulationSteps: z.number().int().min(1).max(64),\n maximumPromptTokens: z.number().int().min(1).max(2048),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().min(173_113_345).max(DECISION_ADAPTER_MAXIMUM_BYTES),\n}).strict();\nexport type DecisionTrainingSettings = z.infer<typeof DecisionTrainingSettingsSchema>;\nexport const DecisionTrainingDataSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport type DecisionTrainingData = z.infer<typeof DecisionTrainingDataSchema>;\n\nexport const DecisionSupervisedEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionSupervisedEncoding.v1\"),\n implementation: z.literal(\"nimble_reference_candidate_logits_v1\"),\n modelHash: Hash, tokenizerHash: Hash,\n promptCodeSha256: z.literal(DECISION_PROMPT_CODE_SHA256),\n maximumPromptTokens: z.number().int().min(1).max(2048),\n stateEncoding: z.literal(\"canonical_json_utf8_v1\"), integerLevels: z.literal(\"decimal_enum_strings_v1\"),\n labelsOutsidePrompt: z.literal(true), objective: z.literal(\"candidate_cross_entropy_v1\"),\n temperature: z.literal(1), enableThinking: z.literal(false), truncation: z.literal(false),\n microBatchSize: z.literal(1),\n}).strict();\nexport type DecisionSupervisedEncoding = z.infer<typeof DecisionSupervisedEncodingSchema>;\n\n/** This declares a reproducible encoder/objective, not measured token rows or\n * a grant to train. The Dataset owner must resolve and authorize the reviewed\n * batch; the trainer must verify actual prompt/candidate boundary tokenization. */\nexport async function decisionSupervisedEncoding(model: DecisionModelIdentity, maximumPromptTokens: number) {\n const verified = await parseAndVerifyDecisionModelIdentity(model);\n return DecisionSupervisedEncodingSchema.parse({\n schemaVersion: \"openpond.decisionSupervisedEncoding.v1\", implementation: \"nimble_reference_candidate_logits_v1\",\n modelHash: await canonicalSha256(verified), tokenizerHash: verified.tokenizer.contentHash,\n promptCodeSha256: DECISION_PROMPT_CODE_SHA256, maximumPromptTokens,\n stateEncoding: \"canonical_json_utf8_v1\", integerLevels: \"decimal_enum_strings_v1\",\n labelsOutsidePrompt: true, objective: \"candidate_cross_entropy_v1\", temperature: 1,\n enableThinking: false, truncation: false, microBatchSize: 1,\n });\n}\n\nexport const DecisionTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionTrainingRequest.v1\"),\n model: DecisionModelIdentitySchema, data: DecisionTrainingDataSchema,\n training: DecisionTrainingSettingsSchema,\n // Null initializes the exact released Nimble adapter, never random LoRA or a bare base.\n parentArtifact: DecisionArtifactReferenceSchema.nullable(),\n}).strict();\nexport type DecisionTrainingRequest = z.infer<typeof DecisionTrainingRequestSchema>;\nexport async function parseAndVerifyDecisionTrainingRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = DecisionTrainingRequestSchema.parse(raw);\n if (value.data.encodingHash !== await canonicalSha256(await decisionSupervisedEncoding(value.model, value.training.maximumPromptTokens)))\n throw new OpenPondProtocolError(\"decision_encoding_mismatch\", \"The decision request differs from its exact candidate-only supervised encoder.\");\n return value;\n}\n\nexport const DecisionTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionTrainingResult.v1\"),\n inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash, preparedRowsHash: Hash,\n initialAdapterSourceHash: Hash,\n optimizerSteps: z.number().int().min(1).max(4096),\n examplesProcessed: z.number().int().min(1).max(262_144),\n questionRowsProcessed: z.number().int().min(1).max(262_144),\n targetTokens: z.number().int().min(1).max(262_144),\n forwardTokenWork: z.number().int().positive().max(536_870_912),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n trainableParameterCount: z.literal(43_278_336),\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n frozenBackboneState: z.object({\n algorithm: z.literal(\"torch_state_dict_sha256_v1\"), sourceManifestHash: Hash,\n before: Hash, after: Hash,\n }).strict(),\n artifact: z.object({\n id: z.string().min(1).max(500), contentHash: Hash,\n manifest: DecisionAdapterArtifactSchema, files: z.array(DecisionModuleFileSchema).length(4),\n }).strict(),\n}).strict();\nexport const DecisionTrainingResultSchema = DecisionTrainingResultContentSchema.extend({ contentHash: Hash });\nexport type DecisionTrainingResult = z.infer<typeof DecisionTrainingResultSchema>;\n\n/** Sealed metadata is necessary but not sufficient for a trained Model. Actual\n * custody/producer authentication and native frozen-state measurement remain\n * owner responsibilities. A measured torch-state hash is never compared to a\n * source-file manifest hash; the algorithm and source provenance stay distinct. */\nexport async function parseAndVerifyDecisionTrainingResult(raw: unknown, expected: {\n request: DecisionTrainingRequest; runtimeHash: string;\n}) {\n assertBoundedTaskJson(raw, 524_288);\n const request = await parseAndVerifyDecisionTrainingRequest(expected.request);\n const value = DecisionTrainingResultSchema.parse(raw), { contentHash, ...content } = value;\n const manifest = await parseAndVerifyDecisionAdapterArtifact(value.artifact.manifest, {\n model: request.model, inputHash: await canonicalSha256(request),\n recipeHash: await canonicalSha256(request.training), dataHash: await canonicalSha256(request.data),\n runtimeHash: Hash.parse(expected.runtimeHash), parentArtifactHash: request.parentArtifact?.contentHash ?? null,\n });\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_training_result_mismatch\", \"The decision result differs from its exact run, frozen backbone evidence or committed artifact.\"); };\n if (contentHash !== await canonicalSha256(content)\n || value.inputHash !== manifest.pins.inputHash || value.modelHash !== await canonicalSha256(request.model)\n || value.runtimeHash !== expected.runtimeHash || value.dataHash !== manifest.pins.dataHash\n || value.initialAdapterSourceHash !== (request.parentArtifact?.contentHash ?? request.model.originalAdapter.contentHash)\n || value.optimizerSteps !== request.training.maxSteps\n || value.questionRowsProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.examplesProcessed > value.questionRowsProcessed || value.targetTokens !== value.questionRowsProcessed\n || value.forwardTokenWork < value.questionRowsProcessed\n || value.forwardTokenWork > value.questionRowsProcessed * request.training.maximumPromptTokens\n || value.durationMs > request.training.maxDurationSeconds * 1000\n || value.frozenBackboneState.sourceManifestHash !== request.model.backbone.source.contentHash\n || value.frozenBackboneState.before !== value.frozenBackboneState.after\n || value.artifact.contentHash !== manifest.contentHash\n || new Set(value.artifact.files.map(file => file.path)).size !== 4\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n const tensor = value.artifact.files.find(file => file.path === \"adapter_model.safetensors\");\n if (!tensor || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes) fail();\n for (const [path, payload] of [\n [\"manifest.json\", manifest], [\"adapter_config.json\", manifest.adapterConfig], [\"decision_contract.json\", manifest.contract],\n ] as const) {\n const file = value.artifact.files.find(row => row.path === path);\n // Metadata files are canonical JSON UTF-8 with no trailing newline.\n if (!file || file.sha256 !== await canonicalSha256(payload)\n || file.sizeBytes !== canonicalJsonByteLength(payload)\n || file.sizeBytes > 262_144) fail();\n }\n // Include all original parent/source and authored setting fields in the run hash.\n if (canonicalJson(request.model) !== canonicalJson(manifest.model)) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const DECISION_SOURCE_REPOSITORY = \"bespokelabs/Bespoke-Nimble-9B\";\nexport const DECISION_SOURCE_REVISION = \"e93fabce8fcee46e7e8b45e2d955b8a4f0035917\";\nexport const DECISION_BACKBONE_REPOSITORY = \"Qwen/Qwen3.5-9B\";\nexport const DECISION_BACKBONE_REVISION = \"c202236235762e1c871ad0ccb60c8ee5ba337b9a\";\nexport const DECISION_PROMPT_CODE_SHA256 = \"a0a0f94d0f65e972bc20d088678ad3d595ff1c42b9c0d78f96034526303f63fc\";\nexport const DECISION_CHAT_TEMPLATE_SHA256 = \"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715\";\nexport const DECISION_ADAPTER_MAXIMUM_BYTES = 268_435_456;\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DecisionSourceFileSchema = z.object({\n path: z.string().regex(/^[A-Za-z0-9_.-]{1,120}$/), sha256: Hash,\n sizeBytes: z.number().int().positive().max(25_000_000_000),\n}).strict();\nexport const DecisionSourceManifestContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionSourceManifest.v1\"),\n repository: z.enum([DECISION_SOURCE_REPOSITORY, DECISION_BACKBONE_REPOSITORY]),\n revision: z.string().regex(/^[a-f0-9]{40}$/),\n files: z.array(DecisionSourceFileSchema).min(1).max(16),\n}).strict();\nexport const DecisionSourceManifestSchema = DecisionSourceManifestContentSchema.extend({ contentHash: Hash });\nexport type DecisionSourceManifest = z.infer<typeof DecisionSourceManifestSchema>;\n\nexport const DecisionModelIdentityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelIdentity.v1\"),\n source: ModelProjectBaseModelSchema,\n backbone: z.object({\n architecture: z.literal(\"Qwen3_5ForConditionalGeneration\"), modelType: z.literal(\"qwen3_5\"),\n dtype: z.literal(\"bfloat16\"),\n weightIdentity: z.literal(\"source_file_manifest_sha256_v1\"),\n source: DecisionSourceManifestSchema,\n }).strict(),\n originalAdapter: DecisionSourceManifestSchema,\n tokenizer: DecisionSourceManifestSchema,\n reference: DecisionSourceManifestSchema,\n license: z.object({ spdx: z.literal(\"Apache-2.0\"), files: z.array(DecisionSourceManifestSchema).length(2) }).strict(),\n}).strict();\nexport const DecisionModelIdentitySchema = DecisionModelIdentityContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelIdentity = z.infer<typeof DecisionModelIdentitySchema>;\n\ntype SourceFile = z.infer<typeof DecisionSourceFileSchema>;\nconst file = (path: string, sizeBytes: number, sha256: string): SourceFile => ({ path, sizeBytes, sha256 });\nconst backboneFiles = [\n file(\"config.json\", 3126, \"d0883072e01861ed0b2d47be3c16c36a8e81c224c7ffaa310c6558fb3f932b05\"),\n file(\"model.safetensors.index.json\", 79657, \"26d3539b516be613f39563617cb9d33b3f83d401298125be392c80cefb8f7fe5\"),\n file(\"model.safetensors-00001-of-00004.safetensors\", 5276436216, \"db6f444b43d318c92f360a13a25561a6a65b10c0631b8ed305a426dbaa6c380e\"),\n file(\"model.safetensors-00002-of-00004.safetensors\", 5335161512, \"31c7d7e2dd5d207840b31cc59083c8f4c4718959149e0358c0364052bb9a0330\"),\n file(\"model.safetensors-00003-of-00004.safetensors\", 5368717440, \"7ec36ba3a4176a44c3c0876ad80c56a2f70c84bf008d82e9501df642f17dadec\"),\n file(\"model.safetensors-00004-of-00004.safetensors\", 3325995712, \"b62b0c4cd7e44edee103ee8f4fe225f246d5e768e07bfd5f25b63a8aa1fdd0c6\"),\n];\nconst adapterFiles = [\n file(\"adapter_config.json\", 1296, \"4064100b5c7c92b20b6aba8ec08af2e2a956d1fbb06263f814324301b710b3f2\"),\n file(\"adapter_model.safetensors\", 173188512, \"ba7e28acb97f973e80fa51f3aa6fc6f75ea4081b89632ed45d8e5f3a1d7bfa6b\"),\n];\nconst tokenizerFiles = [\n file(\"chat_template.jinja\", 7756, DECISION_CHAT_TEMPLATE_SHA256),\n file(\"tokenizer.json\", 19989325, \"06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523\"),\n file(\"tokenizer_config.json\", 1125, \"9cf04fffe3d8c3b85e439fb35c7acad0761ab51c422a8c4256d9f887c3a0be7d\"),\n];\nconst referenceFiles = [\n file(\"inference.py\", 5375, \"95c37c0ee94b065858fcca8fe90cfa685ecde8713443c1b0555ed99012f5abfd\"),\n file(\"parallel_schema.py\", 6628, DECISION_PROMPT_CODE_SHA256),\n file(\"requirements.txt\", 126, \"7cfedd0abb35fe0b69677040ae800fa420f6c1d3162584a379785ca239ba04ea\"),\n file(\"schema_config.json\", 15838, \"601c6fe561a33cbe9e88ed948503289c61c6f53876255ecb6988428824a57075\"),\n];\nconst licenseFiles = [file(\"LICENSE\", 11544, \"bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a\")];\n\nasync function sourceManifest(repository: DecisionSourceManifest[\"repository\"], revision: string, files: SourceFile[]) {\n const content = DecisionSourceManifestContentSchema.parse({\n schemaVersion: \"openpond.decisionSourceManifest.v1\", repository, revision, files,\n });\n return { ...content, contentHash: await canonicalSha256(content) };\n}\n\n/** Pins released source files, not a measured in-memory torch state or runtime\n * qualification. Large backbone digests originate in the exact Hub revision's\n * LFS metadata; a loader must still verify every downloaded file before use.\n * The complete conditional-generation config/index is retained, including its\n * vision and auxiliary tensors, even though this protocol supplies text only. */\nexport async function decisionModelIdentity(): Promise<DecisionModelIdentity> {\n const release = (files: SourceFile[]) => sourceManifest(DECISION_SOURCE_REPOSITORY, DECISION_SOURCE_REVISION, files);\n const content = DecisionModelIdentityContentSchema.parse({\n schemaVersion: \"openpond.decisionModelIdentity.v1\",\n source: {\n schemaVersion: \"openpond.baseModelPreference.v1\", modelId: DECISION_SOURCE_REPOSITORY,\n revision: DECISION_SOURCE_REVISION, tokenizerRevision: DECISION_SOURCE_REVISION,\n chatTemplateHash: DECISION_CHAT_TEMPLATE_SHA256, modelAssetId: null, source: \"managed\",\n },\n backbone: {\n architecture: \"Qwen3_5ForConditionalGeneration\", modelType: \"qwen3_5\", dtype: \"bfloat16\",\n weightIdentity: \"source_file_manifest_sha256_v1\",\n source: await sourceManifest(DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION, backboneFiles),\n },\n originalAdapter: await release(adapterFiles), tokenizer: await release(tokenizerFiles),\n reference: await release(referenceFiles),\n license: { spdx: \"Apache-2.0\", files: [\n await sourceManifest(DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION, licenseFiles),\n await release(licenseFiles),\n ] },\n });\n return { ...content, contentHash: await canonicalSha256(content) };\n}\n\nexport async function parseAndVerifyDecisionModelIdentity(raw: unknown): Promise<DecisionModelIdentity> {\n const value = DecisionModelIdentitySchema.parse(raw);\n if (canonicalJson(value) !== canonicalJson(await decisionModelIdentity()))\n throw new OpenPondProtocolError(\"decision_model_identity_mismatch\", \"The decision Model differs from the exact released adapter, tokenizer or complete backbone source.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity } from \"./decision-model.js\";\nimport { assertCanonicalPayloadSize, canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Text = z.string().min(1).max(2000).refine(value => value.trim().length > 0);\nconst Name = z.string().regex(/^[A-Za-z][A-Za-z0-9_-]{0,79}$/)\n .refine(value => ![\"constructor\", \"prototype\"].includes(value));\nconst Level = z.number().int().min(-1_000_000).max(1_000_000);\nexport const DecisionValueSchema = z.union([z.string().min(1).max(256), z.boolean(), Level]);\nexport const DecisionArtifactReferenceSchema = z.object({ id: z.string().min(1).max(500), contentHash: Hash }).strict();\n\nexport const DecisionStateSchema = z.record(z.string().max(256), z.json()).superRefine((value, context) => {\n try { assertBoundedTaskJson(value, 65_536); }\n catch { context.addIssue({ code: \"custom\", message: \"Decision state must be bounded finite JSON of at most 64 KiB.\" }); }\n});\nconst question = { id: Name, description: Text };\nexport const DecisionQuestionSchema = z.discriminatedUnion(\"type\", [\n z.object({ ...question, type: z.literal(\"choice\"), choices: z.array(z.object({\n value: z.string().min(1).max(256).refine(value => value.trim().length > 0), description: Text,\n }).strict()).min(2).max(26) }).strict(),\n z.object({ ...question, type: z.literal(\"boolean\"), choices: z.tuple([\n z.object({ value: z.literal(false), description: Text }).strict(),\n z.object({ value: z.literal(true), description: Text }).strict(),\n ]) }).strict(),\n z.object({ ...question, type: z.literal(\"integer_levels\"), choices: z.array(z.object({\n value: Level, description: Text,\n }).strict()).min(2).max(26) }).strict(),\n]).superRefine((value, context) => {\n if (new Set(value.choices.map(choice => choice.value)).size !== value.choices.length)\n context.addIssue({ code: \"custom\", path: [\"choices\"], message: \"Decision choices must be distinct.\" });\n if (value.type === \"integer_levels\" && value.choices.some((choice, index) => index > 0 && choice.value <= value.choices[index - 1]!.value))\n context.addIssue({ code: \"custom\", path: [\"choices\"], message: \"Integer levels must retain strictly increasing authored order.\" });\n});\nexport type DecisionQuestion = z.infer<typeof DecisionQuestionSchema>;\nexport const DecisionQuestionsSchema = z.array(DecisionQuestionSchema).min(1).max(8).superRefine((value, context) => {\n if (new Set(value.map(row => row.id)).size !== value.length)\n context.addIssue({ code: \"custom\", message: \"Decision question names must be distinct.\" });\n});\nexport const DecisionScoringInputSchema = z.object({ state: DecisionStateSchema, questions: DecisionQuestionsSchema }).strict();\nexport type DecisionScoringInput = z.infer<typeof DecisionScoringInputSchema>;\nexport const DecisionTrainingExampleSchema = DecisionScoringInputSchema.extend({\n id: z.string().min(1).max(500),\n targets: z.array(z.object({ questionId: Name, value: DecisionValueSchema }).strict()).min(1).max(8),\n}).superRefine((value, context) => {\n if (value.targets.length !== value.questions.length || value.questions.some((row, index) => {\n const target = value.targets[index];\n return !target || target.questionId !== row.id || !row.choices.some(choice => choice.value === target.value);\n })) context.addIssue({ code: \"custom\", path: [\"targets\"], message: \"Targets must match every named question and real choice in authored order.\" });\n});\nexport type DecisionTrainingExample = z.infer<typeof DecisionTrainingExampleSchema>;\n\n/** This is the raw reviewed-data projection, not training authorization. The\n * hosted owner must resolve the approved batch and verify these exact bytes. */\nexport const DecisionTrainingExamplesSchema = z.array(DecisionTrainingExampleSchema).min(1).max(4096)\n .superRefine((value, context) => {\n if (new Set(value.map(row => row.id)).size !== value.length)\n context.addIssue({ code: \"custom\", message: \"Decision example IDs must be distinct.\" });\n try { assertCanonicalPayloadSize(value, 8_388_608, \"Decision examples\"); }\n catch { context.addIssue({ code: \"custom\", message: \"Decision examples exceed the 8 MiB input boundary.\" }); }\n });\n\nexport async function parseAndVerifyDecisionTrainingExamples(raw: unknown, examplesSha256?: string) {\n assertBoundedTaskJson(raw, 8_388_608);\n const value = DecisionTrainingExamplesSchema.parse(raw);\n if (examplesSha256 !== undefined && Hash.parse(examplesSha256) !== await canonicalSha256(value))\n throw new OpenPondProtocolError(\"decision_examples_mismatch\", \"The decision examples differ from the exact reviewed projection digest.\");\n return value;\n}\n\n/** Targets are deliberately absent. Pass this ordered schema to the pinned\n * prepare_prompts implementation; it checks actual answer-boundary tokens and\n * rejects overlong input instead of truncating. Integer levels are rendered as\n * enum strings and converted back to typed numbers only after scoring. */\nexport function decisionReferenceInput(raw: DecisionScoringInput) {\n assertBoundedTaskJson(raw, 131_072);\n const input = DecisionScoringInputSchema.parse(raw);\n const schema = Object.fromEntries(input.questions.map(row => [row.id, {\n type: row.type === \"boolean\" ? \"boolean\" : \"enum\",\n description: row.description,\n choices: row.choices.map(choice => row.type === \"integer_levels\" ? String(choice.value) : choice.value),\n choice_descriptions: Object.fromEntries(row.choices.map(choice => [String(choice.value), choice.description])),\n }]));\n return { context: canonicalJson(input.state), schema };\n}\n\nexport const DecisionScoringRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionScoringRequest.v1\"),\n model: DecisionModelIdentitySchema,\n artifact: DecisionArtifactReferenceSchema.nullable(),\n input: DecisionScoringInputSchema,\n limits: z.object({\n maximumPromptTokens: z.number().int().min(1).max(2048),\n maximumForwardTokenWork: z.number().int().min(1).max(65_536),\n maximumDurationSeconds: z.number().finite().positive().max(300),\n }).strict(),\n}).strict();\nexport type DecisionScoringRequest = z.infer<typeof DecisionScoringRequestSchema>;\n\nexport async function parseAndVerifyDecisionScoringRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = DecisionScoringRequestSchema.parse(raw);\n await parseAndVerifyDecisionModelIdentity(value.model);\n return value;\n}\n\nexport const DecisionQuestionDistributionSchema = z.object({\n questionId: Name, promptTokenCount: z.number().int().min(1).max(2048),\n candidates: z.array(z.object({\n value: DecisionValueSchema, code: z.string().regex(/^[A-Z]$/),\n tokenId: z.number().int().min(0).max(248_319),\n logit: z.number().finite(), probability: z.number().finite().min(0).max(1),\n }).strict()).min(2).max(26),\n prediction: DecisionValueSchema,\n expectedLevel: z.number().finite().min(-1_000_000).max(1_000_000).nullable(),\n}).strict();\nexport type DecisionQuestionDistribution = z.infer<typeof DecisionQuestionDistributionSchema>;\nexport const DecisionScoringResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionScoringResult.v1\"),\n requestHash: Hash, modelHash: Hash, runtimeHash: Hash, preparedRowsHash: Hash,\n artifact: DecisionArtifactReferenceSchema.nullable(), temperature: z.literal(1),\n distributions: z.array(DecisionQuestionDistributionSchema).min(1).max(8),\n forwardTokenWork: z.number().int().positive().max(65_536),\n durationMs: z.number().finite().nonnegative().max(300_000),\n}).strict();\nexport const DecisionScoringResultSchema = DecisionScoringResultContentSchema.extend({ contentHash: Hash });\nexport type DecisionScoringResult = z.infer<typeof DecisionScoringResultSchema>;\n\n/** Verifies the arithmetic and exact request/runtime pin; it does not attest\n * that a producer actually executed the pinned model or measured these logits. */\nexport async function parseAndVerifyDecisionScoringResult(raw: unknown, expected: {\n request: DecisionScoringRequest; runtimeHash: string;\n}) {\n assertBoundedTaskJson(raw, 131_072);\n const request = await parseAndVerifyDecisionScoringRequest(expected.request);\n const value = DecisionScoringResultSchema.parse(raw), { contentHash, ...content } = value;\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_score_mismatch\", \"The decision distributions differ from the exact request, complete T1 candidate scores or runtime.\"); };\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.runtimeHash !== Hash.parse(expected.runtimeHash)\n || canonicalJson(value.artifact) !== canonicalJson(request.artifact)\n || value.distributions.length !== request.input.questions.length\n || value.forwardTokenWork > request.limits.maximumForwardTokenWork\n || value.durationMs > request.limits.maximumDurationSeconds * 1000) fail();\n let promptWork = 0;\n for (const [index, question] of request.input.questions.entries()) {\n const row = value.distributions[index]!;\n if (row.questionId !== question.id || row.candidates.length !== question.choices.length\n || row.promptTokenCount > request.limits.maximumPromptTokens\n || new Set(row.candidates.map(candidate => candidate.tokenId)).size !== row.candidates.length) fail();\n const maximum = Math.max(...row.candidates.map(candidate => candidate.logit));\n const weights = row.candidates.map(candidate => Math.exp(candidate.logit - maximum));\n const total = weights.reduce((sum, weight) => sum + weight, 0);\n let best = 0, expectedLevel = 0;\n for (const [candidateIndex, candidate] of row.candidates.entries()) {\n if (candidate.value !== question.choices[candidateIndex]!.value\n || candidate.code !== String.fromCharCode(65 + candidateIndex)\n || Math.abs(candidate.probability - weights[candidateIndex]! / total) > 1e-8) fail();\n if (candidate.logit > row.candidates[best]!.logit) best = candidateIndex;\n if (question.type === \"integer_levels\") expectedLevel += question.choices[candidateIndex]!.value * candidate.probability;\n }\n if (Math.abs(row.candidates.reduce((sum, candidate) => sum + candidate.probability, 0) - 1) > 1e-8\n || row.prediction !== question.choices[best]!.value\n || (question.type === \"integer_levels\" ? row.expectedLevel === null || Math.abs(row.expectedLevel - expectedLevel) > 1e-8 : row.expectedLevel !== null)) fail();\n promptWork += row.promptTokenCount;\n }\n if (value.forwardTokenWork < promptWork) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport {\n DECISION_ADAPTER_MAXIMUM_BYTES, DECISION_BACKBONE_REPOSITORY, DECISION_BACKBONE_REVISION,\n DECISION_PROMPT_CODE_SHA256, DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity,\n type DecisionModelIdentity,\n} from \"./decision-model.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst targetModules = [\"o_proj\", \"down_proj\", \"k_proj\", \"gate_proj\", \"in_proj_b\", \"in_proj_z\", \"in_proj_a\", \"out_proj\", \"q_proj\", \"in_proj_qkv\", \"v_proj\", \"up_proj\"] as const;\n\n/** Portable PEFT output configuration. Tensor names and shapes remain specific\n * to the full pinned Qwen3.5 hybrid backbone, not an ordinary dense LoRA model. */\nexport const DecisionAdapterConfigSchema = z.object({\n base_model_name_or_path: z.literal(DECISION_BACKBONE_REPOSITORY),\n revision: z.literal(DECISION_BACKBONE_REVISION),\n peft_type: z.literal(\"LORA\"), peft_version: z.literal(\"0.21.0\"), task_type: z.literal(\"CAUSAL_LM\"),\n r: z.literal(16), lora_alpha: z.literal(32), lora_dropout: z.literal(0.05),\n bias: z.literal(\"none\"), inference_mode: z.literal(true),\n fan_in_fan_out: z.literal(false), use_dora: z.literal(false), use_rslora: z.literal(false),\n modules_to_save: z.null(),\n target_modules: z.array(z.enum(targetModules)).length(12),\n}).strict().superRefine((value, context) => {\n if (canonicalJson(value.target_modules) !== canonicalJson(targetModules))\n context.addIssue({ code: \"custom\", path: [\"target_modules\"], message: \"The adapter must retain the exact released hybrid target modules.\" });\n});\nexport type DecisionAdapterConfig = z.infer<typeof DecisionAdapterConfigSchema>;\nexport function decisionAdapterConfig(): DecisionAdapterConfig {\n return DecisionAdapterConfigSchema.parse({\n base_model_name_or_path: DECISION_BACKBONE_REPOSITORY, revision: DECISION_BACKBONE_REVISION,\n peft_type: \"LORA\", peft_version: \"0.21.0\", task_type: \"CAUSAL_LM\", r: 16,\n lora_alpha: 32, lora_dropout: 0.05, bias: \"none\", inference_mode: true,\n fan_in_fan_out: false, use_dora: false, use_rslora: false, modules_to_save: null,\n target_modules: [...targetModules],\n });\n}\n\nexport const DecisionArtifactContractSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionArtifactContract.v1\"),\n task: z.literal(\"schema_candidate_classification_v1\"),\n modelHash: Hash, tokenizerHash: Hash, promptCodeSha256: z.literal(DECISION_PROMPT_CODE_SHA256),\n stateEncoding: z.literal(\"canonical_json_utf8_v1\"),\n integerLevels: z.literal(\"decimal_enum_strings_v1\"),\n objective: z.literal(\"candidate_cross_entropy_v1\"), labelsOutsidePrompt: z.literal(true),\n temperature: z.literal(1), maximumPromptTokens: z.literal(2048),\n enableThinking: z.literal(false), truncation: z.literal(false),\n}).strict();\nexport type DecisionArtifactContract = z.infer<typeof DecisionArtifactContractSchema>;\nexport async function decisionArtifactContract(model: DecisionModelIdentity): Promise<DecisionArtifactContract> {\n const verified = await parseAndVerifyDecisionModelIdentity(model);\n return DecisionArtifactContractSchema.parse({\n schemaVersion: \"openpond.decisionArtifactContract.v1\", task: \"schema_candidate_classification_v1\",\n modelHash: await canonicalSha256(verified), tokenizerHash: verified.tokenizer.contentHash,\n promptCodeSha256: DECISION_PROMPT_CODE_SHA256, stateEncoding: \"canonical_json_utf8_v1\",\n integerLevels: \"decimal_enum_strings_v1\", objective: \"candidate_cross_entropy_v1\",\n labelsOutsidePrompt: true, temperature: 1, maximumPromptTokens: 2048,\n enableThinking: false, truncation: false,\n });\n}\n\nexport const DecisionAdapterTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.]{1,200}$/),\n shape: z.tuple([z.number().int().positive().max(12_288), z.number().int().positive().max(12_288)]),\n dtype: z.literal(\"F32\"),\n}).strict();\n\n/** Exact 496-tensor inventory observed in the original adapter's safetensors\n * header. Full-attention layers occur at indices 3,7,...31; other layers use\n * linear attention. Neither the language head nor vision weights are adapted. */\nexport function decisionAdapterTensorInventory(): z.infer<typeof DecisionAdapterTensorSchema>[] {\n const items: z.infer<typeof DecisionAdapterTensorSchema>[] = [];\n for (let layer = 0; layer < 32; layer++) {\n const modules: Array<[string, number, number]> = [\n [\"mlp.down_proj\", 12_288, 4096], [\"mlp.gate_proj\", 4096, 12_288], [\"mlp.up_proj\", 4096, 12_288],\n ...(layer % 4 === 3 ? [\n [\"self_attn.q_proj\", 4096, 8192], [\"self_attn.k_proj\", 4096, 1024],\n [\"self_attn.v_proj\", 4096, 1024], [\"self_attn.o_proj\", 4096, 4096],\n ] as Array<[string, number, number]> : [\n [\"linear_attn.in_proj_a\", 4096, 32], [\"linear_attn.in_proj_b\", 4096, 32],\n [\"linear_attn.in_proj_qkv\", 4096, 8192], [\"linear_attn.in_proj_z\", 4096, 4096],\n [\"linear_attn.out_proj\", 4096, 4096],\n ] as Array<[string, number, number]>),\n ];\n for (const [name, input, output] of modules) {\n const prefix = `base_model.model.model.language_model.layers.${layer}.${name}`;\n items.push({ name: `${prefix}.lora_A.weight`, shape: [16, input], dtype: \"F32\" });\n items.push({ name: `${prefix}.lora_B.weight`, shape: [output, 16], dtype: \"F32\" });\n }\n }\n return items.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\n\nexport const DecisionAdapterArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionAdapterArtifact.v1\"), method: z.literal(\"decision_model\"),\n model: DecisionModelIdentitySchema, adapterConfig: DecisionAdapterConfigSchema,\n contract: DecisionArtifactContractSchema,\n pins: z.object({\n inputHash: Hash, recipeHash: Hash, dataHash: Hash, runtimeHash: Hash, parentArtifactHash: Hash.nullable(),\n }).strict(),\n payload: z.object({\n path: z.literal(\"adapter_model.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(DECISION_ADAPTER_MAXIMUM_BYTES),\n tensors: z.array(DecisionAdapterTensorSchema).length(496),\n }).strict(),\n}).strict();\nexport const DecisionAdapterArtifactSchema = DecisionAdapterArtifactContentSchema.extend({ contentHash: Hash });\nexport type DecisionAdapterArtifact = z.infer<typeof DecisionAdapterArtifactSchema>;\nexport type DecisionArtifactExpectation = {\n model: DecisionModelIdentity; inputHash: string; recipeHash: string; dataHash: string;\n runtimeHash: string; parentArtifactHash: string | null;\n};\n\n/** Verifies manifest metadata only. The existing authenticated artifact owner\n * must separately seal actual file bytes, sizes, digests and tensor inventory. */\nexport async function parseAndVerifyDecisionAdapterArtifact(raw: unknown, expected?: DecisionArtifactExpectation) {\n const value = DecisionAdapterArtifactSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyDecisionModelIdentity(value.model);\n const fail = (): never => { throw new OpenPondProtocolError(\"decision_artifact_mismatch\", \"The decision artifact differs from its exact hybrid module, source, recipe or data.\"); };\n if (contentHash !== await canonicalSha256(content)\n || canonicalJson(value.contract) !== canonicalJson(await decisionArtifactContract(value.model))\n || canonicalJson(value.payload.tensors) !== canonicalJson(decisionAdapterTensorInventory())\n || value.payload.sizeBytes < value.payload.tensors.reduce((sum, row) => sum + row.shape[0] * row.shape[1] * 4, 0)) fail();\n if (expected && (canonicalJson(value.model) !== canonicalJson(expected.model)\n || value.pins.inputHash !== expected.inputHash || value.pins.recipeHash !== expected.recipeHash\n || value.pins.dataHash !== expected.dataHash || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== expected.parentArtifactHash)) fail();\n return value;\n}\n\nexport const DecisionModuleFileSchema = z.object({\n path: z.enum([\"manifest.json\", \"adapter_model.safetensors\", \"adapter_config.json\", \"decision_contract.json\"]),\n artifactId: z.string().min(1).max(500), sha256: Hash,\n sizeBytes: z.number().int().positive().max(DECISION_ADAPTER_MAXIMUM_BYTES),\n}).strict();\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { DecisionArtifactReferenceSchema } from \"./decision-model-data.js\";\nimport {\n DECISION_CHAT_TEMPLATE_SHA256, DECISION_SOURCE_REPOSITORY, DECISION_SOURCE_REVISION,\n} from \"./decision-model.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Field = z.string().max(100);\nexport const SavedDecisionExperimentSourceSchema = z.object({\n modelProjectId: z.string().min(1).max(240), versionHash: Hash,\n artifact: DecisionArtifactReferenceSchema, modelHash: Hash,\n}).strict();\nexport type SavedDecisionExperimentSource = z.infer<typeof SavedDecisionExperimentSourceSchema>;\nexport const DecisionTrainingFormDraftSchema = z.object({\n learningRate: Field, weightDecay: Field, maxSteps: Field, gradientAccumulationSteps: Field,\n maximumPromptTokens: Field, seed: Field, maxDurationSeconds: Field, maxCheckpointBytes: Field,\n}).strict();\nexport const DecisionScoringLimitsFormDraftSchema = z.object({\n maximumPromptTokens: Field, maximumForwardTokenWork: Field, maximumDurationSeconds: Field,\n}).strict();\nexport const DecisionQuestionFormDraftSchema = z.object({\n id: z.string().max(80), type: z.enum([\"choice\", \"boolean\", \"integer_levels\"]),\n description: z.string().max(2000),\n choices: z.array(z.object({ value: z.string().max(256), description: z.string().max(2000) }).strict()).max(26),\n}).strict();\nconst common = {\n baseModel: ModelProjectBaseModelSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n parentArtifact: DecisionArtifactReferenceSchema.nullable(),\n startingDecision: SavedDecisionExperimentSourceSchema.optional(),\n};\n\n/** Incomplete authoring is retained verbatim, including unfinished JSON and\n * numeric fields. A train draft references an owned reviewed batch; a score\n * draft contains unlabeled input only and grants no Dataset/training authority. */\nexport const DecisionExperimentFormDraftSchema = z.discriminatedUnion(\"mode\", [\n z.object({ ...common, mode: z.literal(\"train\"), batch: ModelProjectVersionedRefSchema.nullable(),\n training: DecisionTrainingFormDraftSchema }).strict(),\n z.object({ ...common, mode: z.literal(\"score\"), stateJson: z.string().max(131_072),\n questions: z.array(DecisionQuestionFormDraftSchema).max(8), limits: DecisionScoringLimitsFormDraftSchema }).strict(),\n]);\nexport type DecisionExperimentFormDraft = z.infer<typeof DecisionExperimentFormDraftSchema>;\n\n/** Selects the actual adapter release and its own tokenizer. The hosted\n * compiler resolves the complete verified source manifest and runtime. */\nexport function decisionSourcePreference() {\n return ModelProjectBaseModelSchema.parse({\n schemaVersion: \"openpond.baseModelPreference.v1\", modelId: DECISION_SOURCE_REPOSITORY,\n revision: DECISION_SOURCE_REVISION, tokenizerRevision: DECISION_SOURCE_REVISION,\n chatTemplateHash: DECISION_CHAT_TEMPLATE_SHA256, modelAssetId: null, source: \"managed\",\n });\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { AlphaEditTrainingRequestSchema } from \"./alphaedit.js\";\nimport { AlphaEditTrainingResultSchema, parseAndVerifyAlphaEditArtifact } from \"./alphaedit-artifact.js\";\nimport { NeuronTrainingRequestSchema } from \"./neuron-training.js\";\nimport { NeuronTrainingResultSchema } from \"./neuron-training-result.js\";\nimport { parseAndVerifyNeuronTrainingArtifact } from \"./neuron-training-artifact.js\";\nimport { SavedAlphaEditExperimentSourceSchema } from \"./alphaedit-experiment-draft.js\";\nimport { SavedNeuronTrainingExperimentSourceSchema } from \"./neuron-training-experiment-draft.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst identity = {\n teamId: Id, ownerUserId: Id, modelProjectId: Id, portableProjectId: Id,\n baseModel: ModelProjectBaseModelSchema,\n source: z.object({executionId: Id, inputHash: Hash, runtimeHash: Hash, resultHash: Hash}).strict(),\n createdAt: z.iso.datetime(),\n};\nexport const AlphaEditModelVersionContentSchema = z.object({\n ...identity, schemaVersion: z.literal(\"openpond.alphaEditModelVersion.v1\"),\n request: AlphaEditTrainingRequestSchema, artifact: AlphaEditTrainingResultSchema.shape.artifact,\n}).strict();\nexport const AlphaEditModelVersionSchema = AlphaEditModelVersionContentSchema.extend({contentHash: Hash});\nexport type AlphaEditModelVersion = z.infer<typeof AlphaEditModelVersionSchema>;\nexport const NeuronTrainingModelVersionContentSchema = z.object({\n ...identity, schemaVersion: z.literal(\"openpond.neuronTrainingModelVersion.v1\"),\n request: NeuronTrainingRequestSchema, artifact: NeuronTrainingResultSchema.shape.artifact,\n}).strict();\nexport const NeuronTrainingModelVersionSchema = NeuronTrainingModelVersionContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingModelVersion = z.infer<typeof NeuronTrainingModelVersionSchema>;\ntype Scope = {teamId?: string; modelProjectId?: string; ownerUserId?: string};\nfunction fail(): never {\n throw new OpenPondProtocolError(\"weight_model_version_mismatch\", \"The saved Model differs from its exact learned weights, source or committed artifact.\");\n}\nasync function verifyEnvelope(value: AlphaEditModelVersion | NeuronTrainingModelVersion, expected: Scope) {\n const {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content)\n || expected.teamId !== undefined && value.teamId !== expected.teamId\n || expected.modelProjectId !== undefined && value.modelProjectId !== expected.modelProjectId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.baseModel.source !== \"managed\" || value.baseModel.modelAssetId !== null\n || value.baseModel.modelId !== value.request.model.modelId\n || value.baseModel.revision !== value.request.model.revision || !value.baseModel.tokenizerRevision\n || value.source.inputHash !== await canonicalSha256(value.request)\n || value.artifact.contentHash !== value.artifact.manifest.contentHash) fail();\n}\nasync function verifyFiles(artifact: {id: string; files: {path: string; artifactId: string; sha256: string; sizeBytes: number}[]},\n manifest: unknown, payloads: {path: string; sha256: string; sizeBytes: number}[], maximumBytes: number) {\n const encoded = canonicalJson(manifest);\n const expected = [{path: \"manifest.json\", sha256: await canonicalSha256(manifest),\n sizeBytes: new TextEncoder().encode(encoded).byteLength}, ...payloads];\n if (expected[0]!.sizeBytes > 262_144 || artifact.files.length !== expected.length\n || new Set(artifact.files.map(file => file.path)).size !== expected.length\n || artifact.files.some(file => file.artifactId !== artifact.id)\n || artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > maximumBytes\n || expected.some(item => !artifact.files.some(file => file.path === item.path && file.sha256 === item.sha256 && file.sizeBytes === item.sizeBytes))) fail();\n}\n/** Verifies retained metadata; actual blob possession/authorization belongs to\n * the artifact custodian on every publication and serving admission. */\nexport async function parseAndVerifyAlphaEditModelVersion(raw: unknown, expected: Scope = {}) {\n const value = AlphaEditModelVersionSchema.parse(raw);\n await verifyEnvelope(value, expected);\n const manifest = await parseAndVerifyAlphaEditArtifact(value.artifact.manifest,\n {request: value.request, runtimeHash: value.source.runtimeHash});\n await verifyFiles(value.artifact, manifest, [manifest.payloads.patch, ...manifest.payloads.state], value.request.training.maxCheckpointBytes);\n return value;\n}\nexport async function parseAndVerifyNeuronTrainingModelVersion(raw: unknown, expected: Scope = {}) {\n const value = NeuronTrainingModelVersionSchema.parse(raw);\n await verifyEnvelope(value, expected);\n const manifest = await parseAndVerifyNeuronTrainingArtifact(value.artifact.manifest,\n {request: value.request, runtimeHash: value.source.runtimeHash});\n await verifyFiles(value.artifact, manifest, [manifest.payload], value.request.training.maxCheckpointBytes);\n return value;\n}\nexport async function verifySavedAlphaEditExperimentSource(sourceInput: unknown, raw: unknown, expected: Scope = {}) {\n const source = SavedAlphaEditExperimentSourceSchema.parse(sourceInput);\n const version = await parseAndVerifyAlphaEditModelVersion(raw, {...expected, modelProjectId: source.modelProjectId});\n if (version.contentHash !== source.versionHash || version.artifact.id !== source.artifact.id\n || version.artifact.contentHash !== source.artifact.contentHash\n || await canonicalSha256(version.request.model) !== source.modelHash) fail();\n return version;\n}\nexport async function verifySavedNeuronTrainingExperimentSource(sourceInput: unknown, raw: unknown, expected: Scope = {}) {\n const source = SavedNeuronTrainingExperimentSourceSchema.parse(sourceInput);\n const version = await parseAndVerifyNeuronTrainingModelVersion(raw, {...expected, modelProjectId: source.modelProjectId});\n if (version.contentHash !== source.versionHash || version.artifact.id !== source.artifact.id\n || version.artifact.contentHash !== source.artifact.contentHash\n || await canonicalSha256(version.request.model) !== source.modelHash) fail();\n return version;\n}\n\nconst SaveRequest = z.object({teamId: Id, operationId: Id, executionId: Id, resultHash: Hash, artifactHash: Hash,\n name: z.string().trim().min(1).max(200), modelProjectId: Id.nullable(), expectedModelRevision: z.number().int().nonnegative(),\n}).strict().refine(value => value.modelProjectId ? value.expectedModelRevision > 0 : value.expectedModelRevision === 0,\n {message: \"Retain the existing Model revision or create a new Model.\"});\nexport const AlphaEditResultSaveRequestSchema = SaveRequest;\nexport const NeuronTrainingResultSaveRequestSchema = SaveRequest;\nexport type AlphaEditResultSaveRequest = z.infer<typeof AlphaEditResultSaveRequestSchema>;\nexport type NeuronTrainingResultSaveRequest = z.infer<typeof NeuronTrainingResultSaveRequestSchema>;\nconst receipt = {teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, model: HostedModelProjectSummarySchema};\nexport const AlphaEditResultSaveReceiptContentSchema = z.object({...receipt,\n schemaVersion: z.literal(\"openpond.alphaEditResultSaveReceipt.v1\"), version: AlphaEditModelVersionSchema}).strict();\nexport const AlphaEditResultSaveReceiptSchema = AlphaEditResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type AlphaEditResultSaveReceipt = z.infer<typeof AlphaEditResultSaveReceiptSchema>;\nexport const NeuronTrainingResultSaveReceiptContentSchema = z.object({...receipt,\n schemaVersion: z.literal(\"openpond.neuronTrainingResultSaveReceipt.v1\"), version: NeuronTrainingModelVersionSchema}).strict();\nexport const NeuronTrainingResultSaveReceiptSchema = NeuronTrainingResultSaveReceiptContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingResultSaveReceipt = z.infer<typeof NeuronTrainingResultSaveReceiptSchema>;\nasync function verifySave(value: AlphaEditResultSaveReceipt | NeuronTrainingResultSaveReceipt, request: AlphaEditResultSaveRequest) {\n const {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || value.operationId !== request.operationId || value.requestHash !== await canonicalSha256(request)\n || value.version.source.executionId !== request.executionId || value.version.source.resultHash !== request.resultHash\n || value.version.artifact.contentHash !== request.artifactHash || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1\n || request.modelProjectId !== null && value.model.id !== request.modelProjectId\n || value.version.portableProjectId !== value.model.portableProjectId) fail();\n}\nexport async function parseAndVerifyAlphaEditResultSaveReceipt(raw: unknown, input: AlphaEditResultSaveRequest) {\n const request = SaveRequest.parse(input), value = AlphaEditResultSaveReceiptSchema.parse(raw);\n await parseAndVerifyAlphaEditModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n await verifySave(value, request); return value;\n}\nexport async function parseAndVerifyNeuronTrainingResultSaveReceipt(raw: unknown, input: NeuronTrainingResultSaveRequest) {\n const request = SaveRequest.parse(input), value = NeuronTrainingResultSaveReceiptSchema.parse(raw);\n await parseAndVerifyNeuronTrainingModelVersion(value.version, {teamId: request.teamId, modelProjectId: value.model.id, ownerUserId: value.actorId});\n await verifySave(value, request); return value;\n}\nexport function createWeightModelClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const save = (command: AlphaEditResultSaveRequest) => request(`/v1/training/modification-executions/${encodeURIComponent(command.executionId)}/model`,\n {method: \"POST\", body: canonicalJson(command)});\n return {\n async saveAlphaEditResultModel(raw: AlphaEditResultSaveRequest) {\n const command = SaveRequest.parse(raw); return parseAndVerifyAlphaEditResultSaveReceipt(await save(command), command);\n },\n async saveNeuronTrainingResultModel(raw: NeuronTrainingResultSaveRequest) {\n const command = SaveRequest.parse(raw); return parseAndVerifyNeuronTrainingResultSaveReceipt(await save(command), command);\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const ALPHAEDIT_SOURCE_REVISION = \"b84624f44dfe8fc6cd9e41df916c44124a0c46dc\";\nexport const ALPHAEDIT_MAX_CHECKPOINT_BYTES = 17_179_869_184;\nexport const ALPHAEDIT_MAX_DATA_BYTES = 8_388_608;\nexport const AlphaEditHashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\nconst Text = z.string().min(1).max(32_768);\n\n/** This is the measured tensor identity supplied by the qualified runtime,\n * rather than a claim that a repository revision is a torch state digest. */\nexport const AlphaEditModelSchema = NeuronSteeringModelSchema.refine(model =>\n model.modelId === \"Qwen/Qwen3-8B\"\n && model.revision === \"b968826d9c46dd6066d109eabc6255188de91218\"\n && model.dtype === \"bfloat16\" && model.hiddenSize === 4096\n && model.intermediateSizes.length === 36 && model.intermediateSizes.every(size => size === 12288),\n{message: \"AlphaEdit requires the exact unquantized Qwen3-8B BF16 backbone.\"});\nexport type AlphaEditModel = z.infer<typeof AlphaEditModelSchema>;\n\nfunction onePlaceholder(value: string) {\n return value.split(\"{}\").length === 2 && !value.replace(\"{}\", \"\").match(/[{}]/);\n}\nexport const AlphaEditExampleSchema = z.object({\n id: Id, subject: z.string().min(1).max(2048), promptTemplate: Text.refine(onePlaceholder), targetNew: z.string().min(1).max(4096),\n}).strict();\nexport const AlphaEditPreservationExampleSchema = z.object({id: Id, text: Text}).strict();\nexport const AlphaEditExamplesSchema = z.array(AlphaEditExampleSchema).min(1).max(64).superRefine((rows, context) => {\n if (new Set(rows.map(row => row.id)).size !== rows.length || new TextEncoder().encode(canonicalJson(rows)).byteLength > ALPHAEDIT_MAX_DATA_BYTES)\n context.addIssue({code: \"custom\", message: \"Edit identifiers must be unique and the canonical batch must fit the data byte bound.\"});\n});\nexport const AlphaEditPreservationExamplesSchema = z.array(AlphaEditPreservationExampleSchema).min(1).max(4096).superRefine((rows, context) => {\n if (new Set(rows.map(row => row.id)).size !== rows.length || new TextEncoder().encode(canonicalJson(rows)).byteLength > ALPHAEDIT_MAX_DATA_BYTES)\n context.addIssue({code: \"custom\", message: \"Preservation identifiers must be unique and the canonical batch must fit the data byte bound.\"});\n});\nexport type AlphaEditExample = z.infer<typeof AlphaEditExampleSchema>;\nexport type AlphaEditPreservationExample = z.infer<typeof AlphaEditPreservationExampleSchema>;\n\nconst ReviewedData = z.object({batch: ModelProjectVersionedRefSchema, examplesSha256: AlphaEditHashSchema}).strict();\nexport const AlphaEditDataSchema = z.object({edits: ReviewedData, preservation: ReviewedData}).strict();\nexport type AlphaEditData = z.infer<typeof AlphaEditDataSchema>;\nexport const AlphaEditConfigSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditConfig.v1\"),\n implementation: z.literal(\"openpond_qwen_alphaedit_v1\"),\n sourceRevision: z.literal(ALPHAEDIT_SOURCE_REVISION),\n rewriteModule: z.literal(\"mlp.down_proj.weight\"), factToken: z.literal(\"subject_last\"),\n layers: z.array(z.number().int().min(0).max(35)).min(1).max(8),\n lossLayer: z.number().int().min(0).max(35),\n contextTemplateGroups: z.array(z.array(z.string().min(2).max(2048).refine(onePlaceholder)).min(1).max(8)).min(1).max(4),\n nullspaceThreshold: z.number().finite().positive().max(1),\n l2: z.number().finite().positive().max(100_000),\n covariance: z.literal(\"non_padding_uncentered_second_moment_fp32_v1\"),\n projector: z.literal(\"covariance_svd_below_absolute_threshold_v1\"),\n sequentialState: z.literal(\"post_edit_group_mean_keys_outer_product_sum_v1\"),\n targetTokenization: z.literal(\"leading_space_no_special_tokens_v1\"),\n}).strict().superRefine((value, context) => {\n if (value.layers.some((layer, index) => index > 0 && layer <= value.layers[index - 1]!)\n || value.lossLayer < value.layers[value.layers.length - 1]!\n || value.contextTemplateGroups[0]?.length !== 1 || value.contextTemplateGroups[0]?.[0] !== \"{}\")\n context.addIssue({code: \"custom\", message: \"Layers must increase, the loss layer must follow the rewrite layers, and the first context group must be the clean prompt.\"});\n const templates = value.contextTemplateGroups.flat();\n if (new Set(templates).size !== templates.length)\n context.addIssue({code: \"custom\", message: \"Context templates must be unique.\"});\n});\nexport type AlphaEditConfig = z.infer<typeof AlphaEditConfigSchema>;\nexport const AlphaEditTrainingSettingsSchema = z.object({\n maxSteps: z.number().int().min(1).max(128), learningRate: z.number().finite().positive().max(1),\n klFactor: z.number().finite().min(0).max(100), latentWeightDecay: z.number().finite().min(0).max(100),\n clampNormFactor: z.number().finite().positive().max(100),\n maxSequenceLength: z.number().int().min(2).max(8192),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxForwardTokenWork: z.number().int().positive().max(100_000_000),\n maxCheckpointBytes: z.number().int().positive().max(ALPHAEDIT_MAX_CHECKPOINT_BYTES),\n seed: z.number().int().min(0).max(2_147_483_647),\n}).strict();\nexport type AlphaEditTrainingSettings = z.infer<typeof AlphaEditTrainingSettingsSchema>;\nexport const AlphaEditArtifactReferenceSchema = z.object({id: Id, contentHash: AlphaEditHashSchema}).strict();\nexport const AlphaEditTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditTrainingRequest.v1\"),\n model: AlphaEditModelSchema, data: AlphaEditDataSchema,\n config: AlphaEditConfigSchema, training: AlphaEditTrainingSettingsSchema,\n parentArtifact: AlphaEditArtifactReferenceSchema.nullable(),\n}).strict();\nexport type AlphaEditTrainingRequest = z.infer<typeof AlphaEditTrainingRequestSchema>;\n\nexport async function parseAndVerifyAlphaEditTrainingRequest(raw: unknown) {\n return AlphaEditTrainingRequestSchema.parse(raw);\n}\n\n/** These are already reviewed literal edit/preservation records. The host must\n * resolve their batch references and reauthorize them before issuing work. */\nexport async function verifyAlphaEditData(request: AlphaEditTrainingRequest, rawEdits: unknown, rawPreservation: unknown) {\n const parsed = AlphaEditTrainingRequestSchema.parse(request);\n const edits = AlphaEditExamplesSchema.parse(rawEdits), preservation = AlphaEditPreservationExamplesSchema.parse(rawPreservation);\n if (await canonicalSha256(edits) !== parsed.data.edits.examplesSha256\n || await canonicalSha256(preservation) !== parsed.data.preservation.examplesSha256)\n throw new OpenPondProtocolError(\"alphaedit_data_mismatch\", \"The AlphaEdit input differs from its reviewed edit or preservation batch.\");\n return {edits, preservation};\n}\n","import { z } from \"zod\";\nimport { AlphaEditArtifactReferenceSchema, AlphaEditConfigSchema, AlphaEditDataSchema, AlphaEditHashSchema as Hash,\n AlphaEditModelSchema, AlphaEditTrainingRequestSchema,\n type AlphaEditConfig, type AlphaEditTrainingRequest } from \"./alphaedit.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const AlphaEditTensorSchema = z.object({\n name: z.string().regex(/^[A-Za-z0-9_.]{1,200}$/),\n shape: z.array(z.number().int().positive().max(1_000_000)).length(2), dtype: z.enum([\"BF16\", \"F32\"]),\n}).strict();\nexport const ALPHAEDIT_MAX_FILE_BYTES = 2_147_483_648;\nexport const AlphaEditStateFilePathSchema = z.string().regex(/^state-(?:[0-9]|[12][0-9]|3[0-5])\\.safetensors$/);\nconst Payload = z.object({sha256: Hash, sizeBytes: z.number().int().positive().max(ALPHAEDIT_MAX_FILE_BYTES),\n tensors: z.array(AlphaEditTensorSchema).min(1).max(24)}).strict();\n\nexport function alphaEditTensorInventory(config: AlphaEditConfig) {\n const parsed = AlphaEditConfigSchema.parse(config);\n return {\n patch: parsed.layers.map(layer => ({name: `layers.${layer}.mlp.down_proj.weight`, shape: [4096, 12288], dtype: \"BF16\" as const})),\n state: parsed.layers.flatMap(layer => [\"covariance\", \"projector\", \"cache_c\"].map(name => ({\n name: `layers.${layer}.${name}`, shape: [12288, 12288], dtype: \"F32\" as const,\n }))),\n };\n}\n/** Uncompressed tensors plus bounded safetensors headers and canonical manifest.\n * This is a storage bound; it is not a GPU-memory or monetary estimate. */\nexport function alphaEditMinimumCheckpointBytes(config: AlphaEditConfig) {\n const layers = AlphaEditConfigSchema.parse(config).layers.length;\n return layers * (4096 * 12288 * 2 + 3 * 12288 * 12288 * 4) + (layers + 1) * (65_536 + 8) + 262_144;\n}\nexport const AlphaEditArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditArtifact.v1\"), method: z.literal(\"alphaedit\"),\n config: AlphaEditConfigSchema,\n pins: z.object({baseModel: AlphaEditModelSchema, configHash: Hash, recipeHash: Hash, dataHash: Hash,\n data: AlphaEditDataSchema, runtimeHash: Hash, parentArtifactHash: Hash.nullable(),\n preservationModelHash: Hash,\n }).strict(),\n representation: z.literal(\"exact_replacement_bf16_down_proj_matrices_v1\"),\n payloads: z.object({patch: Payload.extend({path: z.literal(\"patch.safetensors\")}),\n state: z.array(Payload.extend({path: AlphaEditStateFilePathSchema})).min(1).max(8)}).strict(),\n}).strict();\nexport const AlphaEditArtifactSchema = AlphaEditArtifactContentSchema.extend({contentHash: Hash});\nexport type AlphaEditArtifact = z.infer<typeof AlphaEditArtifactSchema>;\nconst order = (items: z.infer<typeof AlphaEditTensorSchema>[]) => [...items].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\nexport async function parseAndVerifyAlphaEditArtifact(raw: unknown, expected?: {request: AlphaEditTrainingRequest; runtimeHash: string}) {\n const value = AlphaEditArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const inventory = alphaEditTensorInventory(value.config);\n const fail = (): never => {throw new OpenPondProtocolError(\"alphaedit_artifact_mismatch\", \"The AlphaEdit matrix patch differs from its exact model, state or input.\");};\n if (contentHash !== await canonicalSha256(content)\n || value.pins.configHash !== await canonicalSha256(value.config)\n || value.pins.dataHash !== await canonicalSha256(value.pins.data)\n || value.pins.preservationModelHash !== await canonicalSha256(value.pins.baseModel)\n || value.payloads.patch.sizeBytes < value.config.layers.length * 4096 * 12288 * 2\n || value.payloads.state.length !== value.config.layers.length\n || canonicalJson(order(value.payloads.patch.tensors)) !== canonicalJson(order(inventory.patch))\n || value.payloads.state.some((payload, index) => payload.path !== `state-${value.config.layers[index]}.safetensors`\n || payload.sizeBytes < 3 * 12288 * 12288 * 4\n || canonicalJson(order(payload.tensors)) !== canonicalJson(order(inventory.state.filter(tensor => tensor.name.startsWith(`layers.${value.config.layers[index]}.`)))))) fail();\n if (expected) {\n const request = AlphaEditTrainingRequestSchema.parse(expected.request);\n if (canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.config) !== canonicalJson(request.config)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data)\n || value.pins.recipeHash !== await canonicalSha256(request.training)\n || value.pins.runtimeHash !== expected.runtimeHash\n || value.pins.parentArtifactHash !== (request.parentArtifact?.contentHash ?? null)\n || value.payloads.patch.sizeBytes + value.payloads.state.reduce((sum, payload) => sum + payload.sizeBytes, 0) > request.training.maxCheckpointBytes) fail();\n }\n return value;\n}\n\nexport const AlphaEditModuleFileSchema = z.object({path: z.union([z.enum([\"manifest.json\", \"patch.safetensors\"]), AlphaEditStateFilePathSchema]),\n artifactId: z.string().min(1).max(500), sha256: Hash, sizeBytes: z.number().int().positive().max(ALPHAEDIT_MAX_FILE_BYTES)}).strict();\n/** Actual final-head teacher-forced outcomes on the same reviewed inputs.\n * These are separate from latent objectives and are not held-out quality. */\nexport const AlphaEditComparisonsSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditComparisons.v1\"),\n startingState: z.enum([\"base\", \"parent\"]), vocabularySize: z.number().int().min(1).max(262_144),\n edits: z.array(z.object({id: z.string().min(1).max(500), contextCount: z.number().int().min(1).max(32),\n targetTokens: z.number().int().min(1).max(32 * 8191),\n beforeMeanTargetNll: z.number().finite().nonnegative(), afterMeanTargetNll: z.number().finite().nonnegative(),\n reloadedMeanTargetNll: z.number().finite().nonnegative(),\n }).strict()).min(1).max(64),\n /** Full-vocabulary KL(final edited || starting) at each literal preservation\n * text's final non-padding position; every reviewed row is included. */\n preservation: z.object({examples: z.number().int().min(1).max(4096), comparedPositions: z.number().int().min(1).max(4096),\n meanNextTokenKl: z.number().finite().nonnegative(), maximumNextTokenKl: z.number().finite().nonnegative(),\n }).strict(),\n reload: z.object({reference: z.literal(\"final_edited_model\"),\n comparedTargetTokens: z.number().int().min(1).max(64 * 32 * 8191),\n comparedPreservationPositions: z.number().int().min(1).max(4096),\n /** KL(reloaded || final), not KL to the original unedited state. */\n meanNextTokenKl: z.number().finite().nonnegative(), maximumNextTokenKl: z.number().finite().nonnegative(),\n maximumAbsoluteTargetNllDifference: z.number().finite().nonnegative(),\n maximumAbsoluteLogProbabilityDifference: z.number().finite().nonnegative(),\n absoluteTolerance: z.literal(1e-5), equivalent: z.boolean(),\n baseWeightsHash: Hash, editedWeightsHash: Hash, untouchedWeightsHash: Hash,\n }).strict(),\n}).strict();\nexport type AlphaEditComparisons = z.infer<typeof AlphaEditComparisonsSchema>;\n\nexport const AlphaEditTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditTrainingResult.v1\"), inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash, editsProcessed: z.number().int().min(1).max(64),\n latentOptimizerSteps: z.number().int().min(0).max(8192),\n forwardTokenWork: z.number().int().positive().max(100_000_000),\n durationMs: z.number().finite().nonnegative().max(21_600_000),\n comparisons: AlphaEditComparisonsSchema,\n targetLosses: z.array(z.object({id: z.string().min(1).max(500), initial: z.number().finite().nonnegative(), final: z.number().finite().nonnegative(),\n optimizerSteps: z.number().int().min(0).max(128)}).strict()).min(1).max(64),\n untouchedWeightsHashBefore: Hash, untouchedWeightsHashAfter: Hash,\n editedWeightsHashBefore: Hash, editedWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n layerEvidence: z.array(z.object({layer: z.number().int().min(0).max(35), preservationTokens: z.number().int().positive(),\n nullspaceRank: z.number().int().min(0).max(12288), updateFrobeniusNorm: z.number().finite().nonnegative(),\n solveRelativeResidual: z.number().finite().nonnegative().max(0.01),\n sequentialKeyCount: z.number().int().min(1).max(64),\n }).strict()).min(1).max(8),\n artifact: AlphaEditArtifactReferenceSchema.extend({manifest: AlphaEditArtifactSchema, files: z.array(AlphaEditModuleFileSchema).min(3).max(10)}),\n}).strict();\nexport const AlphaEditTrainingResultSchema = AlphaEditTrainingResultContentSchema.extend({contentHash: Hash});\nexport type AlphaEditTrainingResult = z.infer<typeof AlphaEditTrainingResultSchema>;\nexport async function parseAndVerifyAlphaEditTrainingResult(raw: unknown, expected: {request: AlphaEditTrainingRequest; runtimeHash: string}) {\n const request = AlphaEditTrainingRequestSchema.parse(expected.request);\n const value = AlphaEditTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyAlphaEditArtifact(value.artifact.manifest, expected);\n const metadata = value.artifact.files.find(file => file.path === \"manifest.json\");\n const patch = value.artifact.files.find(file => file.path === \"patch.safetensors\");\n const payloads = [manifest.payloads.patch, ...manifest.payloads.state];\n const comparison = value.comparisons, reload = comparison.reload;\n const contextCount = request.config.contextTemplateGroups.reduce((sum, group) => sum + group.length, 0);\n const equivalent = reload.baseWeightsHash === request.model.weightsHash\n && reload.editedWeightsHash === value.editedWeightsHashAfter\n && reload.untouchedWeightsHash === value.untouchedWeightsHashAfter\n && reload.maximumAbsoluteTargetNllDifference <= reload.absoluteTolerance\n && reload.maximumAbsoluteLogProbabilityDifference <= reload.absoluteTolerance\n && reload.maximumNextTokenKl <= reload.absoluteTolerance;\n if (contentHash !== await canonicalSha256(content) || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.runtimeHash !== expected.runtimeHash\n || value.dataHash !== await canonicalSha256(request.data)\n || value.untouchedWeightsHashBefore !== value.untouchedWeightsHashAfter\n || value.targetLosses.length !== value.editsProcessed || new Set(value.targetLosses.map(row => row.id)).size !== value.editsProcessed\n || value.latentOptimizerSteps !== value.targetLosses.reduce((sum, row) => sum + row.optimizerSteps, 0)\n || value.targetLosses.some(row => row.optimizerSteps > request.training.maxSteps)\n || comparison.startingState !== (request.parentArtifact ? \"parent\" : \"base\")\n || comparison.edits.length !== value.editsProcessed\n || canonicalJson(comparison.edits.map(row => row.id)) !== canonicalJson(value.targetLosses.map(row => row.id))\n || comparison.edits.some(row => row.contextCount !== contextCount || row.targetTokens % contextCount !== 0\n || row.targetTokens > contextCount * (request.training.maxSequenceLength - 1)\n || Math.abs(row.afterMeanTargetNll - row.reloadedMeanTargetNll) > reload.maximumAbsoluteTargetNllDifference + 1e-12)\n || comparison.preservation.examples !== comparison.preservation.comparedPositions\n || comparison.preservation.meanNextTokenKl > comparison.preservation.maximumNextTokenKl + 1e-12\n || reload.comparedTargetTokens !== comparison.edits.reduce((sum, row) => sum + row.targetTokens, 0)\n || reload.comparedPreservationPositions !== comparison.preservation.comparedPositions\n || reload.meanNextTokenKl > reload.maximumNextTokenKl + 1e-12\n || reload.equivalent !== equivalent\n || value.forwardTokenWork < 3 * (reload.comparedTargetTokens + reload.comparedPreservationPositions)\n || value.forwardTokenWork > request.training.maxForwardTokenWork || value.durationMs > request.training.maxDurationSeconds * 1000\n || canonicalJson(value.layerEvidence.map(row => row.layer)) !== canonicalJson(request.config.layers)\n || value.layerEvidence.some(row => row.sequentialKeyCount !== value.editsProcessed)\n || value.artifact.contentHash !== manifest.contentHash || !metadata || !patch\n || value.artifact.files.length !== request.config.layers.length + 2\n || new Set(value.artifact.files.map(file => file.path)).size !== value.artifact.files.length\n || metadata.sha256 !== await canonicalSha256(manifest) || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || metadata.sizeBytes > 262_144\n || patch.sha256 !== manifest.payloads.patch.sha256 || patch.sizeBytes !== manifest.payloads.patch.sizeBytes\n || payloads.some(payload => !value.artifact.files.some(file => file.path === payload.path\n && file.sha256 === payload.sha256 && file.sizeBytes === payload.sizeBytes))\n || value.artifact.files.some(file => file.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, file) => sum + file.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"alphaedit_result_mismatch\", \"The AlphaEdit result differs from its matrix patch, observed work or committed custody.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport const NEURON_TRAINING_MAX_BYTES = 16_777_216;\nexport const NEURON_TRAINING_UPSTREAM_REVISION = \"8a55f3159f735eb0823d7a894f67f632bf568bb3\";\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronTrainingCoordinateSchema = z.object({\n layer: z.number().int().min(0).max(35), neuron: z.number().int().min(0).max(12_287),\n}).strict();\nexport const NeuronTrainingSelectionSchema = z.object({\n count: z.number().int().min(1).max(128),\n span: z.enum([\"reply_prediction\", \"reply_start\", \"prompt\"]),\n backgroundStatistic: z.enum([\"mean_domains\", \"max_domains\"]),\n maximumBackgroundTargetRatio: z.number().finite().min(0).max(1),\n gradientExamples: z.number().int().min(1).max(64),\n explicitCoordinates: z.array(NeuronTrainingCoordinateSchema).min(1).max(128).nullable(),\n}).strict().superRefine((value, context) => {\n if (value.explicitCoordinates && (value.explicitCoordinates.length !== value.count\n || new Set(value.explicitCoordinates.map(row => `${row.layer}:${row.neuron}`)).size !== value.count))\n context.addIssue({code: \"custom\", path: [\"explicitCoordinates\"], message: \"Explicit coordinates must be distinct and match the selected count.\"});\n});\nexport const NeuronTrainingDataReferenceSchema = z.object({\n batch: ModelProjectVersionedRefSchema, examplesSha256: Hash, encodingHash: Hash,\n}).strict();\nexport const NeuronTrainingDataSchema = z.object({\n target: NeuronTrainingDataReferenceSchema,\n background: z.array(NeuronTrainingDataReferenceSchema.extend({domain: z.string().trim().min(1).max(100)}).strict()).min(1).max(8),\n preservation: NeuronTrainingDataReferenceSchema.nullable(),\n}).strict().superRefine((value, context) => {\n if (new Set(value.background.map(row => row.domain)).size !== value.background.length)\n context.addIssue({code: \"custom\", path: [\"background\"], message: \"Background domains must have distinct names.\"});\n});\nexport const NeuronTrainingSettingsSchema = z.object({\n learningRate: z.number().finite().positive().max(0.1),\n maxSteps: z.number().int().min(1).max(128),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n maxSequenceLength: z.number().int().min(2).max(8192),\n preservationWeight: z.number().finite().min(0).max(100),\n preservationExamplesPerStep: z.number().int().min(0).max(32),\n seed: z.number().int().min(0).max(2_147_483_647),\n maxDurationSeconds: z.number().finite().min(1).max(21_600),\n maxCheckpointBytes: z.number().int().min(1).max(NEURON_TRAINING_MAX_BYTES),\n maximumForwardTokenWork: z.number().int().min(1).max(100_000_000),\n}).strict();\n/** A dense Qwen3 port, not a claim that the upstream quality findings transfer. */\nexport const NeuronTrainingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.selectiveNeuronTrainingRequest.v1\"),\n model: NeuronSteeringModelSchema, data: NeuronTrainingDataSchema,\n selection: NeuronTrainingSelectionSchema, training: NeuronTrainingSettingsSchema,\n /** The exported inference delta has no optimizer state. Never silently reset a continuation. */\n parentArtifact: z.null(),\n}).strict().superRefine((value, context) => {\n if (value.model.modelId !== \"Qwen/Qwen3-8B\" || value.model.revision !== \"b968826d9c46dd6066d109eabc6255188de91218\"\n || value.model.dtype !== \"bfloat16\" || value.model.hiddenSize !== 4096 || value.model.intermediateSizes.length !== 36\n || value.model.intermediateSizes.some(size => size !== 12288))\n context.addIssue({code: \"custom\", path: [\"model\"], message: \"Use the exact supported dense BF16 Qwen3-8B source identity.\"});\n const preserve = value.training.preservationWeight > 0;\n if (preserve !== (value.data.preservation !== null) || preserve !== (value.training.preservationExamplesPerStep > 0))\n context.addIssue({code: \"custom\", path: [\"training\", \"preservationWeight\"], message: \"Preservation data, weight and per-step work must be present together.\"});\n});\nexport type NeuronTrainingRequest = z.infer<typeof NeuronTrainingRequestSchema>;\nexport type NeuronTrainingSelection = z.infer<typeof NeuronTrainingSelectionSchema>;\nexport type NeuronTrainingData = z.infer<typeof NeuronTrainingDataSchema>;\nexport type NeuronTrainingSettings = z.infer<typeof NeuronTrainingSettingsSchema>;\nexport const NeuronTrainingEncodingSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingEncoding.v1\"),\n implementation: z.literal(\"supervised_trainer.prepare_example.v1\"),\n modelHash: Hash, tokenizerHash: Hash, maxSequenceLength: z.number().int().min(2).max(8192),\n completionOnly: z.literal(true), enableThinking: z.literal(false),\n truncation: z.literal(\"left_prompt_preserve_final_target_v1\"),\n selectionBoundaries: z.literal(\"verified_last_user_template_offsets_v1\"),\n}).strict();\nexport async function neuronTrainingEncoding(model: z.infer<typeof NeuronSteeringModelSchema>, maxSequenceLength: number) {\n const parsed = NeuronSteeringModelSchema.parse(model);\n return NeuronTrainingEncodingSchema.parse({schemaVersion: \"openpond.neuronTrainingEncoding.v1\",\n implementation: \"supervised_trainer.prepare_example.v1\", modelHash: await canonicalSha256(parsed), tokenizerHash: parsed.tokenizerHash,\n maxSequenceLength, completionOnly: true, enableThinking: false, truncation: \"left_prompt_preserve_final_target_v1\",\n selectionBoundaries: \"verified_last_user_template_offsets_v1\"});\n}\nexport async function parseAndVerifyNeuronTrainingRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n const value = NeuronTrainingRequestSchema.parse(raw);\n const encodingHash = await canonicalSha256(await neuronTrainingEncoding(value.model, value.training.maxSequenceLength));\n if ([value.data.target, ...value.data.background, ...(value.data.preservation ? [value.data.preservation] : [])]\n .some(row => row.encodingHash !== encodingHash))\n throw new OpenPondProtocolError(\"neuron_training_encoding_mismatch\", \"The reviewed batches differ from the exact native supervised encoding.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { NEURON_TRAINING_MAX_BYTES, parseAndVerifyNeuronTrainingRequest, type NeuronTrainingRequest } from \"./neuron-training.js\";\nimport { NeuronTrainingArtifactSchema, NeuronTrainingSelectionResultSchema, parseAndVerifyNeuronTrainingArtifact } from \"./neuron-training-artifact.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/), Work = z.number().int().nonnegative().max(100_000_000);\nexport const NeuronTrainingWorkSchema = z.object({selectionTarget: Work, selectionBackground: Work, selectionGradient: Work,\n training: Work, preservationOriginal: Work, preservationEdited: Work, verification: Work}).strict();\nexport const NeuronTrainingResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingResult.v1\"), inputHash: Hash, modelHash: Hash, runtimeHash: Hash, dataHash: Hash,\n preparedRowsHash: Hash, selection: NeuronTrainingSelectionResultSchema,\n optimizerSteps: z.number().int().min(1).max(128), examplesProcessed: z.number().int().min(1).max(4096),\n targetTokens: z.number().int().positive().max(33_554_432), preservationTokens: Work,\n work: NeuronTrainingWorkSchema, forwardTokenWork: Work, backwardTokenWork: Work,\n durationMs: z.number().finite().nonnegative().max(21_600_000), meanLoss: z.number().finite().nonnegative(), finalLoss: z.number().finite().nonnegative(),\n meanPreservationKl: z.number().finite().nonnegative().nullable(),\n baseWeightsHashBefore: Hash, baseWeightsHashAfter: Hash,\n baseOptimizerParameterCount: z.literal(0), baseGradientParameterCount: z.literal(0),\n trainableParameterCount: z.number().int().min(4097).max(524_416),\n artifact: z.object({id: z.string().min(1).max(500), contentHash: Hash, manifest: NeuronTrainingArtifactSchema,\n files: z.array(z.object({path: z.enum([\"manifest.json\", \"patch.safetensors\"]), artifactId: z.string().min(1).max(500),\n sha256: Hash, sizeBytes: z.number().int().positive().max(NEURON_TRAINING_MAX_BYTES)}).strict()).length(2)}).strict(),\n}).strict();\nexport const NeuronTrainingResultSchema = NeuronTrainingResultContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingResult = z.infer<typeof NeuronTrainingResultSchema>;\nexport async function parseAndVerifyNeuronTrainingResult(raw: unknown, expected: {request: NeuronTrainingRequest; runtimeHash: string}) {\n assertBoundedTaskJson(raw, 1_048_576);\n const request = await parseAndVerifyNeuronTrainingRequest(expected.request);\n const value = NeuronTrainingResultSchema.parse(raw), {contentHash, ...content} = value;\n const manifest = await parseAndVerifyNeuronTrainingArtifact(value.artifact.manifest, {request, runtimeHash: expected.runtimeHash});\n const tensor = value.artifact.files.find(row => row.path === \"patch.safetensors\"), metadata = value.artifact.files.find(row => row.path === \"manifest.json\");\n if (contentHash !== await canonicalSha256(content) || value.inputHash !== await canonicalSha256(request)\n || value.modelHash !== await canonicalSha256(request.model) || value.dataHash !== await canonicalSha256(request.data)\n || value.runtimeHash !== expected.runtimeHash || value.preparedRowsHash !== value.selection.preparedRowsHash\n || canonicalJson(value.selection) !== canonicalJson(manifest.selection) || value.artifact.contentHash !== manifest.contentHash\n || value.baseWeightsHashBefore !== request.model.weightsHash || value.baseWeightsHashAfter !== value.baseWeightsHashBefore\n || value.trainableParameterCount !== request.selection.count * (request.model.hiddenSize + 1)\n || value.optimizerSteps !== request.training.maxSteps || value.examplesProcessed !== value.optimizerSteps * request.training.gradientAccumulationSteps\n || value.durationMs > request.training.maxDurationSeconds * 1000 || value.forwardTokenWork > request.training.maximumForwardTokenWork\n || value.forwardTokenWork !== Object.values(value.work).reduce((sum, work) => sum + work, 0)\n || value.backwardTokenWork !== value.work.selectionGradient + value.work.training + value.work.preservationEdited\n || value.targetTokens > value.work.training || value.work.selectionTarget <= 0 || value.work.selectionBackground <= 0\n || value.work.selectionGradient !== value.work.selectionTarget || value.work.verification <= 0\n || (request.training.preservationWeight > 0) !== (value.meanPreservationKl !== null)\n || value.work.preservationOriginal !== value.work.preservationEdited\n || request.training.preservationWeight === 0 && (value.preservationTokens !== 0 || value.work.preservationOriginal !== 0)\n || request.training.preservationWeight > 0 && (value.preservationTokens <= 0 || value.work.preservationOriginal <= 0)\n || !tensor || !metadata || tensor.sha256 !== manifest.payload.sha256 || tensor.sizeBytes !== manifest.payload.sizeBytes\n || metadata.sha256 !== await canonicalSha256(manifest) || metadata.sizeBytes !== new TextEncoder().encode(canonicalJson(manifest)).byteLength\n || value.artifact.files.some(row => row.artifactId !== value.artifact.id)\n || value.artifact.files.reduce((sum, row) => sum + row.sizeBytes, 0) > request.training.maxCheckpointBytes)\n throw new OpenPondProtocolError(\"neuron_training_result_mismatch\", \"The selective neuron result differs from its exact run, measured work, frozen base or committed learned patch.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { NeuronTrainingCoordinateSchema, NeuronTrainingDataSchema, NEURON_TRAINING_MAX_BYTES,\n NEURON_TRAINING_UPSTREAM_REVISION, parseAndVerifyNeuronTrainingRequest, type NeuronTrainingRequest } from \"./neuron-training.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const NeuronTrainingAlgorithmSchema = z.object({\n implementation: z.literal(\"openpond_qwen3_selective_columns_v1\"),\n upstream: z.literal(\"changjonathanc/neuron-tuning\"), revision: z.literal(NEURON_TRAINING_UPSTREAM_REVISION), license: z.literal(\"Apache-2.0\"),\n hook: z.literal(\"mlp.down_proj\"), operation: z.literal(\"output_plus_selected_input_times_delta_v1\"),\n parameterization: z.literal(\"column_gain_rms_direction_v1\"), activityQuantile: z.literal(0.9),\n backgroundFloor: z.literal(0.000001), gradientSubsetSeed: z.literal(0),\n optimizer: z.literal(\"Adam\"), betas: z.tuple([z.literal(0.9), z.literal(0.999)]), epsilon: z.literal(1e-8),\n weightDecay: z.literal(0), gradientClipNorm: z.literal(1), batchSize: z.literal(1),\n parameterDtype: z.literal(\"float32\"), resume: z.literal(\"unsupported\"),\n}).strict();\nexport function neuronTrainingAlgorithm() {\n return NeuronTrainingAlgorithmSchema.parse({implementation: \"openpond_qwen3_selective_columns_v1\",\n upstream: \"changjonathanc/neuron-tuning\", revision: NEURON_TRAINING_UPSTREAM_REVISION, license: \"Apache-2.0\",\n hook: \"mlp.down_proj\", operation: \"output_plus_selected_input_times_delta_v1\", parameterization: \"column_gain_rms_direction_v1\",\n activityQuantile: 0.9, backgroundFloor: 0.000001, gradientSubsetSeed: 0,\n optimizer: \"Adam\", betas: [0.9, 0.999], epsilon: 1e-8, weightDecay: 0, gradientClipNorm: 1,\n batchSize: 1, parameterDtype: \"float32\", resume: \"unsupported\"});\n}\nexport const NeuronTrainingSelectionEntrySchema = NeuronTrainingCoordinateSchema.extend({\n targetMeanAbsolute: z.number().finite().positive(), backgroundMeanAbsolute: z.number().finite().nonnegative(),\n backgroundTargetRatio: z.number().finite().nonnegative(), gradientNorm: z.number().finite().nonnegative(),\n score: z.number().finite().nonnegative(), targetActivityThreshold: z.number().finite().nonnegative(),\n backgroundByDomain: z.array(z.object({domainIndex: z.number().int().min(0).max(7), meanAbsolute: z.number().finite().nonnegative()}).strict()).min(1).max(8),\n}).strict();\nexport const NeuronTrainingSelectionResultContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingSelectionResult.v1\"), modelHash: Hash, dataHash: Hash, selectionConfigHash: Hash,\n preparedRowsHash: Hash, source: z.enum([\"automatic\", \"explicit\"]),\n targetExampleIds: z.array(z.string().min(1).max(200)).min(1).max(64),\n eligibleCount: z.number().int().min(1).max(442_368),\n entries: z.array(NeuronTrainingSelectionEntrySchema).min(1).max(128),\n}).strict();\nexport const NeuronTrainingSelectionResultSchema = NeuronTrainingSelectionResultContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingSelectionResult = z.infer<typeof NeuronTrainingSelectionResultSchema>;\nfunction fail(): never { throw new OpenPondProtocolError(\"neuron_training_artifact_mismatch\", \"The learned patch differs from its exact base, verified selection, data, settings or tensor inventory.\"); }\nconst close = (a: number, b: number) => Math.abs(a - b) <= 1e-6 * Math.max(1, Math.abs(a), Math.abs(b));\nexport async function parseAndVerifyNeuronTrainingSelection(raw: unknown, request: NeuronTrainingRequest) {\n const value = NeuronTrainingSelectionResultSchema.parse(raw), {contentHash, ...content} = value;\n const coordinates = value.entries.map(({layer, neuron}) => ({layer, neuron}));\n if (contentHash !== await canonicalSha256(content) || value.modelHash !== await canonicalSha256(request.model)\n || value.dataHash !== await canonicalSha256(request.data) || value.selectionConfigHash !== await canonicalSha256(request.selection)\n || value.entries.length !== request.selection.count || value.eligibleCount < value.entries.length\n || new Set(value.entries.map(row => `${row.layer}:${row.neuron}`)).size !== value.entries.length\n || new Set(value.targetExampleIds).size !== value.targetExampleIds.length || value.targetExampleIds.length > request.selection.gradientExamples\n || value.source !== (request.selection.explicitCoordinates ? \"explicit\" : \"automatic\")\n || request.selection.explicitCoordinates && canonicalJson(coordinates) !== canonicalJson(request.selection.explicitCoordinates)) fail();\n if (value.source === \"automatic\" && value.entries.some((row, index) => {\n const previous = value.entries[index - 1];\n return previous && (row.score > previous.score || row.score === previous.score\n && (row.layer < previous.layer || row.layer === previous.layer && row.neuron < previous.neuron));\n })) fail();\n for (const row of value.entries) {\n if (row.targetMeanAbsolute < row.targetActivityThreshold\n || row.backgroundTargetRatio > request.selection.maximumBackgroundTargetRatio + 1e-6\n || !close(row.backgroundTargetRatio, row.backgroundMeanAbsolute / row.targetMeanAbsolute)\n || !close(row.score, row.gradientNorm / Math.max(row.backgroundMeanAbsolute, 0.000001))\n || canonicalJson(row.backgroundByDomain.map(item => item.domainIndex)) !== canonicalJson(request.data.background.map((_item, index) => index))) fail();\n const background = request.selection.backgroundStatistic === \"max_domains\"\n ? Math.max(...row.backgroundByDomain.map(item => item.meanAbsolute))\n : row.backgroundByDomain.reduce((sum, item) => sum + item.meanAbsolute, 0) / row.backgroundByDomain.length;\n if (!close(background, row.backgroundMeanAbsolute)) fail();\n }\n return value;\n}\nexport const NeuronTrainingPatchTensorSchema = z.object({\n name: z.string().regex(/^layer(?:[0-9]|[12][0-9]|3[0-5])\\.(?:indices|delta)$/),\n dtype: z.enum([\"I64\", \"F32\"]), shape: z.array(z.number().int().positive().max(4096)).min(1).max(2),\n}).strict();\nexport function neuronTrainingPatchTensorInventory(selection: NeuronTrainingSelectionResult) {\n const layers = new Map<number, number>();\n for (const entry of NeuronTrainingSelectionResultSchema.parse(selection).entries) layers.set(entry.layer, (layers.get(entry.layer) ?? 0) + 1);\n return [...layers].flatMap(([layer, count]) => [\n {name: `layer${layer}.indices`, dtype: \"I64\" as const, shape: [count]},\n {name: `layer${layer}.delta`, dtype: \"F32\" as const, shape: [4096, count]},\n ]).sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n}\nexport const NeuronTrainingArtifactContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingArtifact.v1\"), method: z.literal(\"selective_neuron_training\"),\n algorithm: NeuronTrainingAlgorithmSchema,\n pins: z.object({baseModel: NeuronSteeringModelSchema, inputHash: Hash, data: NeuronTrainingDataSchema, dataHash: Hash,\n selectionConfigHash: Hash, trainingConfigHash: Hash, runtimeHash: Hash, parentArtifactHash: z.null()}).strict(),\n selection: NeuronTrainingSelectionResultSchema,\n payload: z.object({path: z.literal(\"patch.safetensors\"), sha256: Hash,\n sizeBytes: z.number().int().positive().max(NEURON_TRAINING_MAX_BYTES),\n tensors: z.array(NeuronTrainingPatchTensorSchema).min(2).max(72)}).strict(),\n}).strict();\nexport const NeuronTrainingArtifactSchema = NeuronTrainingArtifactContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingArtifact = z.infer<typeof NeuronTrainingArtifactSchema>;\nexport async function parseAndVerifyNeuronTrainingArtifact(raw: unknown, expected: {request: NeuronTrainingRequest; runtimeHash: string}) {\n assertBoundedTaskJson(raw, 262_144);\n const value = NeuronTrainingArtifactSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(expected.request);\n await parseAndVerifyNeuronTrainingSelection(value.selection, request);\n if (contentHash !== await canonicalSha256(content) || canonicalJson(value.pins.baseModel) !== canonicalJson(request.model)\n || canonicalJson(value.pins.data) !== canonicalJson(request.data) || value.pins.inputHash !== await canonicalSha256(request)\n || value.pins.dataHash !== await canonicalSha256(request.data) || value.pins.selectionConfigHash !== await canonicalSha256(request.selection)\n || value.pins.trainingConfigHash !== await canonicalSha256(request.training) || value.pins.runtimeHash !== expected.runtimeHash\n || canonicalJson(value.payload.tensors) !== canonicalJson(neuronTrainingPatchTensorInventory(value.selection))\n || value.payload.sizeBytes > request.training.maxCheckpointBytes) fail();\n return value;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { AlphaEditArtifactReferenceSchema, AlphaEditConfigSchema, AlphaEditTrainingSettingsSchema,\n ALPHAEDIT_SOURCE_REVISION } from \"./alphaedit.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedAlphaEditExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash, artifact: AlphaEditArtifactReferenceSchema, modelHash: Hash,\n}).strict();\nexport type SavedAlphaEditExperimentSource = z.infer<typeof SavedAlphaEditExperimentSourceSchema>;\n\n/** Explicit Qwen port defaults. Availability and quality require runtime evidence. */\nexport const ALPHAEDIT_CONFIG_DEFAULTS = AlphaEditConfigSchema.parse({\n schemaVersion: \"openpond.alphaEditConfig.v1\", implementation: \"openpond_qwen_alphaedit_v1\",\n sourceRevision: ALPHAEDIT_SOURCE_REVISION, rewriteModule: \"mlp.down_proj.weight\", factToken: \"subject_last\",\n layers: [27, 28, 29], lossLayer: 31, contextTemplateGroups: [[\"{}\"]],\n nullspaceThreshold: 0.02, l2: 10,\n covariance: \"non_padding_uncentered_second_moment_fp32_v1\",\n projector: \"covariance_svd_below_absolute_threshold_v1\",\n sequentialState: \"post_edit_group_mean_keys_outer_product_sum_v1\",\n targetTokenization: \"leading_space_no_special_tokens_v1\",\n});\nexport const ALPHAEDIT_TRAINING_DEFAULTS = AlphaEditTrainingSettingsSchema.parse({\n maxSteps: 25, learningRate: 0.1, klFactor: 0.0625, latentWeightDecay: 0.5,\n clampNormFactor: 0.75, maxSequenceLength: 2048, maxDurationSeconds: 3600,\n maxForwardTokenWork: 16_000_000, maxCheckpointBytes: 8_589_934_592, seed: 42,\n});\n\nconst Field = z.string().max(100);\nexport const AlphaEditConfigFormDraftSchema = z.object({\n layers: z.string().max(200), lossLayer: Field,\n contextTemplateGroups: z.string().max(65_536), nullspaceThreshold: Field, l2: Field,\n}).strict();\nexport const AlphaEditTrainingFormDraftSchema = z.object({\n maxSteps: Field, learningRate: Field, klFactor: Field, latentWeightDecay: Field,\n clampNormFactor: Field, maxSequenceLength: Field, maxDurationSeconds: Field,\n maxForwardTokenWork: Field, maxCheckpointBytes: Field, seed: Field,\n}).strict();\n/** An incomplete authoring snapshot, never an approved edit or paid dispatch. */\nexport const AlphaEditExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n editsBatch: ModelProjectVersionedRefSchema.nullable(),\n preservationBatch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n config: AlphaEditConfigFormDraftSchema, training: AlphaEditTrainingFormDraftSchema,\n parentArtifact: AlphaEditArtifactReferenceSchema.nullable(),\n startingModule: SavedAlphaEditExperimentSourceSchema.optional(),\n}).strict();\nexport type AlphaEditExperimentFormDraft = z.infer<typeof AlphaEditExperimentFormDraftSchema>;\n\nexport function newAlphaEditExperimentForm(baseModel: z.infer<typeof ModelProjectBaseModelSchema> | null = null): AlphaEditExperimentFormDraft {\n return AlphaEditExperimentFormDraftSchema.parse({\n baseModel, editsBatch: null, preservationBatch: null, name: \"\", maximumSpendUsd: \"\",\n config: {layers: ALPHAEDIT_CONFIG_DEFAULTS.layers.join(\", \"), lossLayer: String(ALPHAEDIT_CONFIG_DEFAULTS.lossLayer),\n contextTemplateGroups: JSON.stringify(ALPHAEDIT_CONFIG_DEFAULTS.contextTemplateGroups),\n nullspaceThreshold: String(ALPHAEDIT_CONFIG_DEFAULTS.nullspaceThreshold), l2: String(ALPHAEDIT_CONFIG_DEFAULTS.l2)},\n training: Object.fromEntries(Object.entries(ALPHAEDIT_TRAINING_DEFAULTS).map(([key, value]) => [key, String(value)])),\n parentArtifact: null,\n });\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { StoredManagedModificationResultReferenceSchema } from \"./experiment-result-reference.js\";\nimport { NeuronTrainingSelectionSchema, NeuronTrainingSettingsSchema } from \"./neuron-training.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedNeuronTrainingExperimentSourceSchema = z.object({\n modelProjectId: Id, versionHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type SavedNeuronTrainingExperimentSource = z.infer<typeof SavedNeuronTrainingExperimentSourceSchema>;\nexport const NEURON_TRAINING_SELECTION_DEFAULTS = NeuronTrainingSelectionSchema.parse({\n count: 8, span: \"reply_prediction\", backgroundStatistic: \"max_domains\",\n maximumBackgroundTargetRatio: 0.2, gradientExamples: 16, explicitCoordinates: null,\n});\nexport const NEURON_TRAINING_DEFAULTS = NeuronTrainingSettingsSchema.parse({\n learningRate: 0.03, maxSteps: 32, gradientAccumulationSteps: 1, maxSequenceLength: 2048,\n preservationWeight: 0, preservationExamplesPerStep: 0, seed: 42,\n maxDurationSeconds: 3600, maxCheckpointBytes: 16_777_216, maximumForwardTokenWork: 16_000_000,\n});\nconst Field = z.string().max(100);\nexport const NeuronTrainingSelectionFormDraftSchema = z.object({\n count: Field, span: NeuronTrainingSelectionSchema.shape.span,\n backgroundStatistic: NeuronTrainingSelectionSchema.shape.backgroundStatistic,\n maximumBackgroundTargetRatio: Field, gradientExamples: Field,\n /** Blank selects automatically; otherwise one layer:neuron coordinate per line. */\n coordinates: z.string().max(10_000),\n}).strict();\nexport const NeuronTrainingSettingsFormDraftSchema = z.object({\n learningRate: Field, maxSteps: Field, gradientAccumulationSteps: Field, maxSequenceLength: Field,\n preservationWeight: Field, preservationExamplesPerStep: Field, seed: Field,\n maxDurationSeconds: Field, maxCheckpointBytes: Field, maximumForwardTokenWork: Field,\n}).strict();\nexport const NeuronTrainingInspectionSourceSchema = z.object({\n result: StoredManagedModificationResultReferenceSchema,\n modelHash: Hash,\n}).strict();\n/** Selection provenance is reauthorized by the compiler; this reference grants\n * no access to a capture and cannot replace reviewed target/background data. */\nexport const NeuronTrainingExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(), targetBatch: ModelProjectVersionedRefSchema.nullable(),\n background: z.array(z.object({domain: z.string().max(100), batch: ModelProjectVersionedRefSchema.nullable()}).strict()).max(8),\n preservationBatch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: Field,\n selection: NeuronTrainingSelectionFormDraftSchema, training: NeuronTrainingSettingsFormDraftSchema,\n parentArtifact: z.null(), inspectionSource: NeuronTrainingInspectionSourceSchema.optional(),\n}).strict();\nexport type NeuronTrainingExperimentFormDraft = z.infer<typeof NeuronTrainingExperimentFormDraftSchema>;\nexport function newNeuronTrainingExperimentForm(baseModel: z.infer<typeof ModelProjectBaseModelSchema> | null = null): NeuronTrainingExperimentFormDraft {\n const selection = NEURON_TRAINING_SELECTION_DEFAULTS;\n return NeuronTrainingExperimentFormDraftSchema.parse({\n baseModel, targetBatch: null, background: [{domain: \"background\", batch: null}], preservationBatch: null,\n name: \"\", maximumSpendUsd: \"\", parentArtifact: null,\n selection: {count: String(selection.count), span: selection.span, backgroundStatistic: selection.backgroundStatistic,\n maximumBackgroundTargetRatio: String(selection.maximumBackgroundTargetRatio), gradientExamples: String(selection.gradientExamples), coordinates: \"\"},\n training: Object.fromEntries(Object.entries(NEURON_TRAINING_DEFAULTS).map(([key, value]) => [key, String(value)])),\n });\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\nimport { TrainingResultCandidateSchema } from \"./training-result.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst OwnerId = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst ApiOrigin = z.url().max(2000).refine(value => {\n try {\n const url = new URL(value);\n return (url.protocol === \"https:\" || url.protocol === \"http:\" &&\n [\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(url.hostname)) &&\n !url.username && !url.password && !url.search && !url.hash && url.origin === value;\n } catch {\n return false;\n }\n}, \"Use a canonical HTTPS API origin, or an explicit loopback development origin.\");\n\nconst scope = {\n location: z.literal(\"cloud\"),\n apiOrigin: ApiOrigin,\n owner: z.object({ teamId: OwnerId, actorId: OwnerId }).strict(),\n /** Workspace Project captured by the producing execution, not a UI filter. */\n projectId: OwnerId.nullable(),\n};\n\n/** A retained completed candidate. Saving a named Model or publishing a registry\n * artifact is independent of this identity and must not change its reference. */\nexport const StoredTrainingResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"training_result\"),\n jobId: Id,\n modelProjectId: Id,\n portableProjectId: Id,\n submissionHash: Hash,\n candidate: z.lazy(() => TrainingResultCandidateSchema.omit({ registryArtifactId: true })),\n executionReceipt: ModelProjectImmutableRefSchema,\n}).strict().superRefine((reference, context) => {\n if ((reference.candidate.composition === \"base\") !== (reference.candidate.parent === null))\n context.addIssue({ code: \"custom\", path: [\"candidate\", \"parent\"], message: \"The candidate composition must retain its exact parent checkpoint.\" });\n});\n\n/** Pins the recorded nested result, whose hash remains stable while cleanup,\n * settlement and the execution's outer read projection continue to change. */\nexport const StoredManagedModificationResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"managed_modification_result\"),\n executionId: OwnerId,\n method: ModelModificationMethodSchema,\n inputHash: Hash,\n runtimeHash: Hash,\n resultHash: Hash,\n}).strict();\n\n/** A completed Engram result retains its committed module independently of the\n * mutable execution projection and any later named Model publication. */\nexport const StoredEngramResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"engram_result\"),\n executionId: OwnerId,\n inputHash: Hash,\n runtimeHash: Hash,\n resultHash: Hash,\n artifact: z.object({ id: OwnerId, contentHash: Hash }).strict(),\n}).strict();\n\n/** Both modes retain the original execution result. Scoring the released\n * Nimble adapter has no customer artifact; trained results always retain their\n * committed learned artifact. Neither reference becomes a saved Model alias. */\nexport const StoredDecisionResultReferenceSchema = z.object({\n ...scope,\n kind: z.literal(\"decision_result\"), mode: z.enum([\"train\", \"score\"]),\n executionId: OwnerId, inputHash: Hash, modelHash: Hash, runtimeHash: Hash, resultHash: Hash,\n artifact: z.object({ id: Id, contentHash: Hash }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if (value.mode === \"train\" && value.artifact === null)\n context.addIssue({code: \"custom\", path: [\"artifact\"], message: \"A trained decision result must retain its exact committed artifact.\"});\n});\n\nconst learnedWeightResult = {\n ...scope, executionId: OwnerId, inputHash: Hash, modelHash: Hash, runtimeHash: Hash, resultHash: Hash,\n artifact: z.object({id: Id, contentHash: Hash}).strict(),\n};\nexport const StoredAlphaEditResultReferenceSchema = z.object({\n ...learnedWeightResult, kind: z.literal(\"alphaedit_result\"),\n}).strict();\nexport const StoredNeuronTrainingResultReferenceSchema = z.object({\n ...learnedWeightResult, kind: z.literal(\"neuron_training_result\"),\n}).strict();\n\n/** References contain no result bytes, credentials or execution approval. Each\n * read must use the authenticated configured origin, reauthorize creator/team/\n * Project access and verify every pin against its canonical result owner. */\nexport const StoredExperimentResultReferenceSchema = z.discriminatedUnion(\"kind\", [\n StoredTrainingResultReferenceSchema,\n StoredManagedModificationResultReferenceSchema,\n StoredEngramResultReferenceSchema,\n StoredDecisionResultReferenceSchema,\n StoredAlphaEditResultReferenceSchema,\n StoredNeuronTrainingResultReferenceSchema,\n]);\nexport type StoredTrainingResultReference = z.infer<typeof StoredTrainingResultReferenceSchema>;\nexport type StoredManagedModificationResultReference = z.infer<typeof StoredManagedModificationResultReferenceSchema>;\nexport type StoredEngramResultReference = z.infer<typeof StoredEngramResultReferenceSchema>;\nexport type StoredDecisionResultReference = z.infer<typeof StoredDecisionResultReferenceSchema>;\nexport type StoredAlphaEditResultReference = z.infer<typeof StoredAlphaEditResultReferenceSchema>;\nexport type StoredNeuronTrainingResultReference = z.infer<typeof StoredNeuronTrainingResultReferenceSchema>;\nexport type StoredExperimentResultReference = z.infer<typeof StoredExperimentResultReferenceSchema>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\n\nconst Id = z.string().trim().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** Source validation identifies a runtime reviewed for a staging trial;\n * GPU qualification requires a retained run of the exact model and runtime.\n * Neither observation is a reservation, funding approval or quality claim. */\nexport const ModelModificationValidationLevelSchema = z.enum([\"source_validated\", \"gpu_qualified\"]);\nexport type ModelModificationValidationLevel = z.infer<typeof ModelModificationValidationLevelSchema>;\nexport function assertModelModificationValidationLevel(\n execution: { state: \"ready\" | \"unavailable\" },\n validationLevel: ModelModificationValidationLevel | null,\n) {\n if ((execution.state === \"ready\") !== (validationLevel !== null))\n throw new OpenPondProtocolError(\"model_modification_validation_mismatch\", \"Runtime validation must describe the observed executable runtime.\");\n}\nexport const ModelModificationMethodSchema = z.enum([\"neuron_steering\", \"inspect_activations\"]);\nexport const ModelModificationCapabilitiesQuerySchema = z.object({\n teamId: Id, modelId: ModelProjectBaseModelSchema.shape.modelId, source: ModelProjectBaseModelSchema.shape.source,\n revision: ModelProjectBaseModelSchema.shape.revision.unwrap().optional(),\n tokenizerRevision: ModelProjectBaseModelSchema.shape.tokenizerRevision.unwrap().optional(),\n chatTemplateHash: ModelProjectBaseModelSchema.shape.chatTemplateHash.unwrap().optional(),\n modelAssetId: ModelProjectBaseModelSchema.shape.modelAssetId.unwrap().optional(),\n}).strict();\nexport type ModelModificationCapabilitiesQuery = z.infer<typeof ModelModificationCapabilitiesQuerySchema>;\n\nexport const ModelModificationExecutionCapabilitySchema = z.discriminatedUnion(\"state\", [\n z.object({ state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]),\n reason: z.string().trim().min(1).max(1000) }).strict(),\n z.object({ state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({ id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.activationReferenceRequest.v1\"),\n evidence: z.object({ id: Id, contentHash: Hash }).strict(),\n }).strict(),\n limits: z.object({ maximumPrompts: z.number().int().positive().max(8), maximumPromptTokens: z.number().int().positive().max(4096),\n maximumVariants: z.number().int().positive().max(17), maximumCoordinates: z.number().int().positive().max(64),\n maximumNewTokens: z.number().int().nonnegative().max(128), maximumCapturedValues: z.number().int().positive().max(65_536),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000), maximumDurationSeconds: z.number().positive().max(300),\n maximumAbsoluteDose: z.number().finite().positive(),\n }).strict(),\n }).strict(),\n]);\nexport type ModelModificationExecutionCapability = z.infer<typeof ModelModificationExecutionCapabilitySchema>;\nexport const ModelModificationCapabilitiesContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelModificationCapabilities.v1\"), teamId: Id, actorId: Id,\n query: ModelModificationCapabilitiesQuerySchema, requestHash: Hash,\n destination: z.literal(\"hosted\"), checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n methods: z.array(z.object({ method: ModelModificationMethodSchema, draftSchema: z.literal(\"openpond.experimentDraft.v1\"),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: ModelModificationExecutionCapabilitySchema,\n }).strict()).length(2),\n}).strict().superRefine((value, ctx) => {\n if (value.teamId !== value.query.teamId || new Set(value.methods.map(row => row.method)).size !== 2)\n ctx.addIssue({ code: \"custom\", message: \"Capabilities must retain one entry per method and the exact workspace.\" });\n for (const row of value.methods) if (row.execution.state === \"ready\" &&\n (value.query.source !== \"managed\" || value.query.modelAssetId !== undefined ||\n row.execution.model.modelId !== value.query.modelId || row.execution.model.revision !== value.query.revision || !value.query.tokenizerRevision))\n ctx.addIssue({ code: \"custom\", message: \"An executable capability must bind this exact admitted managed base.\" });\n});\nexport const ModelModificationCapabilitiesSchema = ModelModificationCapabilitiesContentSchema.safeExtend({ contentHash: Hash });\nexport type ModelModificationCapabilities = z.infer<typeof ModelModificationCapabilitiesSchema>;\n\n/** A scoped observation, not an execution approval, reservation or worker claim. */\nexport async function parseAndVerifyModelModificationCapabilities(raw: unknown, rawQuery: ModelModificationCapabilitiesQuery, actorId?: string) {\n const query = ModelModificationCapabilitiesQuerySchema.parse(rawQuery), value = ModelModificationCapabilitiesSchema.parse(raw);\n for (const method of value.methods) assertModelModificationValidationLevel(method.execution, method.validationLevel);\n const { contentHash, ...content } = value;\n if (canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || contentHash !== await canonicalSha256(content))\n throw new OpenPondProtocolError(\"model_modification_capability_mismatch\", \"Capabilities returned a different model, account or retained observation.\");\n const checked = Date.parse(value.checkedAt), expiry = Date.parse(value.expiresAt);\n if (checked > Date.now() + 30_000 || expiry <= Date.now() || expiry <= checked || expiry - checked > 300_000)\n throw new OpenPondProtocolError(\"model_modification_capability_expired\", \"Refresh model capabilities before preparing execution.\");\n return value;\n}\n\nexport function createModelModificationCapabilitiesClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async modificationCapabilities(raw: ModelModificationCapabilitiesQuery, options?: { signal?: AbortSignal }): Promise<ModelModificationCapabilities> {\n const query = ModelModificationCapabilitiesQuerySchema.parse(raw);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, value);\n const timeout = AbortSignal.timeout(30_000);\n return parseAndVerifyModelModificationCapabilities(await request(`/v1/training/modification-capabilities?${params}`, {\n signal: options?.signal ? AbortSignal.any([options.signal, timeout]) : timeout,\n }), query);\n } };\n}\n","import { z } from \"zod\";\nimport { ExperimentDraftSchema, parseAndVerifyExperimentDraft } from \"./training-experiment-setup.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\n/** Canonical saved-draft pointer shared by chat hosts and headless clients.\n * A pointer grants no access; each host reauthorizes the current document. */\nexport const StoredExperimentDraftReferenceSchema = z.object({\n id: Id, teamId: Id, apiOrigin: z.url().max(2000),\n}).strict();\nexport type StoredExperimentDraftReference = z.infer<typeof StoredExperimentDraftReferenceSchema>;\n\nexport const ExperimentDraftRecordSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftRecord.v1\"),\n id: Id, teamId: Id, ownerUserId: Id, projectId: Id.nullable(),\n revision: z.number().int().positive(), status: z.enum([\"draft\", \"archived\"]),\n draft: ExperimentDraftSchema,\n createdAt: z.iso.datetime(), updatedAt: z.iso.datetime(),\n contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict().superRefine((record, context) => {\n if (record.id !== record.draft.id)\n context.addIssue({ code: \"custom\", path: [\"id\"], message: \"The stored draft identity does not match its document.\" });\n});\nexport const ExperimentDraftSaveSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftSave.v1\"),\n teamId: Id, operationId: Id, expectedRevision: z.number().int().nonnegative(),\n projectId: Id.nullable().default(null), draft: ExperimentDraftSchema,\n}).strict();\nexport const ExperimentDraftArchiveSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftArchive.v1\"),\n teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(),\n}).strict();\nexport const ExperimentDraftReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftReceipt.v1\"),\n operationId: Id, requestHash: z.string().regex(/^[a-f0-9]{64}$/),\n record: ExperimentDraftRecordSchema,\n}).strict();\nexport const ExperimentDraftListQuerySchema = z.object({\n projectId: Id.optional(), search: z.string().trim().max(1000).optional(),\n archived: z.boolean().default(false), cursor: z.string().min(1).max(2000).optional(),\n limit: z.number().int().min(1).max(100).default(30),\n}).strict();\nexport const ExperimentDraftPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftPage.v1\"),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(),\n items: z.array(ExperimentDraftRecordSchema).max(100),\n nextCursor: z.string().min(1).max(2000).nullable(),\n}).strict();\nexport type ExperimentDraftRecord = z.infer<typeof ExperimentDraftRecordSchema>;\nexport type ExperimentDraftSave = z.input<typeof ExperimentDraftSaveSchema>;\nexport type ExperimentDraftArchive = z.infer<typeof ExperimentDraftArchiveSchema>;\nexport type ExperimentDraftReceipt = z.infer<typeof ExperimentDraftReceiptSchema>;\nexport type ExperimentDraftListQuery = z.input<typeof ExperimentDraftListQuerySchema>;\nexport type ExperimentDraftPage = z.infer<typeof ExperimentDraftPageSchema>;\n\nexport async function parseAndVerifyExperimentDraftRecord(raw: unknown) {\n const record = ExperimentDraftRecordSchema.parse(raw);\n const { contentHash, ...content } = record;\n if (contentHash !== await canonicalSha256(content))\n throw new OpenPondProtocolError(\"experiment_draft_hash_mismatch\", \"The saved draft differs from its retained document.\");\n await parseAndVerifyExperimentDraft(record.draft, {teamId: record.teamId});\n return record;\n}\nexport async function parseAndVerifyExperimentDraftReceipt(raw: unknown) {\n const receipt = ExperimentDraftReceiptSchema.parse(raw);\n return { ...receipt, record: await parseAndVerifyExperimentDraftRecord(receipt.record) };\n}\nfunction mismatch(message: string): never {\n throw new OpenPondProtocolError(\"experiment_draft_scope_mismatch\", message);\n}\nexport function createExperimentDraftClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n async function write(path: string, value: unknown) {\n const body = canonicalJson(value);\n if (new TextEncoder().encode(body).byteLength > 32_768)\n throw new OpenPondProtocolError(\"experiment_draft_too_large\", \"Drafts contain settings and references, not model or dataset bytes.\");\n return parseAndVerifyExperimentDraftReceipt(await request(path, { method: \"POST\", body }));\n }\n return {\n async saveExperimentDraft(raw: ExperimentDraftSave): Promise<ExperimentDraftReceipt> {\n const input = ExperimentDraftSaveSchema.parse(raw);\n await parseAndVerifyExperimentDraft(input.draft, {teamId: input.teamId});\n const receipt = await write(\"/v1/training/experiment-drafts\", input);\n const row = receipt.record;\n if (receipt.operationId !== input.operationId || receipt.requestHash !== await canonicalSha256(input) ||\n row.teamId !== input.teamId || row.id !== input.draft.id || row.projectId !== input.projectId ||\n row.revision !== input.expectedRevision + 1 || row.status !== \"draft\" || canonicalJson(row.draft) !== canonicalJson(input.draft))\n mismatch(\"The service saved a different draft, Project or revision.\");\n return receipt;\n },\n async getExperimentDraft(teamId: string, id: string): Promise<ExperimentDraftRecord> {\n const team = Id.parse(teamId), identity = Id.parse(id);\n const row = await parseAndVerifyExperimentDraftRecord(await request(`/v1/training/experiment-drafts/${encodeURIComponent(identity)}?${new URLSearchParams({ teamId: team })}`));\n if (row.teamId !== team || row.id !== identity) mismatch(\"The service returned another draft or workspace.\");\n return row;\n },\n async listExperimentDrafts(teamId: string, raw: ExperimentDraftListQuery = {}): Promise<ExperimentDraftPage> {\n const team = Id.parse(teamId), query = ExperimentDraftListQuerySchema.parse(raw);\n const params = new URLSearchParams({ teamId: team });\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = ExperimentDraftPageSchema.parse(await request(`/v1/training/experiment-drafts?${params}`));\n if (page.teamId !== team || page.projectId !== (query.projectId ?? null) || page.items.length > query.limit ||\n new Set(page.items.map(row => row.id)).size !== page.items.length || query.cursor && page.nextCursor === query.cursor)\n mismatch(\"The draft list returned another scope or invalid page.\");\n for (const rawRow of page.items) {\n const row = await parseAndVerifyExperimentDraftRecord(rawRow);\n if (row.teamId !== team || row.ownerUserId !== page.ownerUserId || query.projectId && row.projectId !== query.projectId ||\n row.status !== (query.archived ? \"archived\" : \"draft\")) mismatch(\"The draft list contains another owner, Project or state.\");\n }\n return page;\n },\n async archiveExperimentDraft(id: string, raw: ExperimentDraftArchive): Promise<ExperimentDraftReceipt> {\n const identity = Id.parse(id), input = ExperimentDraftArchiveSchema.parse(raw);\n const receipt = await write(`/v1/training/experiment-drafts/${encodeURIComponent(identity)}/archive`, input);\n if (receipt.operationId !== input.operationId || receipt.requestHash !== await canonicalSha256({ id: identity, ...input }) ||\n receipt.record.teamId !== input.teamId || receipt.record.id !== identity ||\n receipt.record.revision !== input.expectedRevision + 1 || receipt.record.status !== \"archived\")\n mismatch(\"The service archived another draft or revision.\");\n return receipt;\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectBaseModelCandidateSchema, ModelProjectVersionedRefSchema, ModelProjectTrainingSetupSchema, ModelProjectRecipeDocumentSchema, HostedModelProjectSummarySchema } from \"./model-projects.js\";\nimport {\n TrainingPreparationRequestSchema,\n TrainingPreparationReceiptSchema,\n parseAndVerifyTrainingPreparationReceipt,\n} from \"./training-preparations.js\";\nimport { TrainingGpuSelectionSchema } from \"./training-compute-selection.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { EvaluationExperimentDraftSchema } from \"./evaluation-experiment-draft.js\";\nimport { HostedEvaluationExperimentFormDraftSchema } from \"./hosted-evaluation-experiment-draft.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nimport { EngramExperimentFormDraftSchema } from \"./engram-experiment-draft.js\";\nimport { DecisionExperimentFormDraftSchema } from \"./decision-experiment-draft.js\";\nimport { AlphaEditExperimentFormDraftSchema } from \"./alphaedit-experiment-draft.js\";\nimport { NeuronTrainingExperimentFormDraftSchema } from \"./neuron-training-experiment-draft.js\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TrainingExperimentLearningIntentSchema } from \"./training-experiment-learning-intent.js\";\nimport { TrainingBillingModesSchema } from \"./training-usage-funding.js\";\nexport * from \"./evaluation-experiment-draft.js\";\nexport * from \"./activation-experiment-draft.js\";\n\nexport const ExperimentOperationTypeSchema = z.enum([\"evaluate\", \"sft\", \"grpo\", \"neuron_steering\", \"inspect_activations\", \"engram_adapter\", \"decision_model\", \"alphaedit\", \"selective_neuron_training\"]);\nexport type ExperimentOperationType = z.infer<typeof ExperimentOperationTypeSchema>;\nimport { ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel } from \"./experiment-starting-model.js\";\nexport { ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nexport function experimentOperationLabel(type: ExperimentOperationType): string {\n return { evaluate: \"Evaluate\", sft: \"SFT\", grpo: \"RL\", neuron_steering: \"Neuron steering\", inspect_activations: \"Inspect activations\", engram_adapter: \"Engram memory\", decision_model: \"Decision model\", alphaedit: \"AlphaEdit\", selective_neuron_training: \"Neuron training\" }[type];\n}\n\n/** Model-first manual training. The service owns configuration identity and\n * admission; preparing never enables a recurring policy or starts compute. */\nexport const TrainingExperimentSetupRequestSchema = TrainingPreparationRequestSchema\n .omit({ configuration: true, origin: true })\n .extend({\n schemaVersion: z.literal(\"openpond.trainingExperimentSetupRequest.v1\"),\n configuration: TrainingPreparationRequestSchema.shape.configuration.optional(),\n baseModel: ModelProjectBaseModelSchema,\n settings: ModelProjectTrainingSetupSchema.omit({ baseModel: true }),\n })\n .strict()\n .superRefine((value, context) => {\n if (!value.baseModel.revision)\n context.addIssue({ code: \"custom\", path: [\"baseModel\", \"revision\"], message: \"Select an exact model revision.\" });\n if (!value.settings.recipe || ![\"sft\", \"grpo\"].includes(value.settings.recipe.method))\n context.addIssue({ code: \"custom\", path: [\"settings\", \"recipe\"], message: \"Choose a supported SFT or GRPO recipe.\" });\n if (value.parent && value.settings.method !== \"grpo\")\n context.addIssue({ code: \"custom\", path: [\"parent\"], message: \"Checkpoint continuation currently requires GRPO.\" });\n if (value.settings.method !== value.settings.recipe?.method)\n context.addIssue({ code: \"custom\", path: [\"settings\", \"method\"], message: \"The method must match its recipe.\" });\n });\n\nexport const TrainingExperimentSetupReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentSetupReceipt.v1\"),\n request: TrainingExperimentSetupRequestSchema,\n requestHash: z.string().regex(/^[a-f0-9]{64}$/),\n preparation: TrainingPreparationReceiptSchema,\n}).strict();\n\nexport type TrainingExperimentSetupRequest = z.infer<typeof TrainingExperimentSetupRequestSchema>;\nexport type TrainingExperimentSetupReceipt = z.infer<typeof TrainingExperimentSetupReceiptSchema>;\n\n/** Deterministic across retries, scoped to the authenticated creator. */\nexport async function trainingExperimentConfigurationIdentity(\n input: Pick<TrainingExperimentSetupRequest, \"teamId\" | \"operationId\">,\n creatorUserId: string,\n) {\n return `experiment-${await canonicalSha256({ teamId: input.teamId, operationId: input.operationId, creatorUserId })}`;\n}\n\nexport async function parseAndVerifyTrainingExperimentSetupReceipt(raw: unknown) {\n const result = TrainingExperimentSetupReceiptSchema.parse(raw);\n const preparation = await parseAndVerifyTrainingPreparationReceipt(result.preparation);\n const { schemaVersion: _schema, baseModel: _base, settings: _settings, configuration: selectedConfiguration, ...run } = result.request;\n const { schemaVersion: _preparedSchema, configuration, ...preparedRun } = preparation.plan.request;\n const portableId = await trainingExperimentConfigurationIdentity(result.request, preparation.plan.creatorUserId);\n if (\n result.requestHash !== await canonicalSha256(result.request) ||\n await canonicalSha256(run) !== await canonicalSha256(preparedRun) ||\n (selectedConfiguration\n ? configuration.id !== selectedConfiguration.id || configuration.expectedRevision !== selectedConfiguration.expectedRevision || configuration.expectedEtag !== selectedConfiguration.expectedEtag\n : preparation.plan.source.modelProject.portableProjectId !== portableId) ||\n preparation.plan.source.modelProject.revision !== configuration.expectedRevision ||\n preparation.plan.source.modelProject.contentHash !== configuration.expectedEtag ||\n preparation.plan.source.modelProject.id !== configuration.id\n ) throw new OpenPondProtocolError(\"training_experiment_setup_mismatch\", \"The prepared experiment does not match its reviewed draft.\");\n return { ...result, preparation };\n}\n\nexport function createTrainingExperimentSetupClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async prepareExperiment(input: TrainingExperimentSetupRequest): Promise<TrainingExperimentSetupReceipt> {\n const parsed = TrainingExperimentSetupRequestSchema.parse(input);\n const result = await parseAndVerifyTrainingExperimentSetupReceipt(await request(\"/v1/training/preparations/from-draft\", {\n method: \"POST\", body: JSON.stringify(parsed),\n }));\n if (result.requestHash !== await canonicalSha256(parsed))\n throw new OpenPondProtocolError(\"training_experiment_setup_request_mismatch\", \"The service returned a different experiment draft.\");\n return result;\n },\n };\n}\n\n/** Credential-free picker metadata, composed from existing model/learning reads.\n * Batch examples and credentials stay with their canonical owners. */\nexport const TrainingExperimentInputsPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentInputsPage.v1\"),\n teamId: z.string().min(1).max(500), actorId: z.string().min(1).max(500), projectId: z.string().min(1).max(500).nullable(),\n models: z.array(ModelProjectBaseModelCandidateSchema).max(1000),\n methods: z.array(z.string().min(1).max(200)).max(100),\n billingModes: TrainingBillingModesSchema.optional(),\n batches: z.array(z.object({\n reference: ModelProjectVersionedRefSchema,\n rewardBinding: ModelProjectVersionedRefSchema,\n purpose: z.enum([\"supervised_training\", \"reward_training\", \"evaluation\"]),\n exampleCount: z.number().int().positive(), sealedAt: z.iso.datetime(),\n }).strict()).max(100),\n nextCursor: z.string().min(1).max(500).nullable(),\n}).strict();\nexport type TrainingExperimentInputsPage = z.infer<typeof TrainingExperimentInputsPageSchema>;\n\n/** Editable values stay separate from admitted requests so blank/invalid fields\n * can be saved without inventing a valid spend cap or input binding. */\nexport const TrainingExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n recipe: ModelProjectRecipeDocumentSchema,\n batch: ModelProjectVersionedRefSchema.nullable(),\n evaluation: ModelProjectVersionedRefSchema.nullable(),\n validationSplit: z.enum([\"validation\", \"frozen_eval\"]),\n name: z.string().max(500),\n budget: z.string().max(100),\n customerCapUsd: z.string().max(100).optional(),\n billingMode: z.enum([\"prepaid_only\", \"actual_usage\"]).optional(),\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n parent: TrainingPreparationRequestSchema.shape.parent,\n startingModelLabel: z.string().trim().min(1).max(500).optional(),\n learningIntent: TrainingExperimentLearningIntentSchema.optional(),\n learningConfiguration: z.object({\n inputHash: z.string().regex(/^[a-f0-9]{64}$/),\n trainingInputHash: z.string().regex(/^[a-f0-9]{64}$/),\n configuration: HostedModelProjectSummarySchema,\n policy: LearningRevisionRefSchema,\n }).strict().optional(),\n}).strict();\nexport type TrainingExperimentFormDraft = z.infer<typeof TrainingExperimentFormDraftSchema>;\n\n/** An authoring snapshot may be incomplete. It is never a preparation, an\n * execution, or evidence that a model/method is available to this account. */\nexport const ExperimentDraftSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraft.v1\"),\n id: z.string().trim().min(1).max(240),\n operationType: ExperimentOperationTypeSchema,\n name: z.string().trim().min(1).max(500),\n startingModel: ExperimentStartingModelSchema.optional(),\n evaluationForm: EvaluationExperimentDraftSchema.optional(),\n hostedEvaluationForm: HostedEvaluationExperimentFormDraftSchema.optional(),\n trainingForm: TrainingExperimentFormDraftSchema.optional(),\n activationForm: ActivationExperimentFormDraftSchema.optional(),\n engramForm: EngramExperimentFormDraftSchema.optional(),\n decisionForm: DecisionExperimentFormDraftSchema.optional(),\n alphaEditForm: AlphaEditExperimentFormDraftSchema.optional(),\n neuronTrainingForm: NeuronTrainingExperimentFormDraftSchema.optional(),\n training: z.object({\n baseModel: TrainingExperimentSetupRequestSchema.shape.baseModel.optional(),\n settings: TrainingExperimentSetupRequestSchema.shape.settings.optional(),\n batch: TrainingExperimentSetupRequestSchema.shape.batch.optional(),\n maximumSpendUsd: TrainingExperimentSetupRequestSchema.shape.maximumSpendUsd.optional(),\n usageFunding: TrainingExperimentSetupRequestSchema.shape.usageFunding,\n }).strict().optional(),\n}).strict().superRefine((draft, context) => {\n const source = draft.startingModel;\n if (draft.alphaEditForm && draft.operationType !== \"alphaedit\")\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\"], message: \"AlphaEdit settings require an AlphaEdit experiment.\"});\n if (draft.neuronTrainingForm && draft.operationType !== \"selective_neuron_training\")\n context.addIssue({code: \"custom\", path: [\"neuronTrainingForm\"], message: \"Neuron training settings require a neuron-training experiment.\"});\n if (draft.operationType === \"alphaedit\" && source) {\n if (source.source !== \"managed\" && source.source !== \"alphaedit\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"AlphaEdit requires its exact managed base or saved AlphaEdit parent.\"});\n else if (draft.alphaEditForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.alphaEditForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\", \"baseModel\"], message: \"Retain the exact selected AlphaEdit source.\"});\n }\n if (source?.source === \"alphaedit\") {\n if (draft.operationType !== \"alphaedit\" || !draft.alphaEditForm\n || canonicalJson(draft.alphaEditForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.alphaEditForm.startingModule ?? null) !== canonicalJson(source.alphaedit)\n || canonicalJson(draft.alphaEditForm.parentArtifact) !== canonicalJson(source.alphaedit.artifact))\n context.addIssue({code: \"custom\", path: [\"alphaEditForm\"], message: \"Retain the exact AlphaEdit matrix patch and continuation state.\"});\n } else if (draft.alphaEditForm?.startingModule) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved AlphaEdit Model rather than substituting its original base.\"});\n }\n if (draft.operationType === \"selective_neuron_training\" && source) {\n if (source.source !== \"managed\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Neuron training currently starts from its exact managed base; learned patches are not reset or silently discarded.\"});\n else if (draft.neuronTrainingForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.neuronTrainingForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"neuronTrainingForm\", \"baseModel\"], message: \"Retain the selected exact neuron-training base.\"});\n }\n if (source?.source === \"neuron_training\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"This neuron patch supports saved serving, but experiment continuation/composition is not supported. Explicitly select a compatible base to start a fresh experiment.\"});\n if (draft.decisionForm && draft.operationType !== \"decision_model\")\n context.addIssue({code: \"custom\", path: [\"decisionForm\"], message: \"Decision settings require a decision-model experiment.\"});\n if (draft.operationType === \"decision_model\" && source) {\n if (source.source !== \"managed\" && source.source !== \"decision\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Decision training/scoring requires its exact source release or saved decision Model; another learned model is not replaced with its base.\"});\n else if (draft.decisionForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.decisionForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"decisionForm\", \"baseModel\"], message: \"Retain the selected exact decision source release.\"});\n }\n if (source?.source === \"decision\") {\n if (draft.operationType !== \"decision_model\" || !draft.decisionForm\n || canonicalJson(draft.decisionForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.decisionForm.startingDecision ?? null) !== canonicalJson(source.decision)\n || canonicalJson(draft.decisionForm.parentArtifact) !== canonicalJson(source.decision.artifact))\n context.addIssue({code: \"custom\", path: [\"decisionForm\"], message: \"Retain the exact saved decision version and artifact for training or scoring.\"});\n } else if (draft.decisionForm?.startingDecision) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved decision starting model instead of substituting its source release.\"});\n }\n if (draft.engramForm && draft.operationType !== \"engram_adapter\")\n context.addIssue({code: \"custom\", path: [\"engramForm\"], message: \"Engram settings require an Engram experiment.\"});\n if (draft.operationType === \"engram_adapter\" && source) {\n if (source.source !== \"managed\" && source.source !== \"engram\")\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"This Engram implementation requires its exact compatible managed base; saved interventions are not silently replaced with their base.\"});\n else if (draft.engramForm?.baseModel && canonicalJson(source.baseModel) !== canonicalJson(draft.engramForm.baseModel))\n context.addIssue({code: \"custom\", path: [\"engramForm\", \"baseModel\"], message: \"Retain the selected exact Engram base.\"});\n }\n if (source?.source === \"engram\" && (draft.operationType !== \"engram_adapter\" || !draft.engramForm\n || canonicalJson(draft.engramForm.baseModel) !== canonicalJson(source.baseModel)\n || canonicalJson(draft.engramForm.startingModule ?? null) !== canonicalJson(source.engram)\n || canonicalJson(draft.engramForm.parentArtifact) !== canonicalJson(source.engram.artifact)))\n context.addIssue({code: \"custom\", path: [\"engramForm\"], message: \"Retain the exact saved Engram module as the continuation parent.\"});\n if (source?.source === \"steering\") {\n if (draft.operationType !== \"neuron_steering\")\n context.addIssue({code: \"custom\", path: [\"operationType\"], message: \"Saved steering sources currently require a neuron steering experiment.\"});\n if (!draft.activationForm || canonicalJson(draft.activationForm.baseModel) !== canonicalJson(source.baseModel) ||\n canonicalJson(draft.activationForm.startingProfile ?? null) !== canonicalJson(source.steering))\n context.addIssue({code: \"custom\", path: [\"activationForm\"], message: \"Retain the exact saved steering source and base in the activation form.\"});\n } else if (draft.activationForm?.startingProfile) {\n context.addIssue({code: \"custom\", path: [\"startingModel\"], message: \"Retain the saved steering starting model instead of substituting its base.\"});\n }\n if (source?.source === \"trained\") {\n const version = source.trainedVersion;\n for (const [key, base] of [[\"trainingForm\", draft.trainingForm?.baseModel], [\"training\", draft.training?.baseModel], [\"activationForm\", draft.activationForm?.baseModel]] as const)\n if (base && canonicalJson(base) !== canonicalJson(version.request.baseModel))\n context.addIssue({code: \"custom\", path: [key, \"baseModel\"], message: \"The form differs from the retained trained source's base.\"});\n const parent = draft.trainingForm?.parent;\n if (parent && (parent.jobId !== version.jobId || parent.checkpointId !== version.candidate.checkpointId ||\n canonicalJson(parent.artifact) !== canonicalJson(version.candidate.artifact)))\n context.addIssue({code: \"custom\", path: [\"trainingForm\", \"parent\"], message: \"Retain the exact trained Job, artifact and checkpoint.\"});\n }\n\n if (draft.evaluationForm && draft.operationType !== \"evaluate\")\n context.addIssue({ code: \"custom\", path: [\"evaluationForm\"], message: \"Evaluation form settings require an evaluation experiment.\" });\n if (draft.activationForm && ![\"neuron_steering\", \"inspect_activations\"].includes(draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"activationForm\"], message: \"Activation settings require a steering or inspection experiment.\" });\n if (draft.trainingForm && (![\"sft\", \"grpo\"].includes(draft.operationType) || draft.trainingForm.recipe.method !== draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"trainingForm\"], message: \"Training form settings must match the experiment type.\" });\n if (draft.training && (![\"sft\", \"grpo\"].includes(draft.operationType) ||\n draft.training.settings && draft.training.settings.method !== draft.operationType))\n context.addIssue({ code: \"custom\", path: [\"training\"], message: \"Training settings must match the experiment type.\" });\n});\nexport type ExperimentDraft = z.infer<typeof ExperimentDraftSchema>;\n/** Nested saved evidence is verified independently of an outer draft hash. */\nexport async function parseAndVerifyExperimentDraft(raw: unknown, expected: Parameters<typeof parseAndVerifyExperimentStartingModel>[1] = {}): Promise<ExperimentDraft> {\n const draft = ExperimentDraftSchema.parse(raw);\n if (draft.startingModel) await parseAndVerifyExperimentStartingModel(draft.startingModel, expected);\n return draft;\n}\n\n\nexport const ExperimentDraftUpdateSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentDraftUpdate.v1\"),\n operationId: z.string().trim().min(1).max(240),\n expectedRevision: z.number().int().positive(),\n draft: ExperimentDraftSchema,\n}).strict();\nexport type ExperimentDraftUpdate = z.infer<typeof ExperimentDraftUpdateSchema>;\n","import { TrainingUsageFundingRequestSchema, TrainingUsageQuoteSchema, verifyTrainingUsageQuote } from \"./training-usage-funding.js\";\nimport { TrainingHandoffOriginSchema } from \"./post-training.js\";\nimport { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { TrainingJobSourceSchema } from \"./training-job-contracts.js\";\nimport { TrainingPhysicalPlacementSchema } from \"./training-physical-placement.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { TrainingEstimateReviewSchema, TrainingGpuSelectionSchema } from \"./training-compute-selection.js\";\n\nconst Id = z.string().trim().min(1).max(191);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** An exact retained GRPO checkpoint, never an inference alias or Model label.\n * Preparation verifies ownership and durability; execution rechecks runtime compatibility. */\nexport const TrainingPreparationParentSchema = z.object({\n jobId: Id,\n artifact: z.object({ id: Id, contentHash: Hash }).strict(),\n checkpointId: Id,\n adapterMode: z.enum([\"residual_append\", \"shared\", \"sequential_merge\"]),\n}).strict();\nexport type TrainingPreparationParent = z.infer<typeof TrainingPreparationParentSchema>;\n\n/** Manual training compiles an already reviewed batch. It creates no recurring policy. */\nexport const TrainingPreparationRequestSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationRequest.v1\"),\n teamId: Id,\n operationId: Id,\n projectId: Id.nullable(),\n configuration: z\n .object({ id: Id, expectedRevision: z.number().int().positive(), expectedEtag: Hash })\n .strict(),\n origin: TrainingHandoffOriginSchema.optional(),\n parent: TrainingPreparationParentSchema.optional(),\n batch: ModelProjectVersionedRefSchema,\n name: z.string().trim().min(1).max(191),\n // Compiler resource safety budget; actual-usage customer cap is separate.\n maximumSpendUsd: z.number().finite().positive().max(1_000_000),\n usageFunding: TrainingUsageFundingRequestSchema.optional(),\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n physicalPlacement: TrainingPhysicalPlacementSchema.optional(),\n })\n .strict();\nexport const TrainingPreparationPlanContentSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPlan.v1\"),\n id: Id,\n creatorUserId: Id,\n request: TrainingPreparationRequestSchema,\n requestHash: Hash,\n source: z.lazy(() => TrainingJobSourceSchema),\n submissionHash: Hash,\n usageQuote: TrainingUsageQuoteSchema.optional(),\n createdAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const TrainingPreparationPlanSchema = TrainingPreparationPlanContentSchema.extend({\n contentHash: Hash,\n}).strict();\nexport const TrainingPreparationReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationReceipt.v1\"),\n plan: TrainingPreparationPlanSchema,\n revision: z.number().int().positive(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]),\n jobId: Id.nullable(),\n })\n .strict()\n .superRefine((value, context) => {\n if ((value.state === \"submitted\") !== Boolean(value.jobId))\n context.addIssue({\n code: \"custom\",\n path: [\"jobId\"],\n message: \"Only submitted preparations identify a job.\",\n });\n });\nexport const TrainingPreparationControlSchema = z\n .object({\n teamId: Id,\n planHash: Hash,\n expectedRevision: z.number().int().positive(),\n estimateReview: TrainingEstimateReviewSchema.optional(),\n usageQuoteHash: Hash.optional(),\n })\n .strict();\nexport const TrainingPreparationListQuerySchema = z\n .object({\n projectId: Id.optional(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]).optional(),\n afterId: Id.optional(),\n limit: z.number().int().min(1).max(100).default(25),\n })\n .strict();\nexport const TrainingPreparationPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPage.v1\"),\n teamId: Id,\n items: z.array(TrainingPreparationReceiptSchema).max(100),\n nextCursor: Id.nullable(),\n })\n .strict();\nexport type TrainingPreparationRequest = z.infer<typeof TrainingPreparationRequestSchema>;\nexport type TrainingPreparationPlan = z.infer<typeof TrainingPreparationPlanSchema>;\nexport type TrainingPreparationReceipt = z.infer<typeof TrainingPreparationReceiptSchema>;\nexport type TrainingPreparationControl = z.infer<typeof TrainingPreparationControlSchema>;\nexport type TrainingPreparationListQuery = z.input<typeof TrainingPreparationListQuerySchema>;\nexport type TrainingPreparationPage = z.infer<typeof TrainingPreparationPageSchema>;\n\nexport async function parseAndVerifyTrainingPreparationReceipt(value: unknown) {\n const receipt = TrainingPreparationReceiptSchema.parse(value);\n const { contentHash, ...plan } = receipt.plan;\n const usageFunding = plan.request.usageFunding;\n if (Boolean(usageFunding) !== Boolean(plan.usageQuote))\n throw new OpenPondProtocolError(\"training_usage_quote_mismatch\", \"Retain the reviewed complete Job price before starting.\");\n if (plan.usageQuote && usageFunding)\n await verifyTrainingUsageQuote(plan.usageQuote, { teamId: plan.request.teamId, actorUserId: plan.creatorUserId,\n preparationId: plan.id, submissionHash: plan.submissionHash, customerCapUsd: usageFunding.customerCapUsd });\n if (\n (await canonicalSha256(plan)) !== contentHash ||\n (await canonicalSha256(plan.request)) !== plan.requestHash ||\n plan.source.modelProject.id !== plan.request.configuration.id ||\n (await canonicalSha256(plan.source.origin ?? null)) !==\n (await canonicalSha256(plan.request.origin ?? null))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_mismatch\",\n \"The prepared training inputs changed.\",\n );\n }\n return receipt;\n}\n\nexport function createTrainingPreparationClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n async function read(value: unknown, teamId: string, id?: string) {\n const receipt = await parseAndVerifyTrainingPreparationReceipt(value);\n if (receipt.plan.request.teamId !== teamId || (id && receipt.plan.id !== id))\n throw new OpenPondProtocolError(\n \"training_preparation_scope_mismatch\",\n \"The training preparation belongs to a different workspace or request.\",\n );\n return receipt;\n }\n return {\n /** Discover the authenticated user's retained preparations without creating jobs. */\n async listPreparations(teamId: string, input: TrainingPreparationListQuery = {}) {\n const scope = Id.parse(teamId);\n const query = TrainingPreparationListQuerySchema.parse(input);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = TrainingPreparationPageSchema.parse(\n await request(`/v1/training/preparations?${params}`),\n );\n if (\n page.teamId !== scope ||\n page.items.length > query.limit ||\n new Set(page.items.map((item) => item.plan.id)).size !== page.items.length ||\n (page.nextCursor !== null &&\n (page.nextCursor !== page.items.at(-1)?.plan.id || page.nextCursor === query.afterId))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"The preparation page does not match its workspace or cursor.\",\n );\n }\n const items = await Promise.all(\n page.items.map(async (item) => {\n const receipt = await read(item, scope);\n if (\n (query.projectId && receipt.plan.request.projectId !== query.projectId) ||\n (query.state && receipt.state !== query.state)\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"A preparation does not match the requested Project or state.\",\n );\n }\n return receipt;\n }),\n );\n return { ...page, items };\n },\n async prepareRun(input: TrainingPreparationRequest) {\n const parsed = TrainingPreparationRequestSchema.parse(input);\n const receipt = await read(\n await request(\"/v1/training/preparations\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n );\n if (receipt.plan.requestHash !== (await canonicalSha256(parsed)))\n throw new OpenPondProtocolError(\n \"training_preparation_request_mismatch\",\n \"The preparation does not match the requested run.\",\n );\n return receipt;\n },\n async getPreparation(teamId: string, id: string) {\n return read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}`),\n Id.parse(teamId),\n id,\n );\n },\n async startPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/start`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"submitted\" ||\n receipt.plan.usageQuote?.contentHash !== parsed.usageQuoteHash)\n throw new OpenPondProtocolError(\n \"training_preparation_start_mismatch\",\n \"The submitted run does not match the approved preparation.\",\n );\n return receipt;\n },\n async cancelPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"cancelled\")\n throw new OpenPondProtocolError(\n \"training_preparation_cancel_mismatch\",\n \"The preparation cancellation could not be verified.\",\n );\n return receipt;\n },\n };\n}\n","import { z } from \"zod\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nimport { ModelStarterAttemptPolicySchema } from \"./model-starter-attempts.js\";\nimport { ExperimentDefinitionSchema, ExperimentGraderSelectionSchema } from \"./experiment-contracts.js\";\nexport * from \"./hosted-evaluation-experiment-draft.js\";\n\n/** Authoring state, not execution admission. Cleared numeric controls stay\n * null until the user supplies a value; saving never supplies a spend cap. */\nexport const EvaluationExperimentFormDraftSchema = z.object({\n mode: z.enum([\"model\", \"model_harness\", \"model_harness_profile\"]),\n localRuntime: ModelStarterAttemptPolicySchema.options[0].shape.localRuntime,\n sourceId: z.string().max(500), profileChoiceId: z.string().max(500),\n temperature: z.number().finite().nullable().optional(),\n topP: z.number().finite().nullable().optional(),\n name: z.string().max(500), release: TasksetCatalogReleaseRefSchema.nullable(),\n modelId: z.string().max(500), budget: z.number().finite().nullable(),\n outputTokens: z.number().finite().nullable(), prompt: z.string().max(100_000),\n targetId: z.string().max(500), seed: z.string().max(10_000),\n graderChoices: z.record(z.string().regex(/^[a-f0-9]{64}$/), z.array(ExperimentGraderSelectionSchema).max(100)),\n}).strict();\nexport const EvaluationExperimentSelectionSchema = z.object({\n release: TasksetCatalogReleaseRefSchema, mode: z.enum([\"all\", \"subset\"]),\n ids: z.array(z.string().min(1).max(500)).max(10_000),\n}).strict();\nexport const EvaluationExperimentSourceSchema = ExperimentDefinitionSchema\n .pick({ id: true, request: true, graders: true, maximumCostUsd: true })\n .extend({ packageHash: z.string().regex(/^[a-f0-9]{64}$/).optional() }).strict();\nexport const EvaluationExperimentDraftSchema = z.object({\n form: EvaluationExperimentFormDraftSchema,\n selection: EvaluationExperimentSelectionSchema.nullable(),\n source: EvaluationExperimentSourceSchema.nullable(),\n executionLocation: z.enum([\"local\", \"hosted\"]),\n}).strict();\nexport type EvaluationExperimentFormDraft = z.infer<typeof EvaluationExperimentFormDraftSchema>;\nexport type EvaluationExperimentSelection = z.infer<typeof EvaluationExperimentSelectionSchema>;\nexport type EvaluationExperimentSource = z.infer<typeof EvaluationExperimentSourceSchema>;\nexport type EvaluationExperimentDraft = z.infer<typeof EvaluationExperimentDraftSchema>;\n","import { z } from \"zod\";\nimport { ProfileEvaluationRunSourceSchema } from \"@openpond/evals\";\nimport { StandaloneHarnessExperimentSourceSchema } from \"@openpond/evals/experiments\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nimport { EvaluationMessagesSchema, EvaluationProjectContextSchema } from \"./evaluation-project-context.js\";\nimport { ExperimentGraderSelectionSchema } from \"./experiment-contracts.js\";\nimport { ExperimentFieldMappingsSchema } from \"./experiment-field-mappings.js\";\nimport { HarnessExperimentPolicySchema } from \"./harness-experiment-policy.js\";\n\nconst Id = z.string().min(1).max(500);\nconst Choice = z.string().max(500);\nconst RawNumber = z.string().max(100);\nconst TaskIds = z.array(Id).max(10_000).nullable();\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** Source identity is independent of picker labels. A workspace may be selected\n * before its revision has loaded; a saved non-null revision must be rechecked\n * by the editor and must never silently advance to the current workspace. */\nexport const HostedEvaluationDatasetDraftSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"workspace\"), id: Id,\n revision: z.number().int().positive().nullable(),\n ownerUserId: Id.optional(), taskIds: TaskIds,\n }).strict(),\n z.object({\n kind: z.literal(\"published\"), release: TasksetCatalogReleaseRefSchema,\n taskIds: TaskIds,\n }).strict(),\n z.object({\n kind: z.literal(\"profile\"), profileRepositoryId: Id,\n sourceRevision: Id, release: TasksetCatalogReleaseRefSchema,\n name: z.string().max(500), definitionId: Choice, taskIds: TaskIds,\n }).strict(),\n]);\n\nexport const HostedEvaluationWorkflowDraftSchema = z.object({\n repositoryId: Id, sourceRevision: Id, definitionId: Id,\n workflowId: Id, label: z.string().max(500),\n}).strict();\n\n/** Retain the exact released Profile target, including prepared source identity\n * when available. Missing controls remain empty rather than admitting a run. */\nexport const HostedEvaluationProfileDraftSchema = z.object({\n profileRepositoryId: Choice, sourceRevision: Choice, definitionId: Choice,\n sourceHash: Hash.nullable(), release: TasksetCatalogReleaseRefSchema.nullable(),\n taskIds: TaskIds, source: ProfileEvaluationRunSourceSchema.nullable().optional(),\n}).strict();\n\n/** Portable hosted editor state, not an execution request. Numeric text retains\n * blanks and partially typed values. Null task/grader selections mean automatic\n * selection; explicit empty arrays remain empty. Immutable sources and selected\n * grader versions are retained without granting access or execution authority.\n * This snapshot can remain inactive while another Experiment action is edited. */\nexport const HostedEvaluationExperimentFormDraftSchema = z.object({\n selectedDatasetId: Choice,\n dataset: HostedEvaluationDatasetDraftSchema.nullable(),\n workspaceMode: z.enum([\"recorded\", \"model\"]).nullable(),\n mode: z.enum([\"hosted_chat\", \"fixture\"]),\n executionMode: z.enum([\"model\", \"model_harness\", \"model_harness_profile\"]),\n name: z.string().max(500), modelId: Choice,\n messages: EvaluationMessagesSchema,\n temperature: RawNumber, topP: RawNumber, maxOutputTokens: RawNumber,\n budget: RawNumber, seedText: z.string().max(10_000),\n reasoningEffort: HarnessExperimentPolicySchema.shape.reasoningEffort.unwrap(),\n sourceId: Choice, harness: StandaloneHarnessExperimentSourceSchema.nullable(),\n project: EvaluationProjectContextSchema.nullable(),\n members: z.array(z.object({ taskId: Id, fixtureId: Id.nullable() }).strict()).max(10_000).nullable(),\n graderIds: z.array(Id).max(100).nullable(),\n graders: z.array(ExperimentGraderSelectionSchema).max(100),\n graderMappings: z.record(Id, ExperimentFieldMappingsSchema),\n selectedGraders: z.array(RewardReleaseSchema).max(100),\n workflow: HostedEvaluationWorkflowDraftSchema.nullable(),\n profile: HostedEvaluationProfileDraftSchema.nullable(),\n}).strict();\n\nexport type HostedEvaluationDatasetDraft = z.infer<typeof HostedEvaluationDatasetDraftSchema>;\nexport type HostedEvaluationWorkflowDraft = z.infer<typeof HostedEvaluationWorkflowDraftSchema>;\nexport type HostedEvaluationProfileDraft = z.infer<typeof HostedEvaluationProfileDraftSchema>;\nexport type HostedEvaluationExperimentFormDraft = z.infer<typeof HostedEvaluationExperimentFormDraftSchema>;\n","import { SavedSteeringExperimentSourceSchema } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { NeuronSteeringNormalizationSchema, NeuronSteeringTokenScopeSchema } from \"./neuron-steering.js\";\n\n/** Editable authoring, never an execution request. Strings preserve incomplete\n * numeric fields; runtime preparation must resolve the exact tensor identity,\n * tokenize prompts and enforce the complete execution/capture budget. */\nexport const ActivationExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n startingProfile: SavedSteeringExperimentSourceSchema.optional(),\n prompts: z.array(z.object({ id: z.string().trim().min(1).max(240), text: z.string().max(16_000) }).strict()).max(8),\n coordinates: z.array(z.object({ id: z.string().trim().min(1).max(240),\n layer: z.string().max(100), neuron: z.string().max(100), dose: z.string().max(100),\n }).strict()).max(64),\n doseMultipliers: z.string().max(1000),\n normalization: NeuronSteeringNormalizationSchema,\n tokenScope: NeuronSteeringTokenScopeSchema,\n maxNewTokens: z.string().max(100),\n maximumCapturedValues: z.string().max(100),\n maximumForwardTokenWork: z.string().max(100),\n maximumDurationSeconds: z.string().max(100),\n maximumSpendUsd: z.string().max(100).optional(),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.prompts.map(row => row.id)).size !== value.prompts.length ||\n new Set(value.coordinates.map(row => row.id)).size !== value.coordinates.length)\n ctx.addIssue({ code: \"custom\", message: \"Authoring row identities must be unique.\" });\n});\nexport type ActivationExperimentFormDraft = z.infer<typeof ActivationExperimentFormDraftSchema>;\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { EngramAdapterConfigSchema, EngramArtifactReferenceSchema, EngramTrainingSettingsSchema } from \"./engram-adapter.js\";\nimport { SavedEngramExperimentSourceSchema } from \"./engram-model-version.js\";\n\nexport const ENGRAM_TRAINING_DEFAULTS = EngramTrainingSettingsSchema.parse({\n learningRate: 0.001, weightDecay: 0, maxSteps: 16,\n gradientAccumulationSteps: 8, maxSequenceLength: 2048, seed: 42,\n maxDurationSeconds: 3600, maxCheckpointBytes: 2_147_483_648,\n});\n\n/** The two paper configurations describe architecture, not runtime availability.\n * Execution still requires an exact qualified base and server-owned capability. */\nexport function engramPaperConfig(perHashDim: 128 | 256) {\n return EngramAdapterConfigSchema.parse({\n schemaVersion: \"openpond.engramAdapterConfig.v1\",\n implementation: \"openpond_qwen_engram_paper_v1\", hook: \"self_attn.input\",\n injectLayers: [1, 3, 7, 15], suffixOrders: [2, 3], previousOrders: [3],\n numHashes: 4, tableSize: 90_007, perHashDim, alpha: 0.2, memoryInitStd: 0.02,\n adapterDtype: \"float32\", projectionInit: \"zeros\", gateInit: \"zeros_no_bias\",\n boundary: \"incomplete_group_off_v1\", occupancy: \"training_before_lookup_v1\",\n history: \"request_absolute_positions_v1\", batchSize: 1,\n });\n}\n\nconst Field = z.string().max(100);\nexport const EngramTrainingFormDraftSchema = z.object({\n learningRate: Field, weightDecay: Field, maxSteps: Field,\n gradientAccumulationSteps: Field, maxSequenceLength: Field, seed: Field,\n maxDurationSeconds: Field, maxCheckpointBytes: Field,\n}).strict();\n/** Incomplete authoring is retained verbatim. Preparing resolves an owned\n * reviewed batch and exact runtime; this draft grants no training authority. */\nexport const EngramExperimentFormDraftSchema = z.object({\n baseModel: ModelProjectBaseModelSchema.nullable(),\n batch: ModelProjectVersionedRefSchema.nullable(),\n name: z.string().max(500), maximumSpendUsd: z.string().max(100),\n training: EngramTrainingFormDraftSchema,\n parentArtifact: EngramArtifactReferenceSchema.nullable(),\n startingModule: SavedEngramExperimentSourceSchema.optional(),\n}).strict();\nexport type EngramExperimentFormDraft = z.infer<typeof EngramExperimentFormDraftSchema>;\n","import { z } from \"zod\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\n\n/** Incomplete authoring values may be saved before datasets are selected. */\nexport const TrainingExperimentLearningIntentSchema = z.object({\n enabled: z.boolean(),\n /** Applies only after an accepted compatible GRPO checkpoint exists. */\n continuationAdapterMode: z.enum([\"shared\", \"residual_append\", \"sequential_merge\"]).optional(),\n graders: z.array(LearningRevisionRefSchema).max(100).optional(),\n mode: z.enum([\"nightly\", \"approved_count\"]),\n minimumTasks: z.string().max(100),\n localTime: z.string().max(100),\n timeZone: z.string().max(200),\n maximumSpendUsd: z.string().max(100),\n maximumDailySpendUsd: z.string().max(100),\n}).strict();\nexport type TrainingExperimentLearningIntent = z.infer<typeof TrainingExperimentLearningIntentSchema>;\n","import { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { parseAndVerifySavedModelVersion, type SteeringModelVersion } from \"./steering-profile-publication.js\";\nimport { SavedSteeringExperimentSourceSchema, type SavedSteeringExperimentSource } from \"./steering-experiment-source.js\";\n\nexport function savedSteeringExperimentSource(version: SteeringModelVersion): SavedSteeringExperimentSource {\n return SavedSteeringExperimentSourceSchema.parse({modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n publication: {id: version.publication.id, revision: version.publication.revision, contentHash: version.publication.contentHash},\n profileHash: version.publication.profile.contentHash});\n}\n/** The host supplies its explicitly authorized immutable version. There is no\n * network lookup, latest-version substitution or inferred base-model fallback. */\nexport async function verifySavedSteeringExperimentSource(raw: unknown, resolved: unknown, expected: {teamId?: string} = {}) {\n const source = SavedSteeringExperimentSourceSchema.parse(raw);\n const version = await parseAndVerifySavedModelVersion(resolved, {...expected, modelProjectId: source.modelProjectId});\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\" || canonicalJson(source) !== canonicalJson(savedSteeringExperimentSource(version)))\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Resolve the exact saved steering Model version, publication and profile.\");\n return version;\n}\n","import { SavedSteeringExperimentSourceSchema, type SavedSteeringExperimentSource } from \"./steering-experiment-source.js\";\nimport { verifySavedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport { z } from \"zod\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { SavedEngramExperimentSourceSchema, parseAndVerifyEngramModelVersion, type SavedEngramExperimentSource } from \"./engram-model-version.js\";\nimport { SavedDecisionExperimentSourceSchema, decisionSourcePreference, type SavedDecisionExperimentSource } from \"./decision-experiment-draft.js\";\nimport { verifySavedDecisionExperimentSource } from \"./decision-model-version.js\";\nimport { SavedAlphaEditExperimentSourceSchema, type SavedAlphaEditExperimentSource } from \"./alphaedit-experiment-draft.js\";\nimport { SavedNeuronTrainingExperimentSourceSchema, type SavedNeuronTrainingExperimentSource } from \"./neuron-training-experiment-draft.js\";\nimport { verifySavedAlphaEditExperimentSource, verifySavedNeuronTrainingExperimentSource } from \"./weight-model-versions.js\";\n\nconst fields = {\n label: z.string().trim().min(1).max(500),\n inferenceModelId: z.string().trim().min(1).max(500).nullable(),\n baseModel: ModelProjectBaseModelSchema.nullable(),\n};\n/** A trained checkpoint is an immutable saved-version identity. Its original\n * base describes ancestry, never a replacement inference or training source. */\nexport const ExperimentStartingModelSchema = z.discriminatedUnion(\"source\", [\n z.object({...fields, source: z.literal(\"inference\")}).strict().refine(value => Boolean(value.inferenceModelId),\n {message: \"Retain the selected model's original inference identity.\"}),\n z.object({...fields, source: z.literal(\"managed\")}).strict().refine(value => Boolean(value.baseModel),\n {message: \"Retain the selected model's original managed identity.\"}),\n z.object({...fields, source: z.literal(\"steering\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, steering: SavedSteeringExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"engram\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, engram: SavedEngramExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"alphaedit\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, alphaedit: SavedAlphaEditExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"neuron_training\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, neuronTraining: SavedNeuronTrainingExperimentSourceSchema}).strict(),\n z.object({...fields, source: z.literal(\"decision\"), inferenceModelId: z.null(), baseModel: ModelProjectBaseModelSchema, decision: SavedDecisionExperimentSourceSchema}).strict().superRefine((value, context) => {\n if (canonicalJson(value.baseModel) !== canonicalJson(decisionSourcePreference()))\n context.addIssue({code: \"custom\", path: [\"baseModel\"], message: \"Retain the saved decision Model's exact adapter release and its own tokenizer.\"});\n }),\n z.object({...fields, source: z.literal(\"trained\"), inferenceModelId: z.null(),\n baseModel: ModelProjectBaseModelSchema, trainedVersion: z.lazy(() => TrainingModelVersionSchema),\n }).strict().superRefine((value, context) => {\n if (canonicalJson(value.baseModel) !== canonicalJson(value.trainedVersion.request.baseModel))\n context.addIssue({code: \"custom\", path: [\"baseModel\"], message: \"Retain the trained version's exact original base.\"});\n }),\n]);\nexport type ExperimentStartingModel = z.infer<typeof ExperimentStartingModelSchema>;\n/** Compact steering refs remain untrusted authoring unless an explicit authority\n * resolver supplies the complete immutable version. Compilation requires it. */\nexport async function parseAndVerifyExperimentStartingModel(raw: unknown, expected: {teamId?: string;\n resolveSteeringVersion?: (source: SavedSteeringExperimentSource) => Promise<unknown>;\n resolveEngramVersion?: (source: SavedEngramExperimentSource) => Promise<unknown>;\n resolveDecisionVersion?: (source: SavedDecisionExperimentSource) => Promise<unknown>;\n resolveAlphaEditVersion?: (source: SavedAlphaEditExperimentSource) => Promise<unknown>;\n resolveNeuronTrainingVersion?: (source: SavedNeuronTrainingExperimentSource) => Promise<unknown>;\n} = {}) {\n const value = ExperimentStartingModelSchema.parse(raw);\n if (value.source === \"trained\") await parseAndVerifyTrainingModelVersion(value.trainedVersion, expected);\n if (value.source === \"alphaedit\" && expected.resolveAlphaEditVersion) {\n const version = await verifySavedAlphaEditExperimentSource(value.alphaedit, await expected.resolveAlphaEditVersion(value.alphaedit), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"alphaedit_experiment_source_mismatch\", \"Retain the exact saved AlphaEdit Model and original base.\");\n }\n if (value.source === \"neuron_training\" && expected.resolveNeuronTrainingVersion) {\n const version = await verifySavedNeuronTrainingExperimentSource(value.neuronTraining, await expected.resolveNeuronTrainingVersion(value.neuronTraining), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"neuron_training_experiment_source_mismatch\", \"Retain the exact saved neuron patch and original base.\");\n }\n if (value.source === \"decision\" && expected.resolveDecisionVersion) {\n const version = await verifySavedDecisionExperimentSource(value.decision, await expected.resolveDecisionVersion(value.decision), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"The authoring source differs from the exact saved decision Model's source release.\");\n }\n if (value.source === \"engram\" && expected.resolveEngramVersion) {\n const version = await parseAndVerifyEngramModelVersion(await expected.resolveEngramVersion(value.engram), {teamId: expected.teamId, modelProjectId: value.engram.modelProjectId});\n if (version.contentHash !== value.engram.versionHash || version.artifact.id !== value.engram.artifact.id\n || version.artifact.contentHash !== value.engram.artifact.contentHash\n || await canonicalSha256(version.artifact.manifest.pins.baseModel) !== value.engram.modelHash\n || canonicalJson(value.baseModel) !== canonicalJson(version.baseModel))\n throw new OpenPondProtocolError(\"engram_experiment_source_mismatch\", \"The authoring source differs from the exact saved memory module.\");\n }\n if (value.source === \"steering\" && expected.resolveSteeringVersion) {\n const version = await verifySavedSteeringExperimentSource(value.steering, await expected.resolveSteeringVersion(value.steering), expected);\n if (canonicalJson(value.baseModel) !== canonicalJson(version.publication.baseModel))\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"The authoring source differs from the saved steering Model's exact base.\");\n }\n return value;\n}\n","import { ManagedModificationPriceSchema, canonicalComputeSpendCap, assertManagedModificationPricing, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { activationStartingProfileSource } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport {\n ActivationReferenceRequestSchema,\n ActivationReferenceResultSchema,\n parseAndVerifyActivationReferenceRequest,\n parseAndVerifyActivationReferenceResult,\n} from \"./activation-reference.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\nimport { parseManagedModificationCompile, parseAndVerifyManagedModificationCompilation, type ManagedModificationCompile } from \"./managed-modification-compilation.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nexport * from \"./managed-modification-compilation.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** Customer read projection. Capture availability is independent of execution\n * cleanup and funding settlement; this read grants no dispatch authority. */\nexport const ManagedModificationExecutionContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecution.v1\"),\n id: Id,\n teamId: Id,\n ownerUserId: Id,\n projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500),\n method: ModelModificationMethodSchema,\n phase: z.enum([\"prepared\", \"queued\", \"dispatching\", \"stopping\", \"cancelled\", \"completed\", \"failed\"]),\n revision: z.number().int().positive(),\n sourceContentHash: Hash,\n plan: z.object({\n contentHash: Hash,\n inputHash: Hash,\n runtimeHash: Hash,\n maximumSpendUsd: z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48).nullable(),\n computePrice: ManagedModificationPriceSchema.optional(),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n }).strict().superRefine((plan,ctx)=>{\n try { assertManagedModificationPricing(plan); }\n catch { ctx.addIssue({code:\"custom\",message:\"Retain the accepted rate, runtime and optional spending limit.\"}); }\n }),\n request: ActivationReferenceRequestSchema,\n sourceForm: ActivationExperimentFormDraftSchema.optional(),\n result: ActivationReferenceResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n updatedAt: z.iso.datetime(),\n}).strict();\nexport const ManagedModificationExecutionSchema = ManagedModificationExecutionContentSchema.extend({ contentHash: Hash }).strict();\nexport type ManagedModificationExecution = z.infer<typeof ManagedModificationExecutionSchema>;\n\nconst Spend = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\n/** Requested inputs only. Runtime selection and paid admission belong to the host. */\nexport const ManagedModificationPrepareSchema = z.object({\n teamId: Id, operationId: Id, projectId: Id.nullable(), name: z.string().trim().min(1).max(500),\n method: ModelModificationMethodSchema, query: ModelModificationCapabilitiesQuerySchema,\n request: ActivationReferenceRequestSchema, maximumSpendUsd: Spend.nullish(),\n sourceForm: ActivationExperimentFormDraftSchema.optional(),\n}).strict();\nconst control = {teamId: Id, id: Id, operationId: Id, expectedRevision: z.number().int().positive(), planHash: Hash};\nexport const ManagedModificationStartSchema = z.object({...control, action: z.literal(\"start\"), approvedMaximumSpendUsd: Spend.nullable(), approvedPriceHash: Hash.optional()}).strict();\nexport const ManagedModificationCancelSchema = z.object({...control, action: z.literal(\"cancel\")}).strict();\nexport type ManagedModificationPrepare = z.infer<typeof ManagedModificationPrepareSchema>;\nexport type ManagedModificationStart = z.infer<typeof ManagedModificationStartSchema>;\nexport type ManagedModificationCancel = z.infer<typeof ManagedModificationCancelSchema>;\nexport const ManagedModificationExecutionMetadataSchema = ManagedModificationExecutionContentSchema.omit({schemaVersion: true, request: true, sourceForm: true, result: true, resultRecordedAt: true});\nexport const ManagedModificationExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecutionReceipt.v1\"),\n operationId: Id, requestHash: Hash, execution: ManagedModificationExecutionMetadataSchema,\n}).strict();\nexport const ManagedModificationExecutionReceiptSchema = ManagedModificationExecutionReceiptContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationExecutionReceipt = z.infer<typeof ManagedModificationExecutionReceiptSchema>;\n\n/** Metadata-only creator history. A page grants neither execution nor capture authority. */\nexport const ManagedModificationExecutionListQuerySchema = z.object({\n id: Id.optional(), projectId: Id.optional(), method: ModelModificationMethodSchema.optional(),\n phase: ManagedModificationExecutionContentSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedModificationExecutionListQuery = z.input<typeof ManagedModificationExecutionListQuerySchema>;\nexport const ManagedModificationExecutionSummarySchema = ManagedModificationExecutionMetadataSchema.extend({\n model: ActivationReferenceRequestSchema.shape.model,\n}).strict();\nexport type ManagedModificationExecutionSummary = z.infer<typeof ManagedModificationExecutionSummarySchema>;\nexport const ManagedModificationExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedModificationExecutionListQuerySchema,\n items: z.array(ManagedModificationExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedModificationExecutionPageSchema = ManagedModificationExecutionPageContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationExecutionPage = z.infer<typeof ManagedModificationExecutionPageSchema>;\nexport async function parseAndVerifyManagedModificationExecutionPage(raw: unknown, expected: {\n teamId: string; query?: ManagedModificationExecutionListQuery; ownerUserId?: string;\n}): Promise<ManagedModificationExecutionPage> {\n const page = ManagedModificationExecutionPageSchema.parse(raw), {contentHash, ...content} = page;\n const query = ManagedModificationExecutionListQuerySchema.parse(expected.query ?? {});\n const invalid = () => new OpenPondProtocolError(\"managed_modification_history_mismatch\", \"The execution history differs from its requested scope.\");\n if (page.teamId !== expected.teamId || expected.ownerUserId !== undefined && page.ownerUserId !== expected.ownerUserId ||\n canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content) ||\n page.items.length > query.limit || new Set(page.items.map(item => item.id)).size !== page.items.length ||\n page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor)) throw invalid();\n for (const [index, item] of page.items.entries()) {\n const previous = page.items[index - 1];\n assertManagedModificationPricing(item.plan);\n if (item.teamId !== page.teamId || item.ownerUserId !== page.ownerUserId ||\n query.id !== undefined && item.id !== query.id || query.projectId !== undefined && item.projectId !== query.projectId ||\n query.method !== undefined && item.method !== query.method || query.phase !== undefined && item.phase !== query.phase ||\n canonicalComputeSpendCap(item.plan.maximumSpendUsd) !== item.plan.maximumSpendUsd ||\n Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt) ||\n previous && (Date.parse(previous.plan.createdAt) < Date.parse(item.plan.createdAt) ||\n Date.parse(previous.plan.createdAt) === Date.parse(item.plan.createdAt) && previous.id <= item.id)) throw invalid();\n }\n return page;\n}\n\nexport function canonicalModificationSpend(value:string):string {\n const result=canonicalComputeSpendCap(Spend.parse(value));\n if(result===null) throw new OpenPondProtocolError(\"managed_modification_cap_invalid\",\"Choose a positive spending limit.\");\n return result;\n}\n\nexport async function parseAndVerifyManagedModificationPrepare(raw: unknown): Promise<ManagedModificationPrepare> {\n const value = ManagedModificationPrepareSchema.parse(raw);\n value.maximumSpendUsd = canonicalComputeSpendCap(value.maximumSpendUsd);\n await parseAndVerifyActivationReferenceRequest(value.request);\n if (value.sourceForm) {\n parseManagedModificationCompile({teamId: value.teamId, projectId: value.projectId,\n method: value.method, query: value.query, form: value.sourceForm});\n verifySourceForm(value.sourceForm, value.request, value.maximumSpendUsd);\n }\n if (value.request.startingProfile && value.method !== \"neuron_steering\")\n throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n const profiles = value.request.variants.filter(row => row.profile !== null).length;\n if (value.query.teamId !== value.teamId || value.query.modelId !== value.request.model.modelId ||\n value.query.revision !== value.request.model.revision ||\n (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === value.request.variants.length))\n throw new OpenPondProtocolError(\"managed_modification_input_invalid\", \"Retain the exact model and appropriate inspection or Off/intervention comparison.\");\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > 1_048_576)\n throw new OpenPondProtocolError(\"managed_modification_input_too_large\", \"The bounded activation request exceeds 1 MiB.\");\n return value;\n}\nexport function parseManagedModificationControl(raw: unknown): ManagedModificationStart | ManagedModificationCancel {\n const value = z.discriminatedUnion(\"action\", [ManagedModificationStartSchema, ManagedModificationCancelSchema]).parse(raw);\n if (value.action === \"start\") value.approvedMaximumSpendUsd = canonicalComputeSpendCap(value.approvedMaximumSpendUsd);\n return value;\n}\n/** The receipt projects the original immutable owner receipt. Capture bytes are\n * read separately; a later execution read cannot replace mutation history. */\nexport async function parseAndVerifyManagedModificationExecutionReceipt(raw: unknown,\n input: ManagedModificationPrepare | ManagedModificationStart | ManagedModificationCancel) {\n const value = ManagedModificationExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n const command = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedModificationPrepare(input);\n const execution = value.execution, prepare = !(\"action\" in command);\n const expectedHash = await canonicalSha256(prepare ? {action: \"prepare\", command} : command);\n if (contentHash !== await canonicalSha256(content) || value.operationId !== command.operationId || value.requestHash !== expectedHash ||\n execution.teamId !== command.teamId || Date.parse(execution.plan.expiresAt) <= Date.parse(execution.plan.createdAt) ||\n execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(execution.plan.maximumSpendUsd))\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The receipt differs from the original operation and reviewed execution.\");\n if (prepare) {\n const request = command as ManagedModificationPrepare;\n const id = `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: execution.ownerUserId, operationId: request.operationId})}`;\n if (execution.id !== id || execution.projectId !== request.projectId || execution.name !== request.name || execution.method !== request.method ||\n execution.phase !== \"prepared\" || execution.revision !== 1 || execution.plan.inputHash !== await canonicalSha256(request.request) ||\n execution.plan.maximumSpendUsd !== request.maximumSpendUsd)\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The preparation differs from the requested bounded experiment.\");\n } else {\n const request = command as ManagedModificationStart | ManagedModificationCancel;\n if (execution.id !== request.id || execution.revision !== request.expectedRevision + 1 || execution.plan.contentHash !== request.planHash ||\n (request.action === \"start\" ? execution.phase !== \"queued\" || execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(execution.phase)))\n throw new OpenPondProtocolError(\"managed_modification_receipt_mismatch\", \"The action differs from the exact reviewed execution.\");\n }\n return value;\n}\n\nexport async function parseAndVerifyManagedModificationExecution(\n raw: unknown,\n expected: { teamId: string; id: string; ownerUserId?: string },\n): Promise<ManagedModificationExecution> {\n const value = ManagedModificationExecutionSchema.parse(raw);\n const { contentHash, ...content } = value;\n const request = await parseAndVerifyActivationReferenceRequest(value.request);\n if (value.sourceForm) verifySourceForm(value.sourceForm, request, value.plan.maximumSpendUsd);\n if (request.startingProfile && value.method !== \"neuron_steering\") throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n const profiles = request.variants.filter((row) => row.profile !== null).length;\n if (value.teamId !== expected.teamId || value.id !== expected.id ||\n expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId ||\n contentHash !== await canonicalSha256(content) ||\n value.plan.inputHash !== await canonicalSha256(request) ||\n (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length) ||\n value.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.plan.maximumSpendUsd) ||\n Boolean(value.result) !== Boolean(value.resultRecordedAt) ||\n Date.parse(value.plan.expiresAt) <= Date.parse(value.plan.createdAt))\n throw new OpenPondProtocolError(\"managed_modification_execution_mismatch\", \"The execution differs from its retained identity, request or capture.\");\n if (value.result) await parseAndVerifyActivationReferenceResult(value.result, request);\n return value;\n}\n\nfunction verifySourceForm(form: z.infer<typeof ActivationExperimentFormDraftSchema>,\n request: z.infer<typeof ActivationReferenceRequestSchema>, maximumSpendUsd: string|null) {\n if (canonicalJson(form.startingProfile ?? null) !== canonicalJson(request.startingProfile ? activationStartingProfileSource(request.startingProfile) : null))\n throw new OpenPondProtocolError(\"managed_modification_authoring_mismatch\", \"Retain the exact saved steering source through preparation.\");\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId ||\n form.baseModel.revision !== request.model.revision || canonicalComputeSpendCap(form.maximumSpendUsd) !== maximumSpendUsd)\n throw new OpenPondProtocolError(\"managed_modification_authoring_mismatch\", \"The retained form differs from this exact model or spending cap.\");\n}\n\n// A full capture is bounded to 8 MiB and its exact request to 1 MiB. Keep\n// envelope headroom here without increasing unrelated Training API reads.\nexport const MANAGED_MODIFICATION_EXECUTION_RESPONSE_MAX_BYTES = 10 * 1024 * 1024;\nexport function createManagedModificationExecutionClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n async function mutate(input: ManagedModificationPrepare | ManagedModificationStart | ManagedModificationCancel) {\n const value = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedModificationPrepare(input);\n const path = \"action\" in value ? `/v1/training/modification-executions/${encodeURIComponent(value.id)}/${value.action}`\n : \"/v1/training/modification-executions/prepare\";\n return parseAndVerifyManagedModificationExecutionReceipt(await request(path, {method: \"POST\", body: canonicalJson(value)}), value);\n }\n return {\n async compileModificationExecution(input: ManagedModificationCompile) {\n const value = parseManagedModificationCompile(input);\n return parseAndVerifyManagedModificationCompilation(await request(\"/v1/training/modification-executions/compile\",\n {method: \"POST\", body: canonicalJson(value)}), value);\n },\n prepareModificationExecution(input: ManagedModificationPrepare) { return mutate(input); },\n startModificationExecution(input: ManagedModificationStart) { return mutate(input); },\n cancelModificationExecution(input: ManagedModificationCancel) { return mutate(input); },\n async listModificationExecutions(teamId: string, query: ManagedModificationExecutionListQuery = {},\n options: {signal?: AbortSignal; ownerUserId?: string} = {}): Promise<ManagedModificationExecutionPage> {\n const team = Id.parse(teamId), parsed = ManagedModificationExecutionListQuerySchema.parse(query);\n const params = new URLSearchParams({teamId: team});\n for (const [key, value] of Object.entries(parsed)) params.set(key, String(value));\n return parseAndVerifyManagedModificationExecutionPage(await request(`/v1/training/modification-executions?${params}`,\n {signal: options.signal}), {teamId: team, query: parsed, ownerUserId: options.ownerUserId});\n },\n async getModificationExecution(teamId: string, id: string, options: { signal?: AbortSignal } = {}): Promise<ManagedModificationExecution> {\n const team = Id.parse(teamId), executionId = Id.parse(id);\n const params = new URLSearchParams({ teamId: team });\n return parseAndVerifyManagedModificationExecution(await request(\n `/v1/training/modification-executions/${encodeURIComponent(executionId)}?${params}`,\n { signal: options.signal },\n MANAGED_MODIFICATION_EXECUTION_RESPONSE_MAX_BYTES,\n ), { teamId: team, id: executionId });\n },\n };\n}\n","import { activationStartingProfileSource } from \"./steering-experiment-source.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ActivationExperimentFormDraftSchema } from \"./activation-experiment-draft.js\";\nimport { ActivationReferenceRequestSchema, parseAndVerifyActivationReferenceRequest } from \"./activation-reference.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** Bounded CPU compilation only. Runtime/tokenizer assets are host-owned. */\nexport const ManagedModificationCompileSchema = z.object({\n teamId: Id, projectId: Id.nullable(), method: ModelModificationMethodSchema,\n query: ModelModificationCapabilitiesQuerySchema, form: ActivationExperimentFormDraftSchema,\n}).strict();\nexport type ManagedModificationCompile = z.infer<typeof ManagedModificationCompileSchema>;\nexport const ManagedModificationCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedModificationCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: ModelModificationMethodSchema, query: ModelModificationCapabilitiesQuerySchema,\n formHash: Hash, request: ActivationReferenceRequestSchema, inputHash: Hash,\n}).strict();\nexport const ManagedModificationCompilationSchema = ManagedModificationCompilationContentSchema.extend({contentHash: Hash}).strict();\nexport type ManagedModificationCompilation = z.infer<typeof ManagedModificationCompilationSchema>;\n\nexport function parseManagedModificationCompile(raw: unknown) {\n const value = ManagedModificationCompileSchema.parse(raw), query = value.query;\n const source = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (value.form.startingProfile && value.method !== \"neuron_steering\")\n throw new OpenPondProtocolError(\"managed_modification_saved_source_unsupported\", \"Saved steering sources currently require neuron steering.\");\n if (query.teamId !== value.teamId || canonicalJson(value.form.baseModel) !== canonicalJson(source))\n throw new OpenPondProtocolError(\"managed_modification_compile_scope_mismatch\", \"Retain the exact form, model and workspace query.\");\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > 1_048_576)\n throw new OpenPondProtocolError(\"managed_modification_compile_too_large\", \"The bounded form exceeds 1 MiB.\");\n return value;\n}\n/** Verifies the compiled request's exact input/model identity and complete\n * declared bounds. Compilation grants no runtime or funding authority. */\nexport async function parseAndVerifyManagedModificationCompilation(raw: unknown, input: ManagedModificationCompile) {\n const command = parseManagedModificationCompile(input), value = ManagedModificationCompilationSchema.parse(raw);\n const {contentHash, ...content} = value, request = await parseAndVerifyActivationReferenceRequest(value.request);\n if (canonicalJson(command.form.startingProfile ?? null) !== canonicalJson(request.startingProfile ? activationStartingProfileSource(request.startingProfile) : null))\n throw new OpenPondProtocolError(\"managed_modification_compilation_mismatch\", \"The compilation dropped or changed the saved steering source.\");\n const profiles = request.variants.filter(row => row.profile !== null).length;\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || value.projectId !== command.projectId ||\n value.method !== command.method || canonicalJson(value.query) !== canonicalJson(command.query) ||\n value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request) ||\n request.model.modelId !== command.query.modelId || request.model.revision !== command.query.revision ||\n (command.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length))\n throw new OpenPondProtocolError(\"managed_modification_compilation_mismatch\", \"The compilation differs from the exact requested form, model or bounds.\");\n return value;\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { EngramAdapterConfigSchema, EngramTrainingRequestSchema, EngramTrainingResultSchema,\n EngramTrainingSettingsSchema, parseAndVerifyEngramTrainingRequest, parseAndVerifyEngramTrainingResult } from \"./engram-adapter.js\";\nimport { EngramExperimentFormDraftSchema } from \"./engram-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"engram_adapter\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const EngramExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.engramExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema, config: EngramAdapterConfigSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.engramTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(1000), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(2_147_483_648)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const EngramExecutionCapabilitySchema = EngramExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type EngramExecutionCapability = z.infer<typeof EngramExecutionCapabilitySchema>;\n\nexport const ManagedEngramCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: EngramExperimentFormDraftSchema}).strict();\nexport type ManagedEngramCompile = z.infer<typeof ManagedEngramCompileSchema>;\nexport const ManagedEngramCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: EngramTrainingRequestSchema,\n}).strict();\nexport const ManagedEngramCompilationSchema = ManagedEngramCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramCompilation = z.infer<typeof ManagedEngramCompilationSchema>;\nexport const ManagedEngramPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: EngramTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: EngramExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedEngramPrepare = z.infer<typeof ManagedEngramPrepareSchema>;\nexport const ManagedEngramStartSchema = ManagedModificationStartSchema;\nexport const ManagedEngramCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedEngramStart = z.infer<typeof ManagedEngramStartSchema>;\nexport type ManagedEngramCancel = z.infer<typeof ManagedEngramCancelSchema>;\nexport const ManagedEngramExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedEngramExecutionContentSchema = ManagedEngramExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedEngramExecution.v1\"), request: EngramTrainingRequestSchema,\n sourceForm: EngramExperimentFormDraftSchema.optional(), result: EngramTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedEngramExecutionSchema = ManagedEngramExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecution = z.infer<typeof ManagedEngramExecutionSchema>;\nexport const ManagedEngramExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedEngramExecutionMetadataSchema,\n}).strict();\nexport const ManagedEngramExecutionReceiptSchema = ManagedEngramExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecutionReceipt = z.infer<typeof ManagedEngramExecutionReceiptSchema>;\nexport const ManagedEngramExecutionListQuerySchema = z.object({\n method: Method.default(\"engram_adapter\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedEngramExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedEngramExecutionListQuery = z.input<typeof ManagedEngramExecutionListQuerySchema>;\nexport const ManagedEngramExecutionSummarySchema = ManagedEngramExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedEngramExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedEngramExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedEngramExecutionListQuerySchema, items: z.array(ManagedEngramExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedEngramExecutionPageSchema = ManagedEngramExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedEngramExecutionPage = z.infer<typeof ManagedEngramExecutionPageSchema>;\n\nexport function parseEngramFormTraining(raw: z.infer<typeof EngramExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"engram_training_settings_missing\", \"Complete each Engram training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return EngramTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"engram_execution_mismatch\", \"The Engram operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof EngramTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nasync function checkForm(form: z.infer<typeof EngramExperimentFormDraftSchema>, request: z.infer<typeof EngramTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.batch) !== canonicalJson(request.data.batch)\n || canonicalJson(parseEngramFormTraining(form.training)) !== canonicalJson(request.training)\n || canonicalJson(form.parentArtifact) !== canonicalJson(request.parentArtifact)) fail();\n if (form.startingModule && (canonicalJson(form.startingModule.artifact) !== canonicalJson(request.parentArtifact)\n || form.startingModule.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof EngramExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyEngramExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = EngramExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedEngramCompilation(raw: unknown, input: ManagedEngramCompile) {\n const command = ManagedEngramCompileSchema.parse(input), value = ManagedEngramCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyEngramTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedEngramExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedEngramExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyEngramTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyEngramTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedEngramPrepare(raw: unknown) {\n const request = ManagedEngramPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyEngramTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedEngramExecutionReceipt(raw: unknown, command: ManagedEngramPrepare | ManagedEngramStart | ManagedEngramCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedEngramPrepare(command);\n const value = ManagedEngramExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyEngramTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedEngramExecutionListQuery = {}) {\n const query = ManagedEngramExecutionListQuerySchema.parse(raw);\n return ManagedEngramExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedEngramExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedEngramExecutionListQuery;\n}) {\n const value = ManagedEngramExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * Engram parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedEngramExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async engramExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyEngramExecutionCapability(await request(`/v1/training/modification-capabilities/engram?${params(query)}`, options), query);\n },\n async compileEngramExecution(raw: ManagedEngramCompile) {\n const command = ManagedEngramCompileSchema.parse(raw);\n return parseAndVerifyManagedEngramCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareEngramExecution(raw: ManagedEngramPrepare) {\n const command = await parseAndVerifyManagedEngramPrepare(raw);\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startEngramExecution(raw: ManagedEngramStart) {\n const command = parseManagedModificationControl(ManagedEngramStartSchema.parse(raw));\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelEngramExecution(raw: ManagedEngramCancel) {\n const command = ManagedEngramCancelSchema.parse(raw);\n return parseAndVerifyManagedEngramExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getEngramExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedEngramExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listEngramExecutions(teamId: string, raw: ManagedEngramExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedEngramExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { canonicalJson, canonicalJsonByteLength, canonicalSha256, OpenPondProtocolError, parseBoundedJson } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { DecisionModelIdentitySchema, parseAndVerifyDecisionModelIdentity } from \"./decision-model.js\";\nimport { DecisionTrainingRequestSchema, DecisionTrainingResultSchema, DecisionTrainingSettingsSchema,\n parseAndVerifyDecisionTrainingRequest, parseAndVerifyDecisionTrainingResult } from \"./decision-model-training.js\";\nimport { DecisionScoringInputSchema, DecisionScoringRequestSchema, DecisionScoringResultSchema,\n parseAndVerifyDecisionScoringRequest, parseAndVerifyDecisionScoringResult } from \"./decision-model-data.js\";\nimport { DecisionExperimentFormDraftSchema, DecisionTrainingFormDraftSchema, type DecisionExperimentFormDraft } from \"./decision-experiment-draft.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"decision_model\"), Mode = z.enum([\"train\", \"score\"]);\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const DecisionExecutionRequestSchema = z.discriminatedUnion(\"schemaVersion\", [DecisionTrainingRequestSchema, DecisionScoringRequestSchema]);\nexport type DecisionExecutionRequest = z.infer<typeof DecisionExecutionRequestSchema>;\nexport const DecisionExecutionResultSchema = z.discriminatedUnion(\"schemaVersion\", [DecisionTrainingResultSchema, DecisionScoringResultSchema]);\nexport type DecisionExecutionResult = z.infer<typeof DecisionExecutionResultSchema>;\nexport const DecisionExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({ state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000) }).strict(),\n z.object({ state: z.literal(\"ready\"), model: DecisionModelIdentitySchema,\n runtime: z.object({ id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchemas: z.tuple([z.literal(\"openpond.decisionTrainingRequest.v1\"), z.literal(\"openpond.decisionScoringRequest.v1\")]),\n evidence: z.object({ id: Id, contentHash: Hash }).strict(),\n }).strict(),\n limits: z.object({\n train: z.object({\n maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(4096), maximumGradientAccumulationSteps: z.number().int().min(1).max(64),\n maximumPromptTokens: z.number().int().min(1).max(2048), maximumForwardTokenWork: z.number().int().positive().max(536_870_912),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(268_435_456),\n }).strict(),\n score: z.object({\n maximumQuestions: z.number().int().min(1).max(8), maximumChoicesPerQuestion: z.number().int().min(2).max(26),\n maximumStateBytes: z.number().int().positive().max(65_536), maximumPromptTokens: z.number().int().min(1).max(2048),\n maximumForwardTokenWork: z.number().int().positive().max(65_536), maximumDurationSeconds: z.number().finite().positive().max(300),\n }).strict(),\n }).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const DecisionExecutionCapabilitySchema = DecisionExecutionCapabilityContentSchema.extend({ contentHash: Hash });\nexport type DecisionExecutionCapability = z.infer<typeof DecisionExecutionCapabilitySchema>;\n\nexport const ManagedDecisionCompileSchema = z.object({ teamId: Id, projectId: Id.nullable(), method: Method,\n mode: Mode, query: Query, form: DecisionExperimentFormDraftSchema }).strict();\nexport type ManagedDecisionCompile = z.infer<typeof ManagedDecisionCompileSchema>;\nexport const ManagedDecisionCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, mode: Mode, query: Query, formHash: Hash, inputHash: Hash,\n request: DecisionExecutionRequestSchema,\n}).strict();\nexport const ManagedDecisionCompilationSchema = ManagedDecisionCompilationContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionCompilation = z.infer<typeof ManagedDecisionCompilationSchema>;\nexport const ManagedDecisionPrepareSchema = z.object({ teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, mode: Mode, query: Query,\n request: DecisionExecutionRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: DecisionExperimentFormDraftSchema.optional(),\n}).strict();\nexport type ManagedDecisionPrepare = z.infer<typeof ManagedDecisionPrepareSchema>;\nexport const ManagedDecisionStartSchema = ManagedModificationStartSchema;\nexport const ManagedDecisionCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedDecisionStart = z.infer<typeof ManagedDecisionStartSchema>;\nexport type ManagedDecisionCancel = z.infer<typeof ManagedDecisionCancelSchema>;\nexport const ManagedDecisionExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({ method: true }).extend({ method: Method, mode: Mode }).strict();\nexport type ManagedDecisionExecutionMetadata = z.infer<typeof ManagedDecisionExecutionMetadataSchema>;\nexport const ManagedDecisionExecutionContentSchema = ManagedDecisionExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedDecisionExecution.v1\"), request: DecisionExecutionRequestSchema,\n sourceForm: DecisionExperimentFormDraftSchema.optional(), result: DecisionExecutionResultSchema.nullable(), resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedDecisionExecutionSchema = ManagedDecisionExecutionContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecution = z.infer<typeof ManagedDecisionExecutionSchema>;\nexport const ManagedDecisionExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedDecisionExecutionMetadataSchema,\n}).strict();\nexport const ManagedDecisionExecutionReceiptSchema = ManagedDecisionExecutionReceiptContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecutionReceipt = z.infer<typeof ManagedDecisionExecutionReceiptSchema>;\nexport const ManagedDecisionExecutionListQuerySchema = z.object({\n method: Method.default(\"decision_model\"), mode: Mode.optional(), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedDecisionExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedDecisionExecutionListQuery = z.input<typeof ManagedDecisionExecutionListQuerySchema>;\nexport const ManagedDecisionExecutionSummarySchema = ManagedDecisionExecutionMetadataSchema.extend({ model: DecisionModelIdentitySchema }).strict();\nexport type ManagedDecisionExecutionSummary = z.infer<typeof ManagedDecisionExecutionSummarySchema>;\nexport const ManagedDecisionExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedDecisionExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedDecisionExecutionListQuerySchema, items: z.array(ManagedDecisionExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedDecisionExecutionPageSchema = ManagedDecisionExecutionPageContentSchema.extend({ contentHash: Hash });\nexport type ManagedDecisionExecutionPage = z.infer<typeof ManagedDecisionExecutionPageSchema>;\n\nfunction fail(): never {\n throw new OpenPondProtocolError(\"decision_execution_mismatch\", \"The decision operation differs from its exact source, mode, input, settings or original approval.\");\n}\nfunction requestMode(request: DecisionExecutionRequest) {\n return request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" ? \"train\" : \"score\";\n}\nfunction querySource(query: z.infer<typeof Query>) {\n return { schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null };\n}\nfunction checkSource(query: z.infer<typeof Query>, model: z.infer<typeof DecisionModelIdentitySchema>) {\n if (canonicalJson(querySource(query)) !== canonicalJson(model.source)) fail();\n}\nfunction formNumbers(raw: Record<string, string>) {\n return Object.fromEntries(Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"decision_settings_missing\", \"Complete each decision setting before compiling.\");\n return [key, Number(value)];\n }));\n}\nexport function parseDecisionFormTraining(raw: z.infer<typeof DecisionTrainingFormDraftSchema>) {\n return DecisionTrainingSettingsSchema.parse(formNumbers(raw));\n}\n/** Compiles raw unlabeled authoring only; the host still resolves the actual\n * released tokenizer and must enforce answer-boundary tokens and prompt work. */\nexport function parseDecisionFormScoring(raw: z.infer<typeof DecisionExperimentFormDraftSchema> & { mode: \"score\" }) {\n const input = DecisionScoringInputSchema.parse({\n state: parseBoundedJson(raw.stateJson, 131_072, \"Decision state\"),\n questions: raw.questions.map(row => ({ ...row, choices: row.choices.map(choice => {\n let value: string | boolean | number = choice.value;\n if (row.type === \"boolean\") {\n if (value !== \"false\" && value !== \"true\") fail();\n value = value === \"true\";\n } else if (row.type === \"integer_levels\") {\n if (!/^-?(0|[1-9]\\d*)$/.test(value)) fail();\n value = Number(value);\n }\n return { value, description: choice.description };\n }) })),\n });\n return { input, limits: DecisionScoringRequestSchema.shape.limits.parse(formNumbers(raw.limits)) };\n}\nasync function checkForm(form: DecisionExperimentFormDraft, request: DecisionExecutionRequest) {\n const parent = request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" ? request.parentArtifact : request.artifact;\n if (form.mode !== requestMode(request) || canonicalJson(form.baseModel) !== canonicalJson(request.model.source)\n || canonicalJson(form.parentArtifact) !== canonicalJson(parent)) fail();\n if (form.startingDecision && (canonicalJson(form.startingDecision.artifact) !== canonicalJson(parent)\n || form.startingDecision.modelHash !== await canonicalSha256(request.model))) fail();\n if (form.mode === \"train\" && request.schemaVersion === \"openpond.decisionTrainingRequest.v1\") {\n if (canonicalJson(form.batch) !== canonicalJson(request.data.batch)\n || canonicalJson(parseDecisionFormTraining(form.training)) !== canonicalJson(request.training)) fail();\n } else if (form.mode === \"score\" && request.schemaVersion === \"openpond.decisionScoringRequest.v1\") {\n const parsed = parseDecisionFormScoring(form);\n if (canonicalJson(parsed.input) !== canonicalJson(request.input) || canonicalJson(parsed.limits) !== canonicalJson(request.limits)) fail();\n } else fail();\n}\nasync function verifyRequest(raw: unknown) {\n const request = DecisionExecutionRequestSchema.parse(raw);\n return request.schemaVersion === \"openpond.decisionTrainingRequest.v1\"\n ? parseAndVerifyDecisionTrainingRequest(request) : parseAndVerifyDecisionScoringRequest(request);\n}\nfunction checkPlan(metadata: ManagedDecisionExecutionMetadata) {\n if (metadata.plan.maximumSpendUsd !== canonicalComputeSpendCap(metadata.plan.maximumSpendUsd)\n || Date.parse(metadata.plan.expiresAt) <= Date.parse(metadata.plan.createdAt)) fail();\n}\n\n/** An observation, not a reservation, worker claim or approval. A host must\n * distinguish source-validated staging trials from exact GPU qualification. */\nexport async function parseAndVerifyDecisionExecutionCapability(raw: unknown, input: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(input), value = DecisionExecutionCapabilitySchema.parse(raw), { contentHash, ...content } = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expiry = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expiry <= Date.now() || expiry <= checked || expiry - checked > 300_000) fail();\n if (value.execution.state === \"ready\") {\n await parseAndVerifyDecisionModelIdentity(value.execution.model); checkSource(query, value.execution.model);\n }\n return value;\n}\n/** Fresh capability bounds only. The hosted reviewed-data owner must also\n * check actual training example count/byte size; a batch ref cannot prove them. */\nexport async function verifyDecisionExecutionCapabilityRequest(raw: DecisionExecutionCapability, input: DecisionExecutionRequest) {\n const capability = await parseAndVerifyDecisionExecutionCapability(raw, raw.query, raw.actorId);\n const request = await verifyRequest(input), execution = capability.execution;\n if (execution.state !== \"ready\")\n throw new OpenPondProtocolError(\"decision_runtime_unavailable\", \"This exact decision runtime is not qualified for execution.\");\n if (canonicalJson(execution.model) !== canonicalJson(request.model)) fail();\n if (request.schemaVersion === \"openpond.decisionTrainingRequest.v1\") {\n const limits = execution.limits.train, settings = request.training;\n if (settings.maxSteps > limits.maximumSteps || settings.gradientAccumulationSteps > limits.maximumGradientAccumulationSteps\n || settings.maximumPromptTokens > limits.maximumPromptTokens || settings.maxDurationSeconds > limits.maximumDurationSeconds\n || settings.maxCheckpointBytes > limits.maximumCheckpointBytes\n || settings.maxSteps * settings.gradientAccumulationSteps * settings.maximumPromptTokens > limits.maximumForwardTokenWork) fail();\n } else {\n const limits = execution.limits.score;\n if (request.input.questions.length > limits.maximumQuestions\n || request.input.questions.some(question => question.choices.length > limits.maximumChoicesPerQuestion)\n || canonicalJsonByteLength(request.input.state) > limits.maximumStateBytes\n || request.limits.maximumPromptTokens > limits.maximumPromptTokens\n || request.limits.maximumForwardTokenWork > limits.maximumForwardTokenWork\n || request.limits.maximumDurationSeconds > limits.maximumDurationSeconds) fail();\n }\n return execution;\n}\nexport function parseManagedDecisionCompile(raw: unknown) {\n assertBoundedTaskJson(raw, 1_048_576);\n const value = ManagedDecisionCompileSchema.parse(raw);\n if (value.query.teamId !== value.teamId || value.mode !== value.form.mode\n || canonicalJson(value.form.baseModel) !== canonicalJson(querySource(value.query))) fail();\n if (!value.form.name.trim()) fail();\n canonicalComputeSpendCap(value.form.maximumSpendUsd);\n if (value.form.mode === \"train\") {\n if (value.form.batch === null) fail();\n parseDecisionFormTraining(value.form.training);\n } else parseDecisionFormScoring(value.form);\n return value;\n}\nexport async function parseAndVerifyManagedDecisionCompilation(raw: unknown, input: ManagedDecisionCompile, actorId?: string) {\n const command = parseManagedDecisionCompile(input), value = ManagedDecisionCompilationSchema.parse(raw), { contentHash, ...content } = value;\n const request = await verifyRequest(value.request);\n checkSource(command.query, request.model); await checkForm(command.form, request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || value.projectId !== command.projectId\n || actorId !== undefined && value.actorId !== actorId || value.mode !== command.mode || value.mode !== requestMode(request)\n || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\n/** A source form is optional for direct typed callers. When present, the host\n * must freshly resolve its reviewed batch/saved source and recompile it before\n * admitting a new preparation; public verification cannot establish Dataset\n * authorization from a caller-supplied examples digest. Original receipt replay\n * must precede those fresh mutable authorization/qualification checks. */\nexport async function parseAndVerifyManagedDecisionPrepare(raw: unknown) {\n assertBoundedTaskJson(raw, 1_048_576);\n const command = ManagedDecisionPrepareSchema.parse(raw);\n command.maximumSpendUsd = canonicalComputeSpendCap(command.maximumSpendUsd);\n const request = await verifyRequest(command.request);\n if (command.query.teamId !== command.teamId || command.mode !== requestMode(request)) fail();\n checkSource(command.query, request.model);\n if (command.sourceForm) {\n await checkForm(command.sourceForm, request);\n if (command.sourceForm.name.trim() !== command.name\n || canonicalComputeSpendCap(command.sourceForm.maximumSpendUsd) !== command.maximumSpendUsd) fail();\n }\n return command;\n}\nexport async function parseAndVerifyManagedDecisionExecution(raw: unknown, expected: { teamId: string; id: string; ownerUserId?: string }) {\n assertBoundedTaskJson(raw, 1_048_576);\n const value = ManagedDecisionExecutionSchema.parse(raw), { contentHash, ...content } = value;\n const request = await verifyRequest(value.request); checkPlan(value);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId || value.mode !== requestMode(request)\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null\n || value.phase === \"completed\" && value.result === null) fail();\n if (value.sourceForm) {\n await checkForm(value.sourceForm, request);\n if (value.sourceForm.name.trim() !== value.name\n || canonicalComputeSpendCap(value.sourceForm.maximumSpendUsd) !== value.plan.maximumSpendUsd) fail();\n }\n if (value.result) {\n if (request.schemaVersion === \"openpond.decisionTrainingRequest.v1\" && value.result.schemaVersion === \"openpond.decisionTrainingResult.v1\")\n await parseAndVerifyDecisionTrainingResult(value.result, { request, runtimeHash: value.plan.runtimeHash });\n else if (request.schemaVersion === \"openpond.decisionScoringRequest.v1\" && value.result.schemaVersion === \"openpond.decisionScoringResult.v1\")\n await parseAndVerifyDecisionScoringResult(value.result, { request, runtimeHash: value.plan.runtimeHash });\n else fail();\n }\n return value;\n}\nexport async function parseAndVerifyManagedDecisionExecutionReceipt(raw: unknown, input: ManagedDecisionPrepare | ManagedDecisionStart | ManagedDecisionCancel, ownerUserId?: string) {\n const command = \"action\" in input ? parseManagedModificationControl(input) : await parseAndVerifyManagedDecisionPrepare(input);\n const value = ManagedDecisionExecutionReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const metadata = value.execution; checkPlan(metadata);\n if (contentHash !== await canonicalSha256(content) || value.operationId !== command.operationId || metadata.teamId !== command.teamId\n || ownerUserId !== undefined && metadata.ownerUserId !== ownerUserId\n || value.requestHash !== await canonicalSha256(\"action\" in command ? command : { action: \"prepare\", command })) fail();\n if (\"action\" in command) {\n if (metadata.id !== command.id || metadata.plan.contentHash !== command.planHash || metadata.revision !== command.expectedRevision + 1\n || (command.action === \"start\" ? metadata.phase !== \"queued\" || metadata.plan.maximumSpendUsd !== command.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(metadata.plan,command)\n : ![\"cancelled\", \"stopping\"].includes(metadata.phase))) fail();\n } else if (metadata.projectId !== command.projectId || metadata.name !== command.name || metadata.mode !== command.mode\n || metadata.plan.inputHash !== await canonicalSha256(command.request) || metadata.plan.maximumSpendUsd !== command.maximumSpendUsd\n || metadata.phase !== \"prepared\" || metadata.revision !== 1\n || metadata.id !== `modification-${await canonicalSha256({ teamId: command.teamId, ownerUserId: metadata.ownerUserId, operationId: command.operationId })}`) fail();\n return value;\n}\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedDecisionExecutionListQuery = {}) {\n const query = ManagedDecisionExecutionListQuerySchema.parse(raw);\n return ManagedDecisionExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedDecisionExecutionPage(raw: unknown, expected: { teamId: string; ownerUserId?: string; query?: ManagedDecisionExecutionListQuery }) {\n const value = ManagedDecisionExecutionPageSchema.parse(raw), { contentHash, ...content } = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId || canonicalJson(value.query) !== canonicalJson(query)\n || value.items.length > query.limit || new Set(value.items.map(item => item.id)).size !== value.items.length\n || value.nextCursor !== null && (value.items.length !== query.limit || value.nextCursor === query.cursor)) fail();\n for (const [index, item] of value.items.entries()) {\n const previous = value.items[index - 1];\n checkPlan(item); await parseAndVerifyDecisionModelIdentity(item.model);\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId || query.mode !== undefined && item.mode !== query.mode\n || query.id !== undefined && item.id !== query.id || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || previous && (Date.parse(previous.plan.createdAt) < Date.parse(item.plan.createdAt)\n || Date.parse(previous.plan.createdAt) === Date.parse(item.plan.createdAt) && previous.id <= item.id)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\ntype Options = { signal?: AbortSignal; ownerUserId?: string };\n/** Uses the configured canonical transport and existing modification owner.\n * Neither typed branch passes through activation/Engram request parsers. */\nexport function createManagedDecisionExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async decisionExecutionCapability(raw: z.infer<typeof Query>, options?: Options) {\n const query = Query.parse(raw);\n return parseAndVerifyDecisionExecutionCapability(await request(`/v1/training/modification-capabilities/decision?${params(query)}`, { signal: options?.signal }), query, options?.ownerUserId);\n },\n async compileDecisionExecution(raw: ManagedDecisionCompile, options?: Options) {\n const command = parseManagedDecisionCompile(raw);\n return parseAndVerifyManagedDecisionCompilation(await request(`${root}/compile`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async prepareDecisionExecution(raw: ManagedDecisionPrepare, options?: Options) {\n const command = await parseAndVerifyManagedDecisionPrepare(raw);\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/prepare`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async startDecisionExecution(raw: ManagedDecisionStart, options?: Options) {\n const command = parseManagedModificationControl(ManagedDecisionStartSchema.parse(raw));\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async cancelDecisionExecution(raw: ManagedDecisionCancel, options?: Options) {\n const command = parseManagedModificationControl(ManagedDecisionCancelSchema.parse(raw));\n return parseAndVerifyManagedDecisionExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, { method: \"POST\", body: canonicalJson(command), signal: options?.signal }), command, options?.ownerUserId);\n },\n async getDecisionExecution(teamId: string, id: string, options?: Options) {\n const scope = { teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId };\n return parseAndVerifyManagedDecisionExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({ teamId: scope.teamId })}`, { signal: options?.signal }), scope);\n },\n async listDecisionExecutions(teamId: string, raw: ManagedDecisionExecutionListQuery = {}, options?: Options) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedDecisionExecutionPage(await request(`${root}?${params({ teamId: team, ...query })}`, { signal: options?.signal }), { teamId: team, query, ownerUserId: options?.ownerUserId });\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { AlphaEditConfigSchema, AlphaEditTrainingRequestSchema, AlphaEditTrainingSettingsSchema,\n parseAndVerifyAlphaEditTrainingRequest } from \"./alphaedit.js\";\nimport { AlphaEditTrainingResultSchema, parseAndVerifyAlphaEditTrainingResult } from \"./alphaedit-artifact.js\";\nimport { AlphaEditExperimentFormDraftSchema, ALPHAEDIT_CONFIG_DEFAULTS } from \"./alphaedit-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"alphaedit\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const AlphaEditExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.alphaEditTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(17_179_869_184)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const AlphaEditExecutionCapabilitySchema = AlphaEditExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type AlphaEditExecutionCapability = z.infer<typeof AlphaEditExecutionCapabilitySchema>;\n\nexport const ManagedAlphaEditCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: AlphaEditExperimentFormDraftSchema}).strict();\nexport type ManagedAlphaEditCompile = z.infer<typeof ManagedAlphaEditCompileSchema>;\nexport const ManagedAlphaEditCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: AlphaEditTrainingRequestSchema,\n}).strict();\nexport const ManagedAlphaEditCompilationSchema = ManagedAlphaEditCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditCompilation = z.infer<typeof ManagedAlphaEditCompilationSchema>;\nexport const ManagedAlphaEditPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: AlphaEditTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: AlphaEditExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedAlphaEditPrepare = z.infer<typeof ManagedAlphaEditPrepareSchema>;\nexport const ManagedAlphaEditStartSchema = ManagedModificationStartSchema;\nexport const ManagedAlphaEditCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedAlphaEditStart = z.infer<typeof ManagedAlphaEditStartSchema>;\nexport type ManagedAlphaEditCancel = z.infer<typeof ManagedAlphaEditCancelSchema>;\nexport const ManagedAlphaEditExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedAlphaEditExecutionContentSchema = ManagedAlphaEditExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecution.v1\"), request: AlphaEditTrainingRequestSchema,\n sourceForm: AlphaEditExperimentFormDraftSchema.optional(), result: AlphaEditTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedAlphaEditExecutionSchema = ManagedAlphaEditExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecution = z.infer<typeof ManagedAlphaEditExecutionSchema>;\nexport const ManagedAlphaEditExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedAlphaEditExecutionMetadataSchema,\n}).strict();\nexport const ManagedAlphaEditExecutionReceiptSchema = ManagedAlphaEditExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecutionReceipt = z.infer<typeof ManagedAlphaEditExecutionReceiptSchema>;\nexport const ManagedAlphaEditExecutionListQuerySchema = z.object({\n method: Method.default(\"alphaedit\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedAlphaEditExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedAlphaEditExecutionListQuery = z.input<typeof ManagedAlphaEditExecutionListQuerySchema>;\nexport const ManagedAlphaEditExecutionSummarySchema = ManagedAlphaEditExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedAlphaEditExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedAlphaEditExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedAlphaEditExecutionListQuerySchema, items: z.array(ManagedAlphaEditExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedAlphaEditExecutionPageSchema = ManagedAlphaEditExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedAlphaEditExecutionPage = z.infer<typeof ManagedAlphaEditExecutionPageSchema>;\n\nexport function parseAlphaEditFormTraining(raw: z.infer<typeof AlphaEditExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"alphaedit_training_settings_missing\", \"Complete each AlphaEdit training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return AlphaEditTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"alphaedit_execution_mismatch\", \"The AlphaEdit operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof AlphaEditTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nexport function parseAlphaEditFormConfig(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>[\"config\"]) {\n let contextTemplateGroups: unknown;\n try { contextTemplateGroups = JSON.parse(form.contextTemplateGroups); }\n catch { throw new OpenPondProtocolError(\"alphaedit_context_invalid\", \"Enter valid JSON context-template groups.\"); }\n if (!form.layers.trim() || form.layers.split(\",\").some(value => !/^\\s*\\d+\\s*$/.test(value)))\n throw new OpenPondProtocolError(\"alphaedit_layers_invalid\", \"Enter comma-separated layer indexes.\");\n if (![form.lossLayer, form.nullspaceThreshold, form.l2].every(value => value.trim()))\n throw new OpenPondProtocolError(\"alphaedit_config_missing\", \"Complete the AlphaEdit configuration.\");\n return AlphaEditConfigSchema.parse({...ALPHAEDIT_CONFIG_DEFAULTS,\n layers: form.layers.split(\",\").map(Number), lossLayer: Number(form.lossLayer),\n contextTemplateGroups, nullspaceThreshold: Number(form.nullspaceThreshold), l2: Number(form.l2)});\n}\nasync function checkForm(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>, request: z.infer<typeof AlphaEditTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.editsBatch) !== canonicalJson(request.data.edits.batch)\n || canonicalJson(form.preservationBatch) !== canonicalJson(request.data.preservation.batch)\n || canonicalJson(parseAlphaEditFormConfig(form.config)) !== canonicalJson(request.config)\n || canonicalJson(parseAlphaEditFormTraining(form.training)) !== canonicalJson(request.training)\n || canonicalJson(form.parentArtifact) !== canonicalJson(request.parentArtifact)) fail();\n if (form.startingModule && (canonicalJson(form.startingModule.artifact) !== canonicalJson(request.parentArtifact)\n || form.startingModule.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof AlphaEditExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyAlphaEditExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = AlphaEditExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditCompilation(raw: unknown, input: ManagedAlphaEditCompile) {\n const command = ManagedAlphaEditCompileSchema.parse(input), value = ManagedAlphaEditCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyAlphaEditTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedAlphaEditExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyAlphaEditTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyAlphaEditTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedAlphaEditPrepare(raw: unknown) {\n const request = ManagedAlphaEditPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyAlphaEditTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedAlphaEditExecutionReceipt(raw: unknown, command: ManagedAlphaEditPrepare | ManagedAlphaEditStart | ManagedAlphaEditCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedAlphaEditPrepare(command);\n const value = ManagedAlphaEditExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyAlphaEditTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedAlphaEditExecutionListQuery = {}) {\n const query = ManagedAlphaEditExecutionListQuerySchema.parse(raw);\n return ManagedAlphaEditExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedAlphaEditExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedAlphaEditExecutionListQuery;\n}) {\n const value = ManagedAlphaEditExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * AlphaEdit parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedAlphaEditExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async alphaEditExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyAlphaEditExecutionCapability(await request(`/v1/training/modification-capabilities/alphaedit?${params(query)}`, options), query);\n },\n async compileAlphaEditExecution(raw: ManagedAlphaEditCompile) {\n const command = ManagedAlphaEditCompileSchema.parse(raw);\n return parseAndVerifyManagedAlphaEditCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareAlphaEditExecution(raw: ManagedAlphaEditPrepare) {\n const command = await parseAndVerifyManagedAlphaEditPrepare(raw);\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startAlphaEditExecution(raw: ManagedAlphaEditStart) {\n const command = parseManagedModificationControl(ManagedAlphaEditStartSchema.parse(raw));\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelAlphaEditExecution(raw: ManagedAlphaEditCancel) {\n const command = ManagedAlphaEditCancelSchema.parse(raw);\n return parseAndVerifyManagedAlphaEditExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getAlphaEditExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedAlphaEditExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listAlphaEditExecutions(teamId: string, raw: ManagedAlphaEditExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedAlphaEditExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { canonicalComputeSpendCap, managedModificationPriceApprovalMatches } from \"./managed-compute-price.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelModificationCapabilitiesQuerySchema, ModelModificationValidationLevelSchema, assertModelModificationValidationLevel } from \"./model-modification-capabilities.js\";\nimport { ManagedModificationExecutionMetadataSchema, ManagedModificationStartSchema, ManagedModificationCancelSchema,\n parseManagedModificationControl } from \"./managed-modification-executions.js\";\nimport { NeuronTrainingRequestSchema, NeuronTrainingSettingsSchema, NeuronTrainingSelectionSchema,\n parseAndVerifyNeuronTrainingRequest } from \"./neuron-training.js\";\nimport { NeuronTrainingResultSchema, parseAndVerifyNeuronTrainingResult } from \"./neuron-training-result.js\";\nimport { NeuronTrainingExperimentFormDraftSchema } from \"./neuron-training-experiment-draft.js\";\nimport { NeuronSteeringModelSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(48);\nconst Method = z.literal(\"selective_neuron_training\");\nconst Query = ModelModificationCapabilitiesQuerySchema;\nexport const NeuronTrainingExecutionCapabilityContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingExecutionCapability.v1\"),\n teamId: Id, actorId: Id, query: Query, requestHash: Hash,\n checkedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n validationLevel: ModelModificationValidationLevelSchema.nullable(),\n execution: z.discriminatedUnion(\"state\", [\n z.object({state: z.literal(\"unavailable\"), code: z.enum([\"model_not_supported\", \"runtime_not_qualified\"]), reason: z.string().min(1).max(1000)}).strict(),\n z.object({state: z.literal(\"ready\"), model: NeuronSteeringModelSchema,\n runtime: z.object({id: Id, releaseHash: Hash, imageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n requestSchema: z.literal(\"openpond.selectiveNeuronTrainingRequest.v1\"), evidence: z.object({id: Id, contentHash: Hash}).strict()}).strict(),\n limits: z.object({maximumExamples: z.number().int().min(1).max(4096), maximumDataBytes: z.number().int().positive().max(8_388_608),\n maximumSteps: z.number().int().min(1).max(128), maximumSequenceLength: z.number().int().min(2).max(8192),\n maximumDurationSeconds: z.number().finite().min(1).max(21_600), maximumCheckpointBytes: z.number().int().positive().max(16_777_216)}).strict(),\n }).strict(),\n ]),\n}).strict();\nexport const NeuronTrainingExecutionCapabilitySchema = NeuronTrainingExecutionCapabilityContentSchema.extend({contentHash: Hash});\nexport type NeuronTrainingExecutionCapability = z.infer<typeof NeuronTrainingExecutionCapabilitySchema>;\n\nexport const ManagedNeuronTrainingCompileSchema = z.object({teamId: Id, projectId: Id.nullable(), method: Method,\n query: Query, form: NeuronTrainingExperimentFormDraftSchema}).strict();\nexport type ManagedNeuronTrainingCompile = z.infer<typeof ManagedNeuronTrainingCompileSchema>;\nexport const ManagedNeuronTrainingCompilationContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingCompilation.v1\"), teamId: Id, actorId: Id,\n projectId: Id.nullable(), method: Method, query: Query, formHash: Hash, inputHash: Hash,\n request: NeuronTrainingRequestSchema,\n}).strict();\nexport const ManagedNeuronTrainingCompilationSchema = ManagedNeuronTrainingCompilationContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingCompilation = z.infer<typeof ManagedNeuronTrainingCompilationSchema>;\nexport const ManagedNeuronTrainingPrepareSchema = z.object({teamId: Id, operationId: Id, projectId: Id.nullable(),\n name: z.string().trim().min(1).max(500), method: Method, query: Query,\n request: NeuronTrainingRequestSchema, maximumSpendUsd: Money.nullish(), sourceForm: NeuronTrainingExperimentFormDraftSchema.optional()}).strict();\nexport type ManagedNeuronTrainingPrepare = z.infer<typeof ManagedNeuronTrainingPrepareSchema>;\nexport const ManagedNeuronTrainingStartSchema = ManagedModificationStartSchema;\nexport const ManagedNeuronTrainingCancelSchema = ManagedModificationCancelSchema;\nexport type ManagedNeuronTrainingStart = z.infer<typeof ManagedNeuronTrainingStartSchema>;\nexport type ManagedNeuronTrainingCancel = z.infer<typeof ManagedNeuronTrainingCancelSchema>;\nexport const ManagedNeuronTrainingExecutionMetadataSchema = ManagedModificationExecutionMetadataSchema.omit({method: true}).extend({method: Method}).strict();\nexport const ManagedNeuronTrainingExecutionContentSchema = ManagedNeuronTrainingExecutionMetadataSchema.extend({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecution.v1\"), request: NeuronTrainingRequestSchema,\n sourceForm: NeuronTrainingExperimentFormDraftSchema.optional(), result: NeuronTrainingResultSchema.nullable(),\n resultRecordedAt: z.iso.datetime().nullable(),\n}).strict();\nexport const ManagedNeuronTrainingExecutionSchema = ManagedNeuronTrainingExecutionContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecution = z.infer<typeof ManagedNeuronTrainingExecutionSchema>;\nexport const ManagedNeuronTrainingExecutionReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecutionReceipt.v1\"), operationId: Id, requestHash: Hash,\n execution: ManagedNeuronTrainingExecutionMetadataSchema,\n}).strict();\nexport const ManagedNeuronTrainingExecutionReceiptSchema = ManagedNeuronTrainingExecutionReceiptContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecutionReceipt = z.infer<typeof ManagedNeuronTrainingExecutionReceiptSchema>;\nexport const ManagedNeuronTrainingExecutionListQuerySchema = z.object({\n method: Method.default(\"selective_neuron_training\"), id: Id.optional(), projectId: Id.optional(),\n phase: ManagedNeuronTrainingExecutionMetadataSchema.shape.phase.optional(),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport type ManagedNeuronTrainingExecutionListQuery = z.input<typeof ManagedNeuronTrainingExecutionListQuerySchema>;\nexport const ManagedNeuronTrainingExecutionSummarySchema = ManagedNeuronTrainingExecutionMetadataSchema.extend({model: NeuronSteeringModelSchema}).strict();\nexport const ManagedNeuronTrainingExecutionPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.managedNeuronTrainingExecutionPage.v1\"), teamId: Id, ownerUserId: Id,\n query: ManagedNeuronTrainingExecutionListQuerySchema, items: z.array(ManagedNeuronTrainingExecutionSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const ManagedNeuronTrainingExecutionPageSchema = ManagedNeuronTrainingExecutionPageContentSchema.extend({contentHash: Hash});\nexport type ManagedNeuronTrainingExecutionPage = z.infer<typeof ManagedNeuronTrainingExecutionPageSchema>;\n\nexport function parseNeuronTrainingFormTraining(raw: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>[\"training\"]) {\n const fields = Object.entries(raw).map(([key, value]) => {\n if (!value.trim()) throw new OpenPondProtocolError(\"neuron_training_training_settings_missing\", \"Complete each NeuronTraining training setting before preparing.\");\n return [key, Number(value)] as const;\n });\n return NeuronTrainingSettingsSchema.parse(Object.fromEntries(fields));\n}\nfunction fail(): never {\n throw new OpenPondProtocolError(\"neuron_training_execution_mismatch\", \"The NeuronTraining operation differs from its exact model, data, settings or original approval.\");\n}\nfunction checkSource(query: z.infer<typeof Query>, request: Pick<z.infer<typeof NeuronTrainingRequestSchema>, \"model\">) {\n if (query.source !== \"managed\" || query.modelAssetId !== undefined || !query.revision || !query.tokenizerRevision\n || query.modelId !== request.model.modelId || query.revision !== request.model.revision) fail();\n}\nexport function parseNeuronTrainingFormSelection(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>[\"selection\"]) {\n if (![form.count, form.maximumBackgroundTargetRatio, form.gradientExamples].every(value => value.trim()))\n throw new OpenPondProtocolError(\"neuron_training_selection_missing\", \"Complete the neuron selection settings.\");\n const lines = form.coordinates.trim() ? form.coordinates.trim().split(/\\r?\\n/) : null;\n if (lines?.some(line => !/^\\s*\\d+\\s*:\\s*\\d+\\s*$/.test(line)))\n throw new OpenPondProtocolError(\"neuron_training_coordinates_invalid\", \"Enter one layer:neuron coordinate per line.\");\n const explicitCoordinates = lines?.map(line => {const [layer, neuron] = line.split(\":\").map(Number); return {layer, neuron};}) ?? null;\n return NeuronTrainingSelectionSchema.parse({count: Number(form.count), span: form.span,\n backgroundStatistic: form.backgroundStatistic, maximumBackgroundTargetRatio: Number(form.maximumBackgroundTargetRatio),\n gradientExamples: Number(form.gradientExamples), explicitCoordinates});\n}\nasync function checkForm(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>, request: z.infer<typeof NeuronTrainingRequestSchema>) {\n if (!form.baseModel || form.baseModel.modelId !== request.model.modelId || form.baseModel.revision !== request.model.revision\n || canonicalJson(form.targetBatch) !== canonicalJson(request.data.target.batch)\n || canonicalJson(form.background.map(row => ({domain: row.domain.trim(), batch: row.batch})))\n !== canonicalJson(request.data.background.map(row => ({domain: row.domain, batch: row.batch})))\n || canonicalJson(form.preservationBatch) !== canonicalJson(request.data.preservation?.batch ?? null)\n || canonicalJson(parseNeuronTrainingFormSelection(form.selection)) !== canonicalJson(request.selection)\n || canonicalJson(parseNeuronTrainingFormTraining(form.training)) !== canonicalJson(request.training)) fail();\n if (form.inspectionSource && (!request.selection.explicitCoordinates\n || form.inspectionSource.modelHash !== await canonicalSha256(request.model))) fail();\n}\nfunction checkFormQuery(form: z.infer<typeof NeuronTrainingExperimentFormDraftSchema>, query: z.infer<typeof Query>) {\n const base = {schemaVersion: \"openpond.baseModelPreference.v1\", modelId: query.modelId, source: query.source,\n revision: query.revision ?? null, tokenizerRevision: query.tokenizerRevision ?? null,\n chatTemplateHash: query.chatTemplateHash ?? null, modelAssetId: query.modelAssetId ?? null};\n if (canonicalJson(form.baseModel) !== canonicalJson(base)) fail();\n}\nexport async function parseAndVerifyNeuronTrainingExecutionCapability(raw: unknown, queryInput: z.infer<typeof Query>, actorId?: string) {\n const query = Query.parse(queryInput), value = NeuronTrainingExecutionCapabilitySchema.parse(raw), {contentHash, ...content} = value;\n assertModelModificationValidationLevel(value.execution, value.validationLevel);\n const checked = Date.parse(value.checkedAt), expires = Date.parse(value.expiresAt);\n if (value.teamId !== query.teamId || actorId !== undefined && value.actorId !== actorId\n || canonicalJson(value.query) !== canonicalJson(query) || value.requestHash !== await canonicalSha256(query)\n || contentHash !== await canonicalSha256(content) || checked > Date.now() + 30_000\n || expires <= Date.now() || expires <= checked || expires - checked > 300_000) fail();\n if (value.execution.state === \"ready\") checkSource(query, {model: value.execution.model});\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingCompilation(raw: unknown, input: ManagedNeuronTrainingCompile) {\n const command = ManagedNeuronTrainingCompileSchema.parse(input), value = ManagedNeuronTrainingCompilationSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(value.request);\n checkSource(command.query, request); await checkForm(command.form, request); checkFormQuery(command.form, command.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== command.teamId || command.query.teamId !== command.teamId\n || value.projectId !== command.projectId || canonicalJson(value.query) !== canonicalJson(command.query)\n || value.formHash !== await canonicalSha256(command.form) || value.inputHash !== await canonicalSha256(request)) fail();\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingExecution(raw: unknown, expected: {teamId: string; id: string; ownerUserId?: string}) {\n const value = ManagedNeuronTrainingExecutionSchema.parse(raw), {contentHash, ...content} = value;\n const request = await parseAndVerifyNeuronTrainingRequest(value.request);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.id !== expected.id\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || value.plan.inputHash !== await canonicalSha256(request)\n || value.result === null && value.resultRecordedAt !== null || value.result !== null && value.resultRecordedAt === null) fail();\n if (value.sourceForm) await checkForm(value.sourceForm, request);\n if (value.result) await parseAndVerifyNeuronTrainingResult(value.result, {request, runtimeHash: value.plan.runtimeHash});\n return value;\n}\nexport async function parseAndVerifyManagedNeuronTrainingPrepare(raw: unknown) {\n const request = ManagedNeuronTrainingPrepareSchema.parse(raw);\n request.maximumSpendUsd = canonicalComputeSpendCap(request.maximumSpendUsd);\n await parseAndVerifyNeuronTrainingRequest(request.request);\n checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId) fail();\n if (request.sourceForm) {\n await checkForm(request.sourceForm, request.request); checkFormQuery(request.sourceForm, request.query);\n if (canonicalComputeSpendCap(request.sourceForm.maximumSpendUsd) !== request.maximumSpendUsd) fail();\n }\n return request;\n}\nexport async function parseAndVerifyManagedNeuronTrainingExecutionReceipt(raw: unknown, command: ManagedNeuronTrainingPrepare | ManagedNeuronTrainingStart | ManagedNeuronTrainingCancel) {\n const request = \"action\" in command ? parseManagedModificationControl(command) : await parseAndVerifyManagedNeuronTrainingPrepare(command);\n const value = ManagedNeuronTrainingExecutionReceiptSchema.parse(raw), {contentHash, ...content} = value;\n if (contentHash !== await canonicalSha256(content) || value.operationId !== request.operationId\n || value.requestHash !== await canonicalSha256(\"action\" in request ? request : {action: \"prepare\", command: request})\n || value.execution.teamId !== request.teamId\n || Date.parse(value.execution.plan.expiresAt) <= Date.parse(value.execution.plan.createdAt)\n || value.execution.plan.maximumSpendUsd !== canonicalComputeSpendCap(value.execution.plan.maximumSpendUsd)) fail();\n if (\"action\" in request) {\n if (value.execution.id !== request.id || value.execution.plan.contentHash !== request.planHash\n || value.execution.revision !== request.expectedRevision + 1\n || (request.action === \"start\" ? value.execution.phase !== \"queued\" || value.execution.plan.maximumSpendUsd !== request.approvedMaximumSpendUsd || !await managedModificationPriceApprovalMatches(value.execution.plan,request)\n : ![\"cancelled\", \"stopping\"].includes(value.execution.phase))) fail();\n } else {\n await parseAndVerifyNeuronTrainingRequest(request.request); checkSource(request.query, request.request);\n if (request.query.teamId !== request.teamId || value.execution.projectId !== request.projectId || value.execution.name !== request.name\n || value.execution.plan.inputHash !== await canonicalSha256(request.request)\n || value.execution.plan.maximumSpendUsd !== request.maximumSpendUsd\n || value.execution.phase !== \"prepared\" || value.execution.revision !== 1\n || value.execution.id !== `modification-${await canonicalSha256({teamId: request.teamId, ownerUserId: value.execution.ownerUserId, operationId: request.operationId})}`) fail();\n if (request.sourceForm) await checkForm(request.sourceForm, request.request);\n }\n return value;\n}\n\n/** Optional undefined properties are omission at the query boundary. Keep\n * canonical JSON strict, and retain schema defaults/validation for all values. */\nfunction parseExecutionListQuery(raw: ManagedNeuronTrainingExecutionListQuery = {}) {\n const query = ManagedNeuronTrainingExecutionListQuerySchema.parse(raw);\n return ManagedNeuronTrainingExecutionListQuerySchema.parse(Object.fromEntries(\n Object.entries(query).filter(([, value]) => value !== undefined),\n ));\n}\n\nexport async function parseAndVerifyManagedNeuronTrainingExecutionPage(raw: unknown, expected: {\n teamId: string; ownerUserId?: string; query?: ManagedNeuronTrainingExecutionListQuery;\n}) {\n const value = ManagedNeuronTrainingExecutionPageSchema.parse(raw), {contentHash, ...content} = value;\n const query = parseExecutionListQuery(expected.query);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || expected.ownerUserId !== undefined && value.ownerUserId !== expected.ownerUserId\n || canonicalJson(value.query) !== canonicalJson(query) || value.items.length > query.limit\n || new Set(value.items.map(item => item.id)).size !== value.items.length) fail();\n for (const item of value.items) {\n if (item.teamId !== value.teamId || item.ownerUserId !== value.ownerUserId\n || query.id !== undefined && item.id !== query.id\n || query.projectId !== undefined && item.projectId !== query.projectId\n || query.phase !== undefined && item.phase !== query.phase\n || item.plan.maximumSpendUsd !== canonicalComputeSpendCap(item.plan.maximumSpendUsd)\n || Date.parse(item.plan.expiresAt) <= Date.parse(item.plan.createdAt)) fail();\n }\n return value;\n}\n\nfunction params(value: Record<string, unknown>) {\n const result = new URLSearchParams();\n for (const [key, item] of Object.entries(value)) if (item !== undefined) result.set(key, String(item));\n return result;\n}\n/** Uses the same configured transport and existing execution endpoints. Typed\n * NeuronTraining parsing never coerces a module into an activation or LoRA result. */\nexport function createManagedNeuronTrainingExecutionClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const root = \"/v1/training/modification-executions\";\n return {\n async neuronTrainingExecutionCapability(raw: z.infer<typeof Query>, options?: {signal?: AbortSignal}) {\n const query = Query.parse(raw);\n return parseAndVerifyNeuronTrainingExecutionCapability(await request(`/v1/training/modification-capabilities/neuron-training?${params(query)}`, options), query);\n },\n async compileNeuronTrainingExecution(raw: ManagedNeuronTrainingCompile) {\n const command = ManagedNeuronTrainingCompileSchema.parse(raw);\n return parseAndVerifyManagedNeuronTrainingCompilation(await request(`${root}/compile`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async prepareNeuronTrainingExecution(raw: ManagedNeuronTrainingPrepare) {\n const command = await parseAndVerifyManagedNeuronTrainingPrepare(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/prepare`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async startNeuronTrainingExecution(raw: ManagedNeuronTrainingStart) {\n const command = parseManagedModificationControl(ManagedNeuronTrainingStartSchema.parse(raw));\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/start`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async cancelNeuronTrainingExecution(raw: ManagedNeuronTrainingCancel) {\n const command = ManagedNeuronTrainingCancelSchema.parse(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionReceipt(await request(`${root}/${encodeURIComponent(command.id)}/cancel`, {method: \"POST\", body: canonicalJson(command)}), command);\n },\n async getNeuronTrainingExecution(teamId: string, id: string, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const scope = {teamId: Id.parse(teamId), id: Id.parse(id), ownerUserId: options?.ownerUserId};\n return parseAndVerifyManagedNeuronTrainingExecution(await request(`${root}/${encodeURIComponent(scope.id)}?${params({teamId: scope.teamId})}`, {signal: options?.signal}), scope);\n },\n async listNeuronTrainingExecutions(teamId: string, raw: ManagedNeuronTrainingExecutionListQuery = {}, options?: {signal?: AbortSignal; ownerUserId?: string}) {\n const team = Id.parse(teamId), query = parseExecutionListQuery(raw);\n return parseAndVerifyManagedNeuronTrainingExecutionPage(await request(`${root}?${params({teamId: team, ...query})}`, {signal: options?.signal}), {teamId: team, query, ownerUserId: options?.ownerUserId});\n },\n };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { AlphaEditModelVersionSchema, parseAndVerifyAlphaEditModelVersion } from \"./weight-model-versions.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { WeightModelInferenceReceiptSchema, parseAndVerifyResolvedWeightModelSelection } from \"./weight-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const AlphaEditModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const AlphaEditModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type AlphaEditModelServingControlRequest = z.infer<typeof AlphaEditModelServingControlRequestSchema>;\nexport const AlphaEditModelServingControlIntentSchema = AlphaEditModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const AlphaEditModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: AlphaEditModelServingControlRequestSchema }).strict();\nexport const AlphaEditModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type AlphaEditModelServingControl = z.infer<typeof AlphaEditModelServingControlSchema>;\nexport const AlphaEditServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const AlphaEditServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const AlphaEditModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.alphaEditModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: AlphaEditModelVersionSchema,\n availability: AlphaEditServingAvailabilitySchema,\n control: AlphaEditModelServingControlSchema.nullable(), cleanup: z.array(AlphaEditModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(AlphaEditServingBindingSchema).max(100),\n lastVerifiedInference: WeightModelInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const AlphaEditModelServingSchema = AlphaEditModelServingContentSchema.extend({ contentHash: Hash });\nexport type AlphaEditModelServing = z.infer<typeof AlphaEditModelServingSchema>;\nexport const AlphaEditModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.alphaEditModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: AlphaEditModelServingControlRequestSchema, version: AlphaEditModelVersionSchema, control: AlphaEditModelServingControlSchema,\n}).strict();\nexport const AlphaEditModelServingControlReceiptSchema = AlphaEditModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type AlphaEditModelServingControlReceipt = z.infer<typeof AlphaEditModelServingControlReceiptSchema>;\n\nfunction validControl(value: AlphaEditModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function alphaEditModelServingState(value: Pick<AlphaEditModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): AlphaEditModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyAlphaEditModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: AlphaEditModelServingControlRequest; actorId?: string;\n}) {\n const value = AlphaEditModelServingControlReceiptSchema.parse(raw), request = AlphaEditModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyAlphaEditModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"alphaedit_serving_control_mismatch\", \"The serving receipt differs from the exact AlphaEdit Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyAlphaEditModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = AlphaEditModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"alphaedit\" }, value.control);\n await parseAndVerifyAlphaEditModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"alphaedit_model_serving_mismatch\", \"The serving evidence differs from the exact AlphaEdit Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== alphaEditModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n await parseAndVerifyResolvedWeightModelSelection(inference.selection, value.version);\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createAlphaEditModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async alphaEditModelServing(modelProjectId: string, raw: z.infer<typeof AlphaEditModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = AlphaEditModelServingQuerySchema.parse(raw);\n return parseAndVerifyAlphaEditModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlAlphaEditModelServing(modelProjectId: string, raw: AlphaEditModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = AlphaEditModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyAlphaEditModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion,\n type AlphaEditModelVersion, type NeuronTrainingModelVersion } from \"./weight-model-versions.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const SavedWeightModelSelectionSchema = z.object({modelProjectId: Id, versionHash: Hash}).strict();\nexport const ResolvedWeightModelSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedWeightModelSelection.v1\"),\n method: z.enum([\"alphaedit\", \"selective_neuron_training\"]), savedModel: SavedWeightModelSelectionSchema,\n artifact: z.object({id: Id, contentHash: Hash, manifestSha256: Hash}).strict(), modelHash: Hash,\n}).strict();\nexport type ResolvedWeightModelSelection = z.infer<typeof ResolvedWeightModelSelectionSchema>;\n\n/** A saved weight Model always selects its installed patch. Off/baseline\n * comparison is a separate exact source, never an implicit base substitution. */\nexport async function parseAndVerifyResolvedWeightModelSelection(raw: unknown, input: AlphaEditModelVersion | NeuronTrainingModelVersion) {\n const value = ResolvedWeightModelSelectionSchema.parse(raw);\n const version = input.schemaVersion === \"openpond.alphaEditModelVersion.v1\"\n ? await parseAndVerifyAlphaEditModelVersion(input) : await parseAndVerifyNeuronTrainingModelVersion(input);\n const method = version.schemaVersion === \"openpond.alphaEditModelVersion.v1\" ? \"alphaedit\" : \"selective_neuron_training\";\n if (value.method !== method || value.savedModel.modelProjectId !== version.modelProjectId\n || value.savedModel.versionHash !== version.contentHash || value.artifact.id !== version.artifact.id\n || value.artifact.contentHash !== version.artifact.contentHash\n || value.artifact.manifestSha256 !== await canonicalSha256(version.artifact.manifest)\n || value.modelHash !== await canonicalSha256(version.request.model))\n throw new OpenPondProtocolError(\"weight_model_selection_mismatch\", \"The admitted Model differs from its exact learned patch and base.\");\n return value;\n}\nexport const WeightModelInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.weightModelInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedWeightModelSelectionSchema,\n poolId: Id, routingBinding: z.object({id: Id, revision: z.number().int().positive()}).strict(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash, completedAt: z.iso.datetime(),\n}).strict();\nexport const WeightModelInferenceReceiptSchema = WeightModelInferenceReceiptContentSchema.extend({contentHash: Hash});\nexport type WeightModelInferenceReceipt = z.infer<typeof WeightModelInferenceReceiptSchema>;\nexport async function parseAndVerifyWeightModelInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; selection: ResolvedWeightModelSelection;\n version: AlphaEditModelVersion | NeuronTrainingModelVersion; poolId: string;\n routingBinding: {id: string; revision: number}; runtimeHash: string; workerImageDigest: string;\n engineGeneration: number; cacheNamespace: string;\n}) {\n const value = WeightModelInferenceReceiptSchema.parse(raw), {contentHash, ...content} = value;\n await parseAndVerifyResolvedWeightModelSelection(value.selection, expected.version);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId\n || value.requestId !== expected.requestId || value.requestHash !== expected.requestHash\n || canonicalJson(value.selection) !== canonicalJson(expected.selection) || value.poolId !== expected.poolId\n || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"weight_model_inference_mismatch\", \"The completed inference differs from its admitted Model, runtime or cache.\");\n return value;\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronTrainingModelVersionSchema, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { WeightModelInferenceReceiptSchema, parseAndVerifyResolvedWeightModelSelection } from \"./weight-inference.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const NeuronTrainingModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const NeuronTrainingModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type NeuronTrainingModelServingControlRequest = z.infer<typeof NeuronTrainingModelServingControlRequestSchema>;\nexport const NeuronTrainingModelServingControlIntentSchema = NeuronTrainingModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const NeuronTrainingModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: NeuronTrainingModelServingControlRequestSchema }).strict();\nexport const NeuronTrainingModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type NeuronTrainingModelServingControl = z.infer<typeof NeuronTrainingModelServingControlSchema>;\nexport const NeuronTrainingServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const NeuronTrainingServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const NeuronTrainingModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: NeuronTrainingModelVersionSchema,\n availability: NeuronTrainingServingAvailabilitySchema,\n control: NeuronTrainingModelServingControlSchema.nullable(), cleanup: z.array(NeuronTrainingModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(NeuronTrainingServingBindingSchema).max(100),\n lastVerifiedInference: WeightModelInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const NeuronTrainingModelServingSchema = NeuronTrainingModelServingContentSchema.extend({ contentHash: Hash });\nexport type NeuronTrainingModelServing = z.infer<typeof NeuronTrainingModelServingSchema>;\nexport const NeuronTrainingModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronTrainingModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: NeuronTrainingModelServingControlRequestSchema, version: NeuronTrainingModelVersionSchema, control: NeuronTrainingModelServingControlSchema,\n}).strict();\nexport const NeuronTrainingModelServingControlReceiptSchema = NeuronTrainingModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type NeuronTrainingModelServingControlReceipt = z.infer<typeof NeuronTrainingModelServingControlReceiptSchema>;\n\nfunction validControl(value: NeuronTrainingModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function neuronTrainingModelServingState(value: Pick<NeuronTrainingModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): NeuronTrainingModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyNeuronTrainingModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: NeuronTrainingModelServingControlRequest; actorId?: string;\n}) {\n const value = NeuronTrainingModelServingControlReceiptSchema.parse(raw), request = NeuronTrainingModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyNeuronTrainingModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"neuron_training_serving_control_mismatch\", \"The serving receipt differs from the exact neuron-training Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyNeuronTrainingModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = NeuronTrainingModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"selective_neuron_training\" }, value.control);\n await parseAndVerifyNeuronTrainingModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"neuron_training_model_serving_mismatch\", \"The serving evidence differs from the exact neuron-training Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.state !== neuronTrainingModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const {contentHash: hash, ...receipt} = inference;\n await parseAndVerifyResolvedWeightModelSelection(inference.selection, value.version);\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createNeuronTrainingModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async neuronTrainingModelServing(modelProjectId: string, raw: z.infer<typeof NeuronTrainingModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = NeuronTrainingModelServingQuerySchema.parse(raw);\n return parseAndVerifyNeuronTrainingModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlNeuronTrainingModelServing(modelProjectId: string, raw: NeuronTrainingModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = NeuronTrainingModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyNeuronTrainingModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion, type DecisionModelVersion } from \"./decision-model-version.js\";\nimport { DecisionScoringInputSchema, DecisionScoringRequestSchema, DecisionScoringResultSchema,\n parseAndVerifyDecisionScoringRequest, parseAndVerifyDecisionScoringResult } from \"./decision-model-data.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Binding = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const SavedDecisionModelSelectionSchema = z.object({ modelProjectId: Id, versionHash: Hash }).strict();\nexport const ResolvedDecisionSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedDecisionSelection.v1\"),\n savedModel: SavedDecisionModelSelectionSchema, modelHash: Hash,\n artifact: z.object({ id: Id, contentHash: Hash, payloadSha256: Hash }).strict(),\n}).strict();\nexport type ResolvedDecisionSelection = z.infer<typeof ResolvedDecisionSelectionSchema>;\n\n/** The exact version is required; omitted/current/latest versions and generic\n * chat completions cannot substitute for this typed candidate scorer. requestId\n * is retained for original-operation reconciliation after an ambiguous reply. */\nexport const DecisionModelScoreRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelScoreRequest.v1\"),\n teamId: Id, requestId: Id, versionHash: Hash,\n input: DecisionScoringInputSchema, limits: DecisionScoringRequestSchema.shape.limits,\n}).strict();\nexport type DecisionModelScoreRequest = z.infer<typeof DecisionModelScoreRequestSchema>;\nexport function parseDecisionModelScoreRequest(raw: unknown) {\n assertBoundedTaskJson(raw, 131_072);\n return DecisionModelScoreRequestSchema.parse(raw);\n}\nexport async function resolvedDecisionSelection(raw: DecisionModelVersion): Promise<ResolvedDecisionSelection> {\n const version = await parseAndVerifyDecisionModelVersion(raw);\n return ResolvedDecisionSelectionSchema.parse({\n schemaVersion: \"openpond.resolvedDecisionSelection.v1\",\n savedModel: { modelProjectId: version.modelProjectId, versionHash: version.contentHash },\n modelHash: await canonicalSha256(version.request.model),\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash,\n payloadSha256: version.artifact.manifest.payload.sha256 },\n });\n}\nexport async function parseAndVerifyResolvedDecisionSelection(raw: unknown, version: DecisionModelVersion) {\n const value = ResolvedDecisionSelectionSchema.parse(raw);\n if (canonicalJson(value) !== canonicalJson(await resolvedDecisionSelection(version)))\n throw new OpenPondProtocolError(\"decision_selection_mismatch\", \"The scorer selected a different exact decision Model or adapter.\");\n return value;\n}\n\nexport const DecisionModelScoreReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelScoreReceipt.v1\"),\n teamId: Id, actorId: Id, modelProjectId: Id, requestId: Id, requestHash: Hash,\n version: DecisionModelVersionSchema, selection: ResolvedDecisionSelectionSchema,\n result: DecisionScoringResultSchema,\n poolId: Id, routingBinding: Binding, runtimeHash: Hash,\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash,\n cleanupComplete: z.literal(true), completedAt: z.iso.datetime(),\n}).strict();\nexport const DecisionModelScoreReceiptSchema = DecisionModelScoreReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelScoreReceipt = z.infer<typeof DecisionModelScoreReceiptSchema>;\nexport type DecisionScoreAdmissionExpectation = {\n poolId: string; routingBinding: { id: string; revision: number };\n runtimeHash: string; workerImageDigest: string; engineGeneration?: number; cacheNamespace?: string;\n};\n\n/** Pool, engine generation and cache custody are server-attested receipt\n * values. Callers may additionally compare their independently retained\n * admission evidence; a self-consistent JSON hash alone is not worker proof.\n * The nested result separately binds the exact typed scoring input and checks\n * every finite candidate probability, rather than trusting generated JSON or\n * a partial vocabulary/logprob response. */\nexport async function parseAndVerifyDecisionModelScoreReceipt(raw: unknown, expected: {\n modelProjectId: string; request: DecisionModelScoreRequest; actorId?: string;\n admission?: DecisionScoreAdmissionExpectation;\n}) {\n assertBoundedTaskJson(raw, 1_048_576);\n const request = parseDecisionModelScoreRequest(expected.request);\n const value = DecisionModelScoreReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const version = await parseAndVerifyDecisionModelVersion(value.version, {\n teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId, versionHash: request.versionHash,\n });\n await parseAndVerifyResolvedDecisionSelection(value.selection, version);\n const scoringRequest = await parseAndVerifyDecisionScoringRequest({\n schemaVersion: \"openpond.decisionScoringRequest.v1\", model: version.request.model,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash }, input: request.input, limits: request.limits,\n });\n await parseAndVerifyDecisionScoringResult(value.result, { request: scoringRequest, runtimeHash: value.runtimeHash });\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_score_mismatch\", \"The completed score differs from the exact Model, original request or admitted runtime.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== request.teamId\n || value.modelProjectId !== expected.modelProjectId || value.requestId !== request.requestId\n || expected.actorId !== undefined && value.actorId !== expected.actorId\n || value.requestHash !== await canonicalSha256({ modelProjectId: expected.modelProjectId, request })) fail();\n const admission = expected.admission;\n if (admission && (value.poolId !== admission.poolId || canonicalJson(value.routingBinding) !== canonicalJson(admission.routingBinding)\n || value.runtimeHash !== admission.runtimeHash || value.workerImageDigest !== admission.workerImageDigest\n || admission.engineGeneration !== undefined && value.engineGeneration !== admission.engineGeneration\n || admission.cacheNamespace !== undefined && value.cacheNamespace !== admission.cacheNamespace)) fail();\n return value;\n}\nexport function createDecisionModelScoringClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async scoreDecisionModel(modelProjectId: string, raw: DecisionModelScoreRequest, options?: {\n signal?: AbortSignal; actorId?: string; admission?: DecisionScoreAdmissionExpectation;\n }) {\n const id = Id.parse(modelProjectId), body = parseDecisionModelScoreRequest(raw);\n return parseAndVerifyDecisionModelScoreReceipt(await request(`/v1/training/models/${encodeURIComponent(id)}/decisions`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId, admission: options?.admission });\n },\n };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { DecisionModelVersionSchema, parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nimport { DecisionModelScoreReceiptSchema, parseAndVerifyResolvedDecisionSelection } from \"./decision-model-scoring.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nexport const DecisionModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const DecisionModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type DecisionModelServingControlRequest = z.infer<typeof DecisionModelServingControlRequestSchema>;\nexport const DecisionModelServingControlIntentSchema = DecisionModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const DecisionModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: DecisionModelServingControlRequestSchema }).strict();\nexport const DecisionModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: z.string().trim().min(1).max(500), poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: z.iso.datetime(),\n}).strict();\nexport type DecisionModelServingControl = z.infer<typeof DecisionModelServingControlSchema>;\nexport const DecisionServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: z.string().trim().min(1).max(500), poolId: Id, versionHash: Hash,\n}).strict();\nexport const DecisionServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"artifact_unavailable\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const DecisionModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.decisionModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: z.iso.datetime(), version: DecisionModelVersionSchema,\n availability: DecisionServingAvailabilitySchema,\n control: DecisionModelServingControlSchema.nullable(), cleanup: z.array(DecisionModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(DecisionServingBindingSchema).max(100),\n lastVerifiedScore: DecisionModelScoreReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const DecisionModelServingSchema = DecisionModelServingContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelServing = z.infer<typeof DecisionModelServingSchema>;\nexport const DecisionModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.decisionModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id, actorId: Id,\n request: DecisionModelServingControlRequestSchema, version: DecisionModelVersionSchema, control: DecisionModelServingControlSchema,\n}).strict();\nexport const DecisionModelServingControlReceiptSchema = DecisionModelServingControlReceiptContentSchema.extend({ contentHash: Hash });\nexport type DecisionModelServingControlReceipt = z.infer<typeof DecisionModelServingControlReceiptSchema>;\n\nfunction validControl(value: DecisionModelServingControl) {\n return value.modelId === `decision:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n/** A routable exact-version binding is distinct from historical score evidence\n * or a still-shared pool. Stop cannot claim release while requests are unsettled. */\nexport function decisionModelServingState(value: Pick<DecisionModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): DecisionModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\nexport async function parseAndVerifyDecisionModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: DecisionModelServingControlRequest; actorId?: string;\n}) {\n const value = DecisionModelServingControlReceiptSchema.parse(raw), request = DecisionModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifyDecisionModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId,\n ownerUserId: value.actorId, versionHash: request.versionHash });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId !== undefined && value.actorId !== expected.actorId\n || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || !validControl(control) || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"decision_serving_control_mismatch\", \"The serving receipt differs from the exact decision Model or original control command.\");\n return value;\n}\nexport async function parseAndVerifyDecisionModelServing(raw: unknown, expected: {\n teamId: string; modelProjectId: string; versionHash: string; ownerUserId?: string;\n}) {\n const value = DecisionModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"decision\" }, value.control);\n await parseAndVerifyDecisionModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"decision_model_serving_mismatch\", \"The serving evidence differs from the exact decision Model or retained resource custody.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.state !== decisionModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])])\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `decision:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding) {\n const binding = control.binding;\n if (!value.bindings.some(row => row.id === binding.id && row.revision === binding.revision && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n }\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const score = value.lastVerifiedScore;\n if (score) {\n const { contentHash: receiptHash, ...receipt } = score, { contentHash: resultHash, ...result } = score.result;\n await parseAndVerifyResolvedDecisionSelection(score.selection, value.version);\n // This read checks retained receipt identity, not the unavailable original\n // raw state/questions. Full score verification requires that original command.\n if (receiptHash !== await canonicalSha256(receipt) || resultHash !== await canonicalSha256(result)\n || score.teamId !== expected.teamId || score.modelProjectId !== expected.modelProjectId\n || score.actorId !== value.version.ownerUserId || score.version.contentHash !== expected.versionHash\n || canonicalJson(score.version) !== canonicalJson(value.version)\n || score.result.modelHash !== await canonicalSha256(value.version.request.model)\n || score.result.runtimeHash !== score.runtimeHash\n || canonicalJson(score.result.artifact) !== canonicalJson({ id: value.version.artifact.id, contentHash: value.version.artifact.contentHash })\n || value.pools.some(pool => pool.id === score.poolId && pool.workerImageDigest !== score.workerImageDigest)) fail();\n }\n return value;\n}\nexport function createDecisionModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async decisionModelServing(modelProjectId: string, raw: z.infer<typeof DecisionModelServingQuerySchema>, options?: { signal?: AbortSignal; ownerUserId?: string }) {\n const id = Id.parse(modelProjectId), query = DecisionModelServingQuerySchema.parse(raw);\n return parseAndVerifyDecisionModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`, {\n signal: options?.signal,\n }), { modelProjectId: id, ...query, ownerUserId: options?.ownerUserId });\n },\n async controlDecisionModelServing(modelProjectId: string, raw: DecisionModelServingControlRequest, options?: { signal?: AbortSignal; actorId?: string }) {\n const id = Id.parse(modelProjectId), body = DecisionModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyDecisionModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: canonicalJson(body), signal: options?.signal,\n }), { modelProjectId: id, request: body, actorId: options?.actorId });\n },\n };\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { parseAndVerifyDecisionModelVersion } from \"./decision-model-version.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\n/** Names the exact saved classifier without exposing it as a generic chat\n * alias. Train and score are both authored through the same decision form. */\nexport async function experimentStartingModelFromDecisionVersion(raw: unknown, expected: {\n teamId?: string; ownerUserId?: string; label: string;\n}): Promise<Extract<ExperimentStartingModel, { source: \"decision\" }>> {\n const version = await parseAndVerifyDecisionModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({\n source: \"decision\", label: expected.label, inferenceModelId: null, baseModel: version.baseModel,\n decision: { modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: { id: version.artifact.id, contentHash: version.artifact.contentHash },\n modelHash: await canonicalSha256(version.request.model) },\n });\n if (source.source !== \"decision\") throw new OpenPondProtocolError(\"decision_experiment_source_mismatch\", \"Retain the exact saved decision Model.\");\n return source;\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { AlphaEditExperimentFormDraftSchema, type AlphaEditExperimentFormDraft } from \"./alphaedit-experiment-draft.js\";\nimport { parseAndVerifyAlphaEditModelVersion, parseAndVerifyNeuronTrainingModelVersion } from \"./weight-model-versions.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\ntype Scope = {teamId?: string; ownerUserId?: string};\nexport async function experimentStartingModelFromAlphaEditVersion(raw: unknown, expected: Scope & {label: string}): Promise<Extract<ExperimentStartingModel, {source: \"alphaedit\"}>> {\n const version = await parseAndVerifyAlphaEditModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"alphaedit\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, alphaedit: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n if (source.source !== \"alphaedit\") throw new OpenPondProtocolError(\"alphaedit_experiment_source_mismatch\", \"Retain the exact saved AlphaEdit Model.\");\n return source;\n}\n/** Continuation must reuse the parent's covariance/projector definition and\n * preservation evidence. A different edit batch and spend remain editable. */\nexport async function alphaEditFormFromModelVersion(form: AlphaEditExperimentFormDraft, raw: unknown, expected: Scope = {}): Promise<AlphaEditExperimentFormDraft> {\n const current = AlphaEditExperimentFormDraftSchema.parse(form), version = await parseAndVerifyAlphaEditModelVersion(raw, expected);\n return AlphaEditExperimentFormDraftSchema.parse({...current, baseModel: version.baseModel,\n preservationBatch: version.request.data.preservation.batch,\n config: {layers: version.request.config.layers.join(\", \"), lossLayer: String(version.request.config.lossLayer),\n contextTemplateGroups: JSON.stringify(version.request.config.contextTemplateGroups),\n nullspaceThreshold: String(version.request.config.nullspaceThreshold), l2: String(version.request.config.l2)},\n parentArtifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n startingModule: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n}\n/** Retains a trained patch for Model/serving selection. Training a new patch\n * from this source is explicitly rejected by experiment setup validation. */\nexport async function experimentStartingModelFromNeuronTrainingVersion(raw: unknown, expected: Scope & {label: string}): Promise<Extract<ExperimentStartingModel, {source: \"neuron_training\"}>> {\n const version = await parseAndVerifyNeuronTrainingModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"neuron_training\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, neuronTraining: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.request.model)}});\n if (source.source !== \"neuron_training\") throw new OpenPondProtocolError(\"neuron_training_experiment_source_mismatch\", \"Retain the exact saved neuron weights.\");\n return source;\n}\n","import { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { EngramExperimentFormDraftSchema, type EngramExperimentFormDraft } from \"./engram-experiment-draft.js\";\nimport { parseAndVerifyEngramModelVersion } from \"./engram-model-version.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nexport async function experimentStartingModelFromEngramVersion(raw: unknown, expected: {teamId?: string; label: string}): Promise<Extract<ExperimentStartingModel, {source: \"engram\"}>> {\n const version = await parseAndVerifyEngramModelVersion(raw, expected);\n const source = ExperimentStartingModelSchema.parse({source: \"engram\", label: expected.label, inferenceModelId: null,\n baseModel: version.baseModel, engram: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash}, modelHash: await canonicalSha256(version.artifact.manifest.pins.baseModel)}});\n if (source.source !== \"engram\") throw new OpenPondProtocolError(\"engram_experiment_source_mismatch\", \"Retain the exact saved memory module.\");\n return source;\n}\n/** Seeds the original learned module as the continuation parent, while keeping\n * the existing editable data, training settings, name and spend approval. */\nexport async function engramFormFromModelVersion(form: EngramExperimentFormDraft, raw: unknown, expected: {teamId?: string} = {}): Promise<EngramExperimentFormDraft> {\n const current = EngramExperimentFormDraftSchema.parse(form), version = await parseAndVerifyEngramModelVersion(raw, expected);\n return EngramExperimentFormDraftSchema.parse({...current, baseModel: version.baseModel,\n parentArtifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n startingModule: {modelProjectId: version.modelProjectId, versionHash: version.contentHash,\n artifact: {id: version.artifact.id, contentHash: version.artifact.contentHash},\n modelHash: await canonicalSha256(version.artifact.manifest.pins.baseModel)}});\n}\n","import { z } from \"zod\";\nimport { TrainingJobSchema } from \"./training-job-contracts.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\n/** Read-only collection metadata. Job identity/state remain owned by training;\n * this projection contains no training examples, input bundles or artifacts. */\nexport const TrainingExecutionSummarySchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionSummary.v1\"),\n job: z.lazy(() => TrainingJobSchema),\n name: z.string().min(1).max(500),\n method: z.enum([\"sft\", \"grpo\", \"reward_model_train\"]).nullable(),\n model: z.object({ modelId: Id, revision: Id.nullable() }).strict().nullable(),\n dataset: ModelProjectVersionedRefSchema.nullable(),\n startedAt: z.iso.datetime().nullable(),\n })\n .strict();\nexport const TrainingExecutionListQuerySchema = z\n .object({\n projectId: Id.optional(),\n datasetHash: z\n .string()\n .regex(/^[a-f0-9]{64}$/)\n .optional(),\n search: z.string().trim().max(1_000).optional(),\n cursor: z.string().trim().min(1).max(2_000).optional(),\n limit: z.number().int().min(1).max(100).default(30),\n })\n .strict();\nexport const TrainingExecutionPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionPage.v1\"),\n teamId: Id,\n projectId: Id.nullable(),\n items: z.array(TrainingExecutionSummarySchema).max(100),\n nextCursor: z.string().trim().min(1).max(2_000).nullable(),\n })\n .strict();\nexport type TrainingExecutionSummary = z.infer<typeof TrainingExecutionSummarySchema>;\nexport type TrainingExecutionPage = z.infer<typeof TrainingExecutionPageSchema>;\nexport type TrainingExecutionListQuery = z.input<typeof TrainingExecutionListQuerySchema>;\nexport function createTrainingExecutionClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n return {\n async listExecutions(\n teamId: string,\n input: TrainingExecutionListQuery = {},\n ): Promise<TrainingExecutionPage> {\n const scope = Id.parse(teamId),\n query = TrainingExecutionListQuerySchema.parse(input);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = TrainingExecutionPageSchema.parse(\n await request(`/v1/training/executions?${params}`),\n );\n if (\n page.teamId !== scope ||\n page.projectId !== (query.projectId ?? null) ||\n page.items.length > query.limit ||\n new Set(page.items.map((item) => item.job.id)).size !== page.items.length ||\n (query.cursor && page.nextCursor === query.cursor) ||\n page.items.some(\n (item) =>\n item.job.teamId !== scope ||\n (query.datasetHash && item.dataset?.contentHash !== query.datasetHash),\n )\n )\n throw new OpenPondProtocolError(\n \"training_execution_page_mismatch\",\n \"Training history returned a different scope or input selection.\",\n );\n return page;\n },\n };\n}\n","import { z } from \"zod\";\nimport { assertAcceptanceGroupSnapshot, AcceptanceGroupSnapshotSchema } from \"@openpond/evals/learning\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nexport const TrainingAcceptanceGroupReferenceSchema = ModelProjectImmutableRefSchema.extend({ revision: z.number().int().positive() }).strict();\nexport const TrainingAcceptanceGroupSummarySchema = TrainingAcceptanceGroupReferenceSchema.extend({\n teamId: Id, jobId: Id,\n plan: ModelProjectImmutableRefSchema,\n baseline: ModelProjectImmutableRefSchema,\n candidate: ModelProjectImmutableRefSchema,\n state: AcceptanceGroupSnapshotSchema.shape.state,\n updatedAt: z.string().datetime(),\n}).strict();\nexport const TrainingAcceptanceGroupPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingAcceptanceGroupPage.v1\"),\n teamId: Id, jobId: Id, groups: z.array(TrainingAcceptanceGroupSummarySchema).max(100), nextCursor: Id.nullable(),\n}).strict();\nexport const TrainingAcceptanceGroupQuerySchema = z.object({\n cursor: Id.optional(), limit: z.number().int().min(1).max(100).default(25),\n}).strict();\nexport type TrainingAcceptanceGroupReference = z.infer<typeof TrainingAcceptanceGroupReferenceSchema>;\nexport type TrainingAcceptanceGroupSummary = z.infer<typeof TrainingAcceptanceGroupSummarySchema>;\nexport type TrainingAcceptanceGroupPage = z.infer<typeof TrainingAcceptanceGroupPageSchema>;\nexport type TrainingAcceptanceGroupQuery = z.input<typeof TrainingAcceptanceGroupQuerySchema>;\nexport type TrainingAcceptanceTarget = { teamId: string; jobId: string };\n\n/** Read retained evidence. These operations do not create, retry or dispatch checks. */\nexport function createTrainingAcceptanceClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const route = (target: TrainingAcceptanceTarget) => {\n Id.parse(target.teamId);\n return `/v1/training/jobs/${encodeURIComponent(Id.parse(target.jobId))}/acceptance-groups`;\n };\n return {\n async acceptanceGroups(target: TrainingAcceptanceTarget, input: TrainingAcceptanceGroupQuery = {}) {\n const query = TrainingAcceptanceGroupQuerySchema.parse(input);\n const params = new URLSearchParams({ limit: String(query.limit) });\n if (query.cursor) params.set(\"cursor\", query.cursor);\n const page = TrainingAcceptanceGroupPageSchema.parse(await request(`${route(target)}?${params}`));\n if (page.teamId !== target.teamId || page.jobId !== target.jobId || page.groups.length > query.limit ||\n page.groups.some(group => group.teamId !== target.teamId || group.jobId !== target.jobId || (query.cursor && group.id <= query.cursor)) ||\n new Set(page.groups.map(group => group.id)).size !== page.groups.length ||\n (page.nextCursor !== null && page.nextCursor !== page.groups.at(-1)?.id))\n throw new OpenPondProtocolError(\"acceptance_group_scope_mismatch\", \"Acceptance groups do not match the requested workspace, job or cursor.\");\n return page;\n },\n async acceptanceGroup(target: TrainingAcceptanceTarget, groupId: string, expected?: TrainingAcceptanceGroupReference) {\n const reference = expected ? TrainingAcceptanceGroupReferenceSchema.parse({ id: expected.id, revision: expected.revision, contentHash: expected.contentHash }) : null;\n if (reference && reference.id !== groupId) throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"The retained group reference differs from the requested group.\");\n const suffix = reference ? `?revision=${reference.revision}` : \"\";\n const snapshot = assertAcceptanceGroupSnapshot(await request(`${route(target)}/${encodeURIComponent(Id.parse(groupId))}${suffix}`));\n if (snapshot.manifest.teamId !== target.teamId || snapshot.manifest.trainingJob.id !== target.jobId || snapshot.manifest.id !== groupId ||\n (reference && (snapshot.revision !== reference.revision || snapshot.contentHash !== reference.contentHash)))\n throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"Acceptance evidence does not match the requested workspace, job or retained revision.\");\n return snapshot;\n },\n };\n}\n","export * from \"./training-usage-funding.js\";\nexport * from \"./managed-serving-usage.js\";\nexport * from \"./managed-compute-price.js\";\nimport { createEngramModelServingClient } from \"./engram-model-serving.js\";\nexport * from \"./engram-model-serving.js\";\nimport { createSteeringProfileClient } from \"./steering-profile-publication.js\";\nexport * from \"./steering-profile-publication.js\";\nimport { createExperimentDraftClient } from \"./experiment-draft-storage.js\";\nimport { createManagedModificationExecutionClient } from \"./managed-modification-executions.js\";\nimport { createManagedEngramExecutionClient } from \"./managed-engram-executions.js\";\nimport { createManagedDecisionExecutionClient } from \"./managed-decision-executions.js\";\nimport { createManagedAlphaEditExecutionClient } from \"./managed-alphaedit-executions.js\";\nimport { createManagedNeuronTrainingExecutionClient } from \"./managed-neuron-training-executions.js\";\nimport { createWeightModelClient } from \"./weight-model-versions.js\";\nimport { createAlphaEditModelServingClient } from \"./alphaedit-model-serving.js\";\nimport { createNeuronTrainingModelServingClient } from \"./neuron-training-model-serving.js\";\nimport { createDecisionModelClient } from \"./decision-model-version.js\";\nimport { createDecisionModelScoringClient } from \"./decision-model-scoring.js\";\nimport { createDecisionModelServingClient } from \"./decision-model-serving.js\";\nimport { createEngramModelClient } from \"./engram-model-version.js\";\nexport * from \"./managed-engram-executions.js\";\nexport * from \"./decision-model.js\";\nexport * from \"./decision-model-data.js\";\nexport * from \"./decision-model-artifact.js\";\nexport * from \"./decision-model-training.js\";\nexport * from \"./decision-experiment-draft.js\";\nexport * from \"./decision-experiment-authoring.js\";\nexport * from \"./managed-decision-executions.js\";\nexport * from \"./decision-model-version.js\";\nexport * from \"./decision-model-scoring.js\";\nexport * from \"./decision-model-serving.js\";\nexport * from \"./alphaedit.js\";\nexport * from \"./alphaedit-artifact.js\";\nexport * from \"./alphaedit-experiment-draft.js\";\nexport * from \"./managed-alphaedit-executions.js\";\nexport * from \"./neuron-training.js\";\nexport * from \"./neuron-training-artifact.js\";\nexport * from \"./neuron-training-result.js\";\nexport * from \"./neuron-training-experiment-draft.js\";\nexport * from \"./managed-neuron-training-executions.js\";\nexport * from \"./weight-model-versions.js\";\nexport * from \"./weight-experiment-authoring.js\";\nexport * from \"./weight-inference.js\";\nexport * from \"./alphaedit-model-serving.js\";\nexport * from \"./neuron-training-model-serving.js\";\nexport * from \"./engram-inference.js\";\nexport * from \"./engram-model-version.js\";\nexport * from \"./engram-experiment-authoring.js\";\nexport * from \"./experiment-draft-storage.js\";\nimport { createTrainingExecutionClient } from \"./training-executions.js\";\nexport { TrainingExecutionSummarySchema, TrainingExecutionPageSchema, TrainingExecutionListQuerySchema, type TrainingExecutionSummary, type TrainingExecutionPage, type TrainingExecutionListQuery } from \"./training-executions.js\";\nimport { createTrainingRequest } from \"./training-transport.js\";\nexport { SftRecipeSchema, ManagedSftRecipeSchema, TrainingSftImageCapabilitiesSchema,\n supportsTrainingSftRecipe, type SftRecipe, type TrainingSftImageCapabilities } from \"./training-supervised.js\";\nexport { TrainingApiErrorSchema, OpenPondTrainingApiError } from \"./training-transport.js\";\nimport { createTrainingAcceptanceClient } from \"./training-acceptance.js\";\nimport { createTrainingHardwareClient } from \"./training-hardware.js\";\nexport { HardwareObservationSchema, HardwareFleetSnapshotSchema,\n HardwareAvailabilitySchema, HardwareGpuObservationSchema,\n type HardwareObservation, type HardwareFleetSnapshot, type HardwareObservationQuery } from \"./training-hardware.js\";\nimport { createPostTrainingClient } from \"./post-training.js\";\nexport {\n TrainingAcceptanceGroupReferenceSchema,\n TrainingAcceptanceGroupSummarySchema,\n TrainingAcceptanceGroupPageSchema,\n TrainingAcceptanceGroupQuerySchema,\n type TrainingAcceptanceGroupReference,\n type TrainingAcceptanceGroupSummary,\n type TrainingAcceptanceGroupPage,\n type TrainingAcceptanceGroupQuery,\n type TrainingAcceptanceTarget,\n} from \"./training-acceptance.js\";\nimport { z } from \"zod\";\nimport { TrainingCheckpointRecoveryRequestSchema } from \"./training-recovery.js\";\nexport { TrainingCheckpointRecoveryRequestSchema, TrainingCheckpointRecoveryResourceApprovalSchema,\n createTrainingCheckpointRecoveryResourceApproval } from \"./training-recovery.js\";\nexport { TrainingPhysicalPlacementSchema, type TrainingPhysicalPlacement } from \"./training-physical-placement.js\";\nimport { createTrainingPreparationClient } from \"./training-preparations.js\";\nimport { createTrainingExperimentLearningClient } from \"./training-experiment-learning.js\";\nexport * from \"./training-experiment-learning.js\";\nimport { createTrainingExperimentSetupClient } from \"./training-experiment-setup.js\";\nexport {\n TrainingExperimentSetupRequestSchema, TrainingExperimentSetupReceiptSchema,\n TrainingExperimentInputsPageSchema, type TrainingExperimentInputsPage,\n parseAndVerifyTrainingExperimentSetupReceipt, trainingExperimentConfigurationIdentity,\n type TrainingExperimentSetupRequest, type TrainingExperimentSetupReceipt,\n} from \"./training-experiment-setup.js\";\nimport { createTrainingEstimateClient } from \"./training-estimates.js\";\nimport { createTrainingFundingClient } from \"./training-funding.js\";\nexport * from \"./training-funding.js\";\nimport { createDatasetTrainingReviewClient } from \"./dataset-training-review.js\";\nimport { createTrainingResultClient } from \"./training-result.js\";\nimport { createTrainingModelSaveClient } from \"./training-model-save.js\";\nimport { createTrainingModelServingClient } from \"./training-model-serving.js\";\nexport * from \"./training-model-serving.js\";\nimport { createTrainingModelServingControlClient } from \"./training-model-serving-control.js\";\nexport * from \"./training-model-serving-control.js\";\nimport { createSavedModelServingClient } from \"./steering-model-serving.js\";\nexport * from \"./steering-model-serving.js\";\nexport * from \"./steering-inference.js\";\nexport * from \"./neuron-residual-calibration.js\";\nimport { createNeuronCalibrationClient } from \"./neuron-calibration-records.js\";\nexport * from \"./neuron-calibration-records.js\";\nexport * from \"./neuron-steering.js\";\nexport * from \"./activation-result-comparison.js\";\nexport * from \"./activation-reference.js\";\nexport * from \"./engram-adapter.js\";\nexport * from \"./engram-experiment-draft.js\";\nimport { createModelModificationCapabilitiesClient } from \"./model-modification-capabilities.js\";\nexport * from \"./model-modification-capabilities.js\";\nimport { createModificationRecordingsClient } from \"./modification-recordings.js\";\nexport * from \"./modification-recordings.js\";\nexport * from \"./training-model-save.js\";\nexport * from \"./training-result.js\";\nexport * from \"./experiment-result-reference.js\";\nexport * from \"./dataset-training-review.js\";\nimport { createTrainingGpuCatalogClient } from \"./training-compute-selection.js\";\nimport { createTrainingHardwareCatalogClient } from \"./training-hardware-catalog.js\";\nexport * from \"./training-hardware-catalog.js\";\nexport { TrainingGpuCatalogSchema, TrainingGpuCatalogQuerySchema, TrainingGpuCatalogScopeSchema,\n parseAndVerifyTrainingGpuCatalog, type TrainingGpuCatalog, type TrainingGpuCatalogQuery, type TrainingGpuCatalogScope } from \"./training-compute-selection.js\";\nexport { TrainingQueueStatusSchema, type TrainingQueueStatus } from \"./training-queue.js\";\nexport {\n TrainingGpuSelectionSchema,\n TrainingEstimateSourceSchema,\n TrainingEstimateRequestSchema,\n TrainingEstimateComponentSchema,\n TrainingEstimateReviewSchema,\n TrainingEstimateSchema,\n TrainingEstimateWorkloadSchema,\n trainingEstimateSourceIdentity,\n type TrainingGpuSelection,\n type TrainingEstimateRequest,\n type TrainingEstimate,\n type TrainingEstimateWorkload,\n type TrainingEstimateReview,\n} from \"./training-estimates.js\";\nexport {\n TrainingPreparationParentSchema,\n type TrainingPreparationParent,\n TrainingPreparationRequestSchema,\n TrainingPreparationPlanContentSchema,\n TrainingPreparationPlanSchema,\n TrainingPreparationReceiptSchema,\n TrainingPreparationControlSchema,\n parseAndVerifyTrainingPreparationReceipt,\n type TrainingPreparationRequest,\n type TrainingPreparationPlan,\n type TrainingPreparationReceipt,\n type TrainingPreparationControl,\n} from \"./training-preparations.js\";\nexport {\n TrainingPreparationListQuerySchema,\n TrainingPreparationPageSchema,\n type TrainingPreparationListQuery,\n type TrainingPreparationPage,\n} from \"./training-preparations.js\";\nimport { createTrainingHarnessSourceClient } from \"./training-harness-sources.js\";\nexport { TrainingHarnessSourcePublicationSchema } from \"./training-harness-sources.js\";\nimport { createTrainingCandidateDecisionClient } from \"./training-candidate-decisions.js\";\nexport {\n TrainingCandidateDecisionRequestSchema,\n TrainingCandidateDecisionSchema,\n trainingCandidateDecisionHash,\n parseAndVerifyTrainingCandidateDecision,\n type TrainingCandidateDecisionRequest,\n type TrainingCandidateDecision,\n type TrainingCandidateDecisionTarget,\n} from \"./training-candidate-decisions.js\";\nimport { parseAndVerifyTrainingEvaluationTaskPage } from \"./training-evaluation-results.js\";\n\nexport { deterministicTrainingRewardSource } from \"./training-grading-plan.js\";\nexport {\n TRAINING_EVALUATION_SOURCE_PATH,\n TrainingEvaluationSourceSchema,\n assertTrainingEvaluationIsolation,\n trainingEvaluationSourceRef,\n type TrainingEvaluationSource,\n} from \"./training-evaluation-source.js\";\nexport {\n TrainingEvaluationTaskResultSchema,\n TrainingEvaluationTaskPageSchema,\n trainingEvaluationTaskPageHash,\n parseAndVerifyTrainingEvaluationTaskPage,\n type TrainingEvaluationTaskResult,\n type TrainingEvaluationTaskPage,\n} from \"./training-evaluation-results.js\";\n\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError, canonicalSha256 } from \"./protocol.js\";\n\nexport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n OPENPOND_TRAINING_PROTOCOL_MAJOR,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalJson,\n canonicalJsonByteLength,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nimport {\n TrainingCapabilitiesSchema, TrainingInputArtifactSchema, TrainingJobSchema, TrainingJobPageSchema,\n TrainingJobControlRequestSchema, TrainingJobEventSchema, TrainingJobOutputsSchema, TrainingJobLogSchema,\n parseAndVerifyTrainingInputArtifactUpload, parseAndVerifyTrainingJobSubmission,\n type TrainingInputArtifactUpload, type TrainingJobSubmission,\n} from \"./training-job-contracts.js\";\nexport * from \"./training-job-contracts.js\";\nexport * from \"./training-usage-status.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\n\nexport function createTrainingClient(input: {\n baseUrl: string;\n fetch?: typeof fetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const request = createTrainingRequest(input);\n\n return {\n postTraining: createPostTrainingClient({ request }),\n ...createTrainingPreparationClient(request),\n ...createTrainingExperimentSetupClient(request),\n ...createTrainingExperimentLearningClient(request),\n ...createTrainingEstimateClient(request),\n ...createTrainingFundingClient(request),\n ...createDatasetTrainingReviewClient(request),\n ...createTrainingResultClient(request),\n ...createTrainingModelSaveClient(request),\n ...createSteeringProfileClient(request),\n ...createTrainingModelServingClient(request),\n ...createTrainingModelServingControlClient(request),\n ...createSavedModelServingClient(request),\n ...createEngramModelServingClient(request),\n ...createNeuronCalibrationClient(request),\n ...createTrainingAcceptanceClient(request),\n ...createTrainingHardwareClient(request),\n ...createTrainingHardwareCatalogClient(request),\n ...createTrainingGpuCatalogClient(request),\n ...createModelModificationCapabilitiesClient(request),\n ...createModificationRecordingsClient(request),\n ...createTrainingHarnessSourceClient(request),\n ...createTrainingCandidateDecisionClient(request),\n ...createTrainingExecutionClient(request),\n ...createExperimentDraftClient(request),\n ...createManagedModificationExecutionClient(request),\n ...createManagedEngramExecutionClient(request),\n ...createManagedDecisionExecutionClient(request),\n ...createManagedAlphaEditExecutionClient(request),\n ...createManagedNeuronTrainingExecutionClient(request),\n ...createWeightModelClient(request),\n ...createAlphaEditModelServingClient(request),\n ...createNeuronTrainingModelServingClient(request),\n ...createDecisionModelClient(request),\n ...createDecisionModelScoringClient(request),\n ...createDecisionModelServingClient(request),\n ...createEngramModelClient(request),\n async capabilities() {\n return TrainingCapabilitiesSchema.parse(\n unwrapObject(await request(\"/v1/training/capabilities\"), \"capabilities\"),\n );\n },\n async stageArtifact(upload: TrainingInputArtifactUpload) {\n const parsed = await parseAndVerifyTrainingInputArtifactUpload(upload);\n return TrainingInputArtifactSchema.parse(\n unwrapObject(\n await request(\"/v1/training/artifacts\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"artifact\",\n ),\n );\n },\n async createJob(submission: TrainingJobSubmission) {\n const parsed = await parseAndVerifyTrainingJobSubmission(submission);\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\"/v1/training/jobs\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"job\",\n ),\n );\n },\n async listJobs(\n options: {\n modelProjectId?: string;\n cursor?: string;\n limit?: number;\n } = {},\n ) {\n const parameters = new URLSearchParams();\n if (options.modelProjectId) {\n parameters.set(\"modelProjectId\", IdSchema.parse(options.modelProjectId));\n }\n if (options.cursor) {\n parameters.set(\"cursor\", z.string().trim().min(1).max(2_000).parse(options.cursor));\n }\n if (options.limit !== undefined) {\n parameters.set(\"limit\", String(z.number().int().min(1).max(1_000).parse(options.limit)));\n }\n const query = parameters.size > 0 ? `?${parameters.toString()}` : \"\";\n return TrainingJobPageSchema.parse(await request(`/v1/training/jobs${query}`));\n },\n async getJob(jobId: string) {\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}`),\n \"job\",\n ),\n );\n },\n async cancelJob(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(control),\n }),\n \"job\",\n ),\n );\n },\n async stopAfterGroup(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/stop-after-group`,\n { method: \"POST\", body: JSON.stringify(control) },\n ),\n \"job\",\n ),\n );\n },\n async recoverCheckpoint(jobId: string, input: z.input<typeof TrainingCheckpointRecoveryRequestSchema>) {\n const recovery = TrainingCheckpointRecoveryRequestSchema.parse(input);\n if (recovery.resourceApproval) {\n const { approvalHash, ...body } = recovery.resourceApproval;\n if (body.sourceJobId !== jobId || await canonicalSha256(body) !== approvalHash)\n throw new OpenPondProtocolError(\"content_hash_mismatch\", \"Recovery resource approval does not bind this source request.\");\n }\n return TrainingJobSchema.parse(unwrapObject(await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/recover`,\n { method: \"POST\", body: JSON.stringify(recovery) },\n ), \"job\"));\n },\n async events(jobId: string) {\n return z\n .array(TrainingJobEventSchema)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`),\n \"events\",\n ),\n );\n },\n async outputs(jobId: string) {\n return TrainingJobOutputsSchema.parse(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/outputs`),\n );\n },\n async evaluationTasks(\n jobId: string,\n evaluation: { id: string; contentHash: string },\n options: { cursor?: string; limit?: number } = {},\n ) {\n const id = IdSchema.parse(jobId);\n const reference = ModelProjectImmutableRefSchema.parse(evaluation);\n const parameters = new URLSearchParams();\n const cursor =\n options.cursor === undefined\n ? undefined\n : z\n .string()\n .regex(/^[1-9]\\d*$/)\n .parse(options.cursor);\n const offset =\n cursor === undefined ? 0 : z.number().int().min(1).max(9_999).parse(Number(cursor));\n if (cursor !== undefined) parameters.set(\"cursor\", cursor);\n if (options.limit !== undefined)\n parameters.set(\"limit\", String(z.number().int().min(1).max(100).parse(options.limit)));\n const query = parameters.size ? `?${parameters.toString()}` : \"\";\n return parseAndVerifyTrainingEvaluationTaskPage(\n await request(\n `/v1/training/jobs/${encodeURIComponent(id)}/evaluations/${encodeURIComponent(reference.id)}/tasks${query}`,\n ),\n { jobId: id, evaluation: reference, offset },\n );\n },\n async logs(jobId: string) {\n return z\n .array(TrainingJobLogSchema)\n .max(100_000)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`),\n \"logs\",\n ),\n );\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\nexport { ExperimentDraftSchema, parseAndVerifyExperimentDraft, ExperimentOperationTypeSchema, ExperimentStartingModelSchema, parseAndVerifyExperimentStartingModel, experimentOperationLabel, type ExperimentDraft, type ExperimentOperationType, type ExperimentStartingModel } from \"./training-experiment-setup.js\";\nexport * from \"./activation-experiment-draft.js\";\n\nexport { TrainingExperimentFormDraftSchema, ExperimentDraftUpdateSchema, type TrainingExperimentFormDraft, type ExperimentDraftUpdate } from \"./training-experiment-setup.js\";\nexport * from \"./evaluation-experiment-draft.js\";\nexport * from \"./managed-modification-executions.js\";\nexport * from \"./activation-form-compiler.js\";\n\nexport { parseAndVerifyTrainingEstimate } from \"./training-estimates.js\";\n\nexport * from \"./steering-experiment-source.js\";\nexport * from \"./steering-experiment-source-verification.js\";\nexport * from \"./steering-experiment-authoring.js\";\n","import { z } from \"zod\";\nimport { ModelInitialLearningSchema } from \"./model-learning-intent.js\";\nimport { HostedModelProjectSummarySchema, ModelProjectTrainingSetupSchema } from \"./model-projects.js\";\nimport { TrainingPreparationRequestSchema } from \"./training-preparations.js\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TrainingExperimentFormDraftSchema, type TrainingExperimentFormDraft } from \"./training-experiment-setup.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nexport * from \"./training-experiment-learning-intent.js\";\n\n/** An explicit policy save is separate from manual preparation and execution. */\nexport const TrainingExperimentLearningRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentLearning.v1\"),\n teamId: z.string().min(1).max(191),\n projectId: z.string().min(1).max(191).nullable(),\n draftId: z.string().min(1).max(191),\n form: TrainingExperimentFormDraftSchema.omit({ learningConfiguration: true }),\n expectedConfiguration: TrainingPreparationRequestSchema.shape.configuration.optional(),\n expectedPolicy: LearningRevisionRefSchema.optional(),\n}).strict();\nexport type TrainingExperimentLearningRequest = z.infer<typeof TrainingExperimentLearningRequestSchema>;\nexport const TrainingExperimentLearningReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingExperimentLearningReceipt.v1\"),\n inputHash: z.string().regex(/^[a-f0-9]{64}$/),\n configuration: HostedModelProjectSummarySchema,\n policy: LearningRevisionRefSchema,\n}).strict();\nexport type TrainingExperimentLearningReceipt = z.infer<typeof TrainingExperimentLearningReceiptSchema>;\n\nexport function trainingExperimentLearningRequest(input: {\n teamId: string; projectId: string | null; draftId: string; form: TrainingExperimentFormDraft;\n}) {\n const { learningConfiguration, ...form } = input.form;\n const saved = learningConfiguration?.configuration;\n return TrainingExperimentLearningRequestSchema.parse({\n schemaVersion: \"openpond.trainingExperimentLearning.v1\", ...input, form,\n ...(saved ? { expectedConfiguration: { id: saved.id, expectedRevision: saved.revision, expectedEtag: saved.etag }, expectedPolicy: learningConfiguration!.policy } : {}),\n });\n}\nexport async function trainingExperimentLearningInputHash(input: TrainingExperimentLearningRequest) {\n const value = TrainingExperimentLearningRequestSchema.parse(input);\n const { baseModel, recipe, batch, evaluation, validationSplit, learningIntent } = value.form;\n return canonicalSha256({ teamId: value.teamId, projectId: value.projectId, draftId: value.draftId,\n baseModel, recipe, batch, evaluation, validationSplit, learningIntent });\n}\n/** Only a training save accepts these authoring inputs. Pausing a policy keeps\n * this binding unchanged even when its current draft has unsaved edits. */\nexport async function trainingExperimentTrainingInputHash(form: TrainingExperimentFormDraft) {\n const { baseModel, recipe, batch, evaluation, validationSplit } = form;\n return canonicalSha256({ baseModel, recipe, batch, evaluation, validationSplit });\n}\nexport async function trainingExperimentSavedConfiguration(form: TrainingExperimentFormDraft) {\n const saved = form.learningConfiguration;\n if (saved && saved.trainingInputHash !== await trainingExperimentTrainingInputHash(form))\n throw new Error(\"Save the changed training inputs before preparing this Model, or restore its accepted settings.\");\n return saved;\n}\nexport function trainingExperimentInitialLearning(input: TrainingExperimentLearningRequest) {\n const value = input.form.learningIntent;\n if (!value || (!value.enabled && !input.expectedPolicy)) throw new Error(\"Enable continual learning before saving its first policy.\");\n return ModelInitialLearningSchema.parse({\n mode: value.mode, minimumTasks: Number(value.minimumTasks), localTime: value.localTime, timeZone: value.timeZone,\n maximumSpendUsd: Number(value.maximumSpendUsd), maximumDailySpendUsd: Number(value.maximumDailySpendUsd),\n });\n}\nexport function trainingExperimentLearningSettings(form: TrainingExperimentFormDraft) {\n return ModelProjectTrainingSetupSchema.parse({\n method: form.recipe.method, baseModel: form.baseModel,\n recipe: { ...form.recipe, dataset: { ...(form.recipe.dataset && typeof form.recipe.dataset === \"object\" ? form.recipe.dataset : {}), validationSplit: form.validationSplit } },\n evaluationTasksetRef: form.evaluation, managedRolloutPlacement: \"remote\",\n ...(form.recipe.method === \"grpo\" && form.learningIntent?.continuationAdapterMode\n ? { continuationAdapterMode: form.learningIntent.continuationAdapterMode } : {}),\n });\n}\nexport function createTrainingExperimentLearningClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async saveExperimentLearning(input: TrainingExperimentLearningRequest) {\n const parsed = TrainingExperimentLearningRequestSchema.parse(input);\n const result = TrainingExperimentLearningReceiptSchema.parse(await request(\"/v1/training/preparations/from-draft/learning\", { method: \"POST\", body: JSON.stringify(parsed) }));\n const pausing = parsed.form.learningIntent?.enabled === false && Boolean(parsed.expectedConfiguration && parsed.expectedPolicy);\n const expected = parsed.expectedConfiguration;\n const configurationMatches = pausing\n ? result.configuration.id === expected!.id && result.configuration.revision === expected!.expectedRevision && result.configuration.etag === expected!.expectedEtag\n : result.configuration.name === parsed.form.name.trim();\n if (result.inputHash !== await trainingExperimentLearningInputHash(parsed) || result.configuration.teamId !== parsed.teamId || !configurationMatches\n || (parsed.expectedPolicy && (result.policy.id !== parsed.expectedPolicy.id || result.policy.revision !== parsed.expectedPolicy.revision + 1)))\n throw new OpenPondProtocolError(\"training_experiment_learning_mismatch\", \"The saved learning policy does not match its authored inputs.\");\n return result;\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { TrainingJobSubmissionSchema, parseAndVerifyTrainingJobSubmission } from \"./training-job-contracts.js\";\nimport { TrainingGpuSelectionSchema, TrainingEstimateReviewSchema } from \"./training-compute-selection.js\";\nimport { TrainingEstimateWorkloadSchema } from \"./training-estimate-workload.js\";\nimport { SftRecipeSchema } from \"./training-supervised.js\";\nexport { TrainingEstimateWorkloadSchema, type TrainingEstimateWorkload } from \"./training-estimate-workload.js\";\nexport { TrainingGpuSelectionSchema, TrainingEstimateReviewSchema,\n type TrainingGpuSelection, type TrainingEstimateReview } from \"./training-compute-selection.js\";\n\nconst Id = z.string().trim().min(1).max(191);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Timestamp = z.string().datetime({ offset: true });\nconst NonNegative = z.number().finite().nonnegative();\n\n/** Hardware choice and allocation sharing are independent decisions. An exact\n * offering is never silently replaced with a different GPU when stock changes. */\nexport const TrainingEstimateSourceSchema = z.discriminatedUnion(\"kind\", [\n z.object({ kind: z.literal(\"preparation\"), id: Id, planHash: Hash, expectedRevision: z.number().int().positive() }).strict(),\n z.object({\n kind: z.literal(\"configuration\"), id: Id,\n expectedRevision: z.number().int().positive(), expectedEtag: Hash,\n batch: ModelProjectVersionedRefSchema.nullable().default(null),\n }).strict(),\n z.object({ kind: z.literal(\"submission\"), submission: z.lazy(() => TrainingJobSubmissionSchema) }).strict(),\n]);\n\n/** An estimate has no approval flag or required spend cap. Existing prepared\n * submissions may carry their original cap, which this operation cannot raise. */\nexport const TrainingEstimateRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEstimateRequest.v1\"),\n teamId: Id,\n source: TrainingEstimateSourceSchema,\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n}).strict();\n\nconst PlanningRange = z.object({ low: NonNegative, high: NonNegative }).strict()\n .refine(value => value.high >= value.low, \"Planning range must be ordered\");\n\nexport const TrainingEstimateComponentSchema = z.object({\n phase: z.enum([\n \"gpu_allocation\", \"startup\", \"baseline_evaluation\", \"rollouts\", \"optimization\", \"checkpointing\",\n \"backbone_materialization\", \"final_evaluation\", \"publication\", \"cleanup\", \"retention\",\n ]),\n resource: z.enum([\"gpu\", \"cpu\", \"judge\", \"storage\", \"network\"]),\n expectedUsd: NonNegative.nullable(),\n expectedSeconds: NonNegative.nullable(),\n planningRangeUsd: PlanningRange.nullable(),\n evidence: z.enum([\"measured\", \"configured_rate\", \"unavailable\"]),\n reason: z.string().trim().min(1).max(1000).nullable(),\n}).strict();\n\n/** A signed review binds the exact workload/price identity. It reserves neither\n * capacity nor money, and submission still checks funding and current pricing. */\nexport function trainingEstimateSourceIdentity(source: z.infer<typeof TrainingEstimateSourceSchema>) {\n if (source.kind === \"submission\") return {\n kind: source.kind, id: source.submission.idempotencyKey, contentHash: source.submission.contentHash, revision: null,\n };\n if (source.kind === \"preparation\") return {\n kind: source.kind, id: source.id, contentHash: source.planHash, revision: source.expectedRevision,\n };\n return { kind: source.kind, id: source.id, contentHash: source.expectedEtag, revision: source.expectedRevision };\n}\n\nexport const TrainingEstimateSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEstimate.v1\"),\n id: Id,\n teamId: Id,\n requestHash: Hash,\n inputHash: Hash,\n source: z.object({\n kind: z.enum([\"preparation\", \"configuration\", \"submission\"]), id: z.string().trim().min(1).max(500),\n contentHash: Hash, revision: z.number().int().positive().nullable(),\n }).strict(),\n status: z.enum([\"available\", \"partial\", \"insufficient_evidence\"]),\n currency: z.literal(\"USD\"),\n createdAt: Timestamp,\n expiresAt: Timestamp,\n estimatorVersion: Id,\n runtimeVersion: Id,\n pricing: z.object({ version: Id, quoteExpiresAt: Timestamp.nullable() }).strict(),\n gpu: z.object({\n requested: TrainingGpuSelectionSchema,\n resolved: z.object({ availabilityId: Id, gpuType: z.string().min(1).max(256), gpuCount: z.union([z.literal(1), z.literal(2)]) }).strict().nullable(),\n customerHourlyUsd: NonNegative.nullable(),\n availability: z.enum([\"available\", \"limited\", \"unavailable\", \"unknown\"]),\n }).strict(),\n configuration: z.object({\n modelId: Id,\n modelRevision: z.string().min(1).max(256),\n method: Id,\n loraRank: z.number().int().positive().nullable(),\n adapterMode: z.enum([\"residual_append\", \"shared\", \"sequential_merge\"]).nullable(),\n groups: z.number().int().nonnegative().nullable(),\n rolloutConcurrency: z.number().int().positive().nullable(),\n maxOutputTokens: z.number().int().positive().nullable(),\n trainingRows: z.number().int().nonnegative().nullable(),\n evaluationRows: z.number().int().nonnegative().nullable(),\n retentionDays: z.number().int().positive().nullable(),\n approvedMaximumUsd: NonNegative.nullable(),\n }).strict(),\n /** Producers bind supplied evidence into inputHash. Absence has no default and\n * preserves the identity of estimates produced before native token preflight. */\n workload: TrainingEstimateWorkloadSchema.optional(),\n cost: z.object({\n expectedUsd: NonNegative.nullable(),\n planningRangeUsd: PlanningRange.nullable(),\n knownMinimumUsd: NonNegative,\n recommendedMaximumUsd: NonNegative.nullable(),\n minimumCleanupReserveUsd: NonNegative.nullable(),\n components: z.array(TrainingEstimateComponentSchema).max(50),\n }).strict(),\n executionSeconds: z.object({ expected: NonNegative.nullable(), planningRange: PlanningRange.nullable() }).strict(),\n queueWaitSeconds: z.object({ expected: NonNegative, planningRange: PlanningRange.nullable() }).strict().nullable(),\n calibration: z.object({\n version: Id,\n cohortHash: Hash,\n completedSamples: z.number().int().nonnegative(),\n partialSamples: z.number().int().nonnegative(),\n scope: z.enum([\"workspace\", \"authorized_aggregate\"]),\n }).strict(),\n assumptions: z.array(z.string().trim().min(1).max(1000)).max(50),\n unknowns: z.array(z.string().trim().min(1).max(1000)).max(50),\n review: TrainingEstimateReviewSchema,\n}).strict().superRefine((estimate, context) => {\n const allocation = estimate.cost.components.filter(component => component.phase === \"gpu_allocation\");\n if (allocation.length) {\n const aggregate = allocation[0]!, rate = estimate.gpu.customerHourlyUsd;\n const mismatch = allocation.length !== 1 || aggregate.resource !== \"gpu\" ||\n (aggregate.expectedUsd === null) !== (aggregate.expectedSeconds === null) ||\n aggregate.expectedUsd !== null && (rate === null || aggregate.evidence !== \"measured\" ||\n Math.abs(aggregate.expectedUsd - aggregate.expectedSeconds! / 3600 * rate) > 1e-9) ||\n aggregate.planningRangeUsd !== null && aggregate.expectedUsd === null ||\n estimate.cost.components.some(component => component.resource === \"gpu\" && component.phase !== \"gpu_allocation\" &&\n (component.expectedUsd !== null || component.expectedSeconds !== null || component.planningRangeUsd !== null));\n if (mismatch) context.addIssue({code: \"custom\", path: [\"cost\", \"components\"],\n message: \"GPU allocation evidence must use the whole-Pod rate once, without duplicate GPU phase quantities or charges\"});\n }\n const workload = estimate.workload;\n if (workload) {\n const model = workload.identity?.baseModel;\n const trainingRows = workload.method === \"sft\" ? workload.trainingRows.total : workload.trainingRows;\n if (workload.method !== estimate.configuration.method ||\n (model && (model.modelId !== estimate.configuration.modelId || model.revision !== estimate.configuration.modelRevision)) ||\n (trainingRows !== null && estimate.configuration.trainingRows !== null && trainingRows !== estimate.configuration.trainingRows) ||\n (workload.evaluationRows !== null && estimate.configuration.evaluationRows !== null &&\n workload.evaluationRows !== estimate.configuration.evaluationRows))\n context.addIssue({ code: \"custom\", path: [\"workload\"], message: \"Workload evidence differs from the selected model, method or row population\" });\n }\n if (estimate.review.estimateId !== estimate.id || estimate.review.inputHash !== estimate.inputHash ||\n estimate.review.requestHash !== estimate.requestHash || estimate.review.pricingVersion !== estimate.pricing.version ||\n estimate.review.expiresAt !== estimate.expiresAt) {\n context.addIssue({ code: \"custom\", path: [\"review\"], message: \"Estimate review identity differs from the estimate\" });\n }\n if (Date.parse(estimate.expiresAt) <= Date.parse(estimate.createdAt)) {\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Estimate must expire after its creation\" });\n }\n if (estimate.status === \"available\" &&\n (estimate.cost.expectedUsd === null || estimate.executionSeconds.expected === null || estimate.unknowns.length > 0)) {\n context.addIssue({ code: \"custom\", path: [\"status\"], message: \"An available estimate requires complete cost and duration coverage\" });\n }\n if (estimate.gpu.requested.mode === \"manual\" && estimate.gpu.resolved &&\n (estimate.gpu.requested.availabilityId !== estimate.gpu.resolved.availabilityId ||\n estimate.gpu.requested.gpuType !== estimate.gpu.resolved.gpuType)) {\n context.addIssue({ code: \"custom\", path: [\"gpu\"], message: \"An explicit GPU offering cannot be substituted\" });\n }\n if (estimate.gpu.resolved && estimate.gpu.resolved.gpuCount !== (estimate.gpu.requested.gpuCount ?? 1)) {\n context.addIssue({ code: \"custom\", path: [\"gpu\", \"resolved\", \"gpuCount\"], message: \"The resolved GPU count must match the requested count\" });\n }\n});\n\nexport type TrainingEstimateRequest = z.infer<typeof TrainingEstimateRequestSchema>;\nexport type TrainingEstimate = z.infer<typeof TrainingEstimateSchema>;\n\nexport function createTrainingEstimateClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async estimate(input: TrainingEstimateRequest): Promise<TrainingEstimate> {\n const parsed = TrainingEstimateRequestSchema.parse(input);\n if (parsed.source.kind === \"submission\") await parseAndVerifyTrainingJobSubmission(parsed.source.submission);\n const result = TrainingEstimateSchema.parse(await request(\"/v1/training/estimates\", {\n method: \"POST\", body: JSON.stringify(parsed),\n }));\n return parseAndVerifyTrainingEstimate(result, parsed);\n },\n };\n}\n\n\n/** Verify the same exact review identity through another authenticated transport. */\nexport async function parseAndVerifyTrainingEstimate(raw: unknown, request: TrainingEstimateRequest): Promise<TrainingEstimate> {\n const parsed = TrainingEstimateRequestSchema.parse(request);\n if (parsed.source.kind === \"submission\") await parseAndVerifyTrainingJobSubmission(parsed.source.submission);\n const result = TrainingEstimateSchema.parse(raw);\n const workload = result.workload;\n if (workload && parsed.source.kind === \"submission\") {\n const submission = parsed.source.submission;\n const identity = workload.identity;\n let mismatch = submission.job.kind !== \"policy_optimize\" || workload.method !== submission.job.recipe.method;\n if (identity) {\n const source = submission.source;\n mismatch ||= identity.recipeHash !== await canonicalSha256(submission.job.recipe) ||\n await canonicalSha256(identity.baseModel) !== await canonicalSha256(submission.job.baseModel) ||\n await canonicalSha256({\n harnessRunManifest: identity.harnessRunManifest, harnessRelease: identity.harnessRelease,\n dataset: identity.dataset, evaluationDataset: identity.evaluationDataset, evidenceSets: identity.evidenceSets,\n }) !== await canonicalSha256({\n harnessRunManifest: source.harnessRunManifest, harnessRelease: source.harnessRelease,\n dataset: source.dataset, evaluationDataset: source.evaluation?.dataset ?? null, evidenceSets: source.evidenceSets,\n });\n }\n if (workload.method === \"sft\" && (workload.preprocessing || workload.planned.exampleExposures !== null)) {\n const recipe = SftRecipeSchema.safeParse(submission.job.recipe);\n if (!recipe.success) mismatch = true;\n else {\n mismatch ||= workload.preprocessing !== null && workload.preprocessing.maxSequenceLength !== recipe.data.dataset.maxSequenceLength;\n const optimizer = recipe.data.optimizer;\n const window = optimizer.batchSize * optimizer.gradientAccumulationSteps;\n if (workload.planned.exampleExposures !== null && workload.trainingRows.total !== null) {\n const exposures = Math.min(Math.ceil(workload.trainingRows.total * optimizer.epochs), optimizer.maxSteps * window);\n mismatch ||= workload.planned.exampleExposures !== exposures || workload.planned.optimizerSteps !== Math.ceil(exposures / window);\n }\n }\n } else if (workload.method === \"grpo\" && workload.preprocessing) {\n const recipe = z.object({ dataset: z.object({ maxPromptTokens: z.number().int().positive() }) }).safeParse(submission.job.recipe);\n mismatch ||= !recipe.success || workload.preprocessing.maxPromptTokens !== recipe.data.dataset.maxPromptTokens;\n }\n if (mismatch) throw new OpenPondProtocolError(\"training_estimate_scope_mismatch\", \"Workload evidence does not match the exact submitted model, recipe and released data.\");\n }\n if (result.teamId !== parsed.teamId || result.requestHash !== await canonicalSha256(parsed) ||\n Date.parse(result.expiresAt) <= Date.now() ||\n await canonicalSha256(result.source) !== await canonicalSha256(trainingEstimateSourceIdentity(parsed.source)) ||\n (parsed.gpuSelection && await canonicalSha256(result.gpu.requested) !== await canonicalSha256(parsed.gpuSelection)) ||\n (parsed.source.kind === \"submission\" && await canonicalSha256(result.gpu.requested) !== await canonicalSha256(\n parsed.source.submission.gpuSelection ?? { mode: \"automatic\", objective: parsed.source.submission.placementObjective }))) {\n throw new OpenPondProtocolError(\"training_estimate_scope_mismatch\", \"The estimate does not match the requested workspace and exact configuration.\");\n }\n return result;\n}\n","import { z } from \"zod\";\nimport { ModelProjectBaseModelSchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\n\nconst Hash = ModelProjectImmutableRefSchema.shape.contentHash;\nconst Count = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\nconst Reason = z.string().trim().min(1).max(1000);\nconst Coverage = z.enum([\"complete\", \"bounded\", \"unavailable\"]);\n\nconst Identity = z.object({\n baseModel: ModelProjectBaseModelSchema.extend({\n revision: z.string().trim().min(1).max(256),\n tokenizerRevision: z.string().trim().min(1).max(256),\n chatTemplateHash: Hash,\n }).strict(),\n /** Hash the full verified recipe, including optimizer and sampling settings. */\n recipeHash: Hash,\n harnessRunManifest: ModelProjectImmutableRefSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n dataset: ModelProjectImmutableRefSchema,\n evaluationDataset: ModelProjectImmutableRefSchema.nullable(),\n evidenceSets: z.array(ModelProjectImmutableRefSchema).max(10_000),\n}).strict();\n\nconst Preprocessing = z.object({\n version: z.string().trim().min(1).max(191),\n /** Includes policy framing, template invocation, admission and mask code. */\n implementationHash: Hash,\n /** Hash of the verified tokenizer file inventory (paths, sizes and hashes). */\n tokenizerAssetsHash: Hash,\n enableThinking: z.literal(false),\n}).strict();\n\nconst SftTokens = z.object({\n promptTokens: Count,\n retainedPromptTokens: Count,\n /** Includes the final assistant terminal marker; prompt labels are masked. */\n targetTokens: Count,\n inputTokens: Count,\n truncatedPrompts: Count,\n}).strict().superRefine((tokens, context) => {\n if (tokens.retainedPromptTokens > tokens.promptTokens ||\n tokens.inputTokens !== tokens.retainedPromptTokens + tokens.targetTokens ||\n (tokens.truncatedPrompts === 0) !== (tokens.promptTokens === tokens.retainedPromptTokens)) {\n context.addIssue({ code: \"custom\", message: \"SFT tokens must preserve the target and partition the retained input\" });\n }\n});\n\n/** Totals cover only the exact counted subset, never an extrapolated population.\n * inputsHash binds its ordered row IDs/messages or exact initial request payloads.\n * Bounded coverage records a preflight limit; it is not a statistical estimate. */\nconst Population = z.object({\n coverage: Coverage,\n total: Count.nullable(),\n counted: Count,\n inputsHash: Hash.nullable(),\n reason: Reason.nullable(),\n}).strict();\n\nfunction verifyPopulation(value: z.infer<typeof Population> & { totals: unknown }, context: z.RefinementCtx) {\n if (value.total !== null && value.counted > value.total)\n context.addIssue({ code: \"custom\", path: [\"counted\"], message: \"Counted membership exceeds the population\" });\n if (value.coverage === \"unavailable\") {\n if (value.counted !== 0 || value.totals !== null || value.inputsHash !== null || !value.reason)\n context.addIssue({ code: \"custom\", message: \"Unavailable counts require a reason and no token evidence\" });\n } else {\n if (value.totals === null || value.inputsHash === null)\n context.addIssue({ code: \"custom\", message: \"Counted membership requires exact inputs and token totals\" });\n if (value.coverage === \"complete\" && (value.total === null || value.counted !== value.total))\n context.addIssue({ code: \"custom\", message: \"Complete coverage must count the entire declared population\" });\n if (value.coverage === \"bounded\" && !value.reason)\n context.addIssue({ code: \"custom\", path: [\"reason\"], message: \"Bounded coverage must explain its limit\" });\n }\n}\n\nconst PromptPopulation = Population.extend({ totals: z.object({ promptTokens: Count }).strict().nullable() })\n .superRefine(verifyPopulation).superRefine((value, context) => {\n if (value.totals && value.totals.promptTokens < value.counted)\n context.addIssue({ code: \"custom\", path: [\"totals\"], message: \"Each counted initial request requires a nonempty prompt\" });\n});\nconst SftPopulation = Population.extend({ totals: SftTokens.nullable() })\n .superRefine(verifyPopulation).superRefine((value, context) => {\n if (value.totals && (value.totals.truncatedPrompts > value.counted ||\n value.totals.retainedPromptTokens < value.counted || value.totals.targetTokens < value.counted))\n context.addIssue({ code: \"custom\", path: [\"totals\"], message: \"Each counted SFT row requires context and a complete target\" });\n});\n\nconst Common = {\n schemaVersion: z.literal(\"openpond.trainingEstimateWorkload.v1\"),\n identity: Identity.nullable(),\n /** Required when immutable identity or native preprocessing cannot be verified. */\n unavailableReason: Reason.nullable(),\n};\n\n/** Read-only native preprocessing evidence, independent of throughput or price.\n * Planned counts describe a successful full schedule, never actual consumption. */\nexport const TrainingEstimateWorkloadSchema = z.discriminatedUnion(\"method\", [\n z.object({\n ...Common,\n method: z.literal(\"sft\"),\n preprocessing: Preprocessing.extend({\n maxSequenceLength: Count.min(2),\n promptTruncation: z.literal(\"left_preserve_complete_target\"),\n targetMask: z.literal(\"completion_only\"),\n }).strict().nullable(),\n /** One exposure per distinct admitted row, before schedule repetition. */\n trainingRows: SftPopulation,\n evaluationRows: Count.nullable(),\n /** Initial held-out requests only; held-out targets never enter SFT loss. */\n evaluationInitialRequests: PromptPopulation,\n evaluationGeneratedCompletionTokens: z.null(),\n evaluationGeneratedTokensReason: Reason,\n planned: z.object({\n /** Native seeded epoch order, capped by maxSteps × batch × accumulation. */\n exampleExposures: Count.nullable(),\n optimizerSteps: Count.nullable(),\n /** Hash the ordered row IDs with repetition after the native step cap. */\n exposuresHash: Hash.nullable(),\n tokenTotals: SftTokens.nullable(),\n reason: Reason.nullable(),\n }).strict(),\n }).strict(),\n z.object({\n ...Common,\n method: z.literal(\"grpo\"),\n preprocessing: Preprocessing.extend({\n maxPromptTokens: Count.positive(),\n contextAdmission: z.literal(\"native_policy_context\"),\n addGenerationPrompt: z.literal(true),\n }).strict().nullable(),\n /** Distinct released rows, independent of repeated group/slot requests. */\n trainingRows: Count.nullable(),\n evaluationRows: Count.nullable(),\n /** Exact initial request variants, including seeds, tools and context. */\n trainingInitialRequests: PromptPopulation,\n evaluationInitialRequests: PromptPopulation,\n /** Future generations and tool trajectories have no exact preflight count. */\n generatedCompletionTokens: z.null(),\n subsequentToolTurnPromptTokens: z.null(),\n generatedTokensReason: Reason,\n }).strict(),\n]).superRefine((workload, context) => {\n const populations = workload.method === \"sft\"\n ? [workload.trainingRows, workload.evaluationInitialRequests]\n : [workload.trainingInitialRequests, workload.evaluationInitialRequests];\n if (!workload.identity || !workload.preprocessing) {\n if (!workload.unavailableReason || populations.some(value => value.coverage !== \"unavailable\") ||\n workload.method === \"sft\" && workload.planned.tokenTotals !== null)\n context.addIssue({ code: \"custom\", message: \"Native token counts require verified identity and preprocessing; otherwise explain their unavailability\" });\n }\n if (workload.method === \"sft\") {\n const plan = workload.planned;\n if (workload.preprocessing) {\n const limit = workload.preprocessing.maxSequenceLength;\n if (workload.trainingRows.totals && workload.trainingRows.totals.inputTokens > limit * workload.trainingRows.counted ||\n plan.tokenTotals && plan.exampleExposures !== null && plan.tokenTotals.inputTokens > limit * plan.exampleExposures)\n context.addIssue({ code: \"custom\", message: \"SFT token totals exceed the native sequence limit\" });\n }\n if ((plan.exampleExposures === null) !== (plan.optimizerSteps === null) ||\n (plan.exampleExposures === null) !== (plan.exposuresHash === null))\n context.addIssue({ code: \"custom\", path: [\"planned\"], message: \"A native schedule requires exposures, steps and ordered membership together\" });\n if (plan.exampleExposures !== null && (!workload.identity || workload.trainingRows.total === null ||\n plan.optimizerSteps === null || plan.optimizerSteps > plan.exampleExposures ||\n (plan.exampleExposures === 0) !== (plan.optimizerSteps === 0)))\n context.addIssue({ code: \"custom\", path: [\"planned\"], message: \"A native schedule requires immutable identity, admitted row membership and valid step counts\" });\n if (plan.tokenTotals && (plan.exampleExposures === null ||\n plan.tokenTotals.truncatedPrompts > plan.exampleExposures ||\n plan.tokenTotals.retainedPromptTokens < plan.exampleExposures || plan.tokenTotals.targetTokens < plan.exampleExposures))\n context.addIssue({ code: \"custom\", path: [\"planned\", \"tokenTotals\"], message: \"Planned tokens must cover the exact scheduled exposures\" });\n if ((!workload.identity || plan.exampleExposures === null || plan.tokenTotals === null) && !plan.reason)\n context.addIssue({ code: \"custom\", path: [\"planned\", \"reason\"], message: \"Incomplete planned workload requires a reason\" });\n } else if (workload.preprocessing) {\n const value = workload.trainingInitialRequests;\n if (value.totals && value.totals.promptTokens > workload.preprocessing.maxPromptTokens * value.counted)\n context.addIssue({ code: \"custom\", message: \"Training initial request token totals exceed native prompt admission\" });\n }\n});\n\nexport type TrainingEstimateWorkload = z.infer<typeof TrainingEstimateWorkloadSchema>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Amount = z.number().positive().max(1_000_000);\nconst Decimal = z.string().regex(/^\\d+(?:\\.\\d{1,6})?$/);\nconst Timestamp = z.iso.datetime();\nexport const TrainingFundingDraftRefSchema = z.object({\n id: Id, revision: z.number().int().positive(), contentHash: Hash, projectId: Id.nullable(),\n}).strict();\nexport const TrainingFundingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingRequest.v1\"),\n teamId: Id, maximumSpendUsd: Amount, draft: TrainingFundingDraftRefSchema.nullable().default(null),\n}).strict();\n/** Advisory coverage of the whole cap. This read neither reserves funds nor permits dispatch. */\nexport const TrainingFundingSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFunding.v1\"), teamId: Id, actorId: Id,\n requestHash: Hash, maximumSpendUsd: Amount, draft: TrainingFundingDraftRefSchema.nullable(),\n state: z.enum([\"covered\", \"insufficient_credit\", \"member_limit\", \"unavailable\"]),\n canViewBalance: z.boolean(), canPurchase: z.boolean(),\n availableUsageUsd: Decimal.nullable(), prepaidCreditUsd: Decimal.nullable(),\n checkedAt: Timestamp, expiresAt: Timestamp,\n}).strict().superRefine((value, context) => {\n if (!value.canViewBalance && (value.availableUsageUsd !== null || value.prepaidCreditUsd !== null))\n context.addIssue({ code: \"custom\", path: [\"canViewBalance\"], message: \"Private balances cannot accompany a restricted funding read.\" });\n if (Date.parse(value.expiresAt) <= Date.parse(value.checkedAt))\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Funding observations must expire after their check.\" });\n});\nexport const TrainingFundingHandoffRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingHandoffRequest.v1\"),\n teamId: Id, maximumSpendUsd: Amount.nullable(), draft: TrainingFundingDraftRefSchema,\n}).strict();\nexport const TrainingFundingHandoffSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingFundingHandoff.v1\"), teamId: Id, actorId: Id,\n requestHash: Hash, maximumSpendUsd: Amount.nullable(), draft: TrainingFundingDraftRefSchema,\n canPurchase: z.boolean(), billingUrl: z.string().url().nullable(), checkedAt: Timestamp, expiresAt: Timestamp,\n}).strict().superRefine((value, context) => {\n if (Boolean(value.billingUrl) !== value.canPurchase)\n context.addIssue({ code: \"custom\", path: [\"billingUrl\"], message: \"A purchase handoff requires current billing access.\" });\n if (value.billingUrl) {\n const url = new URL(value.billingUrl);\n if ((url.protocol !== \"https:\" && !(url.protocol === \"http:\" && [\"localhost\", \"127.0.0.1\", \"[::1]\"].includes(url.hostname))) || url.username || url.password || url.search || url.hash || !/^\\/entry\\/[A-Za-z0-9_-]{40,4096}$/.test(url.pathname))\n context.addIssue({ code: \"custom\", path: [\"billingUrl\"], message: \"Use a grantless hosted Billing entry URL.\" });\n }\n if (Date.parse(value.expiresAt) <= Date.parse(value.checkedAt))\n context.addIssue({ code: \"custom\", path: [\"expiresAt\"], message: \"Funding handoffs must expire after creation.\" });\n});\nexport type TrainingFundingRequest = z.input<typeof TrainingFundingRequestSchema>;\nexport type TrainingFunding = z.infer<typeof TrainingFundingSchema>;\nexport type TrainingFundingHandoffRequest = z.infer<typeof TrainingFundingHandoffRequestSchema>;\nexport type TrainingFundingHandoff = z.infer<typeof TrainingFundingHandoffSchema>;\n\nexport async function parseAndVerifyTrainingFunding(raw: unknown, input: TrainingFundingRequest, actorId?: string) {\n const request = TrainingFundingRequestSchema.parse(input), value = TrainingFundingSchema.parse(raw);\n if (value.teamId !== request.teamId || actorId && value.actorId !== actorId || value.maximumSpendUsd !== request.maximumSpendUsd || canonicalJson(value.draft) !== canonicalJson(request.draft) || value.requestHash !== await canonicalSha256(request) || Date.parse(value.expiresAt) <= Date.now())\n throw new OpenPondProtocolError(\"training_funding_scope_mismatch\", \"Funding returned another actor, workspace, draft or spending cap.\");\n return value;\n}\nexport async function parseAndVerifyTrainingFundingHandoff(raw: unknown, input: TrainingFundingHandoffRequest, actorId?: string) {\n const request = TrainingFundingHandoffRequestSchema.parse(input), value = TrainingFundingHandoffSchema.parse(raw);\n if (value.teamId !== request.teamId || actorId && value.actorId !== actorId || value.maximumSpendUsd !== request.maximumSpendUsd || canonicalJson(value.draft) !== canonicalJson(request.draft) || value.requestHash !== await canonicalSha256(request) || Date.parse(value.expiresAt) <= Date.now())\n throw new OpenPondProtocolError(\"training_funding_handoff_scope_mismatch\", \"Billing returned another actor, workspace, draft or spending cap.\");\n return value;\n}\nexport function createTrainingFundingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async funding(input: TrainingFundingRequest) {\n const parsed = TrainingFundingRequestSchema.parse(input);\n return parseAndVerifyTrainingFunding(await request(\"/v1/training/funding/preview\", { method: \"POST\", body: canonicalJson(parsed) }), parsed);\n },\n async fundingHandoff(input: TrainingFundingHandoffRequest) {\n const parsed = TrainingFundingHandoffRequestSchema.parse(input);\n return parseAndVerifyTrainingFundingHandoff(await request(\"/v1/training/funding/handoff\", { method: \"POST\", body: canonicalJson(parsed) }), parsed);\n },\n };\n}\n","import { contentHash as learningContentHash } from \"@openpond/harness\";\nimport { canonicalJson, OpenPondProtocolError } from \"./protocol.js\";\nimport { DatasetTrainingReviewRequestSchema, DatasetTrainingReviewReceiptSchema,\n type DatasetTrainingReviewRequest } from \"./dataset-training-review-contracts.js\";\n\nexport * from \"./dataset-training-review-contracts.js\";\n\nexport async function parseAndVerifyDatasetTrainingReviewReceipt(raw: unknown, input: DatasetTrainingReviewRequest, actorId?: string) {\n const request = DatasetTrainingReviewRequestSchema.parse(input);\n const value = DatasetTrainingReviewReceiptSchema.parse(raw);\n const { contentHash, ...content } = value;\n // The review owner seals this receipt and its operation identity with the\n // learning resource encoding, independently of the training HTTP transport.\n if (contentHash !== learningContentHash(content) || value.requestHash !== learningContentHash(request)\n || value.id !== `dataset-review-${learningContentHash([value.teamId, value.actorId, value.operationId])}`\n || value.teamId !== request.teamId || actorId && value.actorId !== actorId\n || value.operationId !== request.operationId || value.packageHash !== request.packageHash\n || canonicalJson(value.dataset) !== canonicalJson(request.dataset) || value.purpose !== request.purpose)\n throw new OpenPondProtocolError(\"dataset_training_review_mismatch\", \"The Dataset review receipt differs from its exact source or operation.\");\n if (new Set(value.evidence.map(ref => ref.id)).size !== value.evidence.length\n || new Set(value.proposals.map(ref => ref.id)).size !== value.proposals.length\n || value.proposals.length > value.evidence.length\n || request.taskIds && value.evidence.length !== request.taskIds.length)\n throw new OpenPondProtocolError(\"dataset_training_review_inventory_mismatch\", \"The Dataset review returned another example inventory.\");\n return value;\n}\n\nexport function createDatasetTrainingReviewClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async reviewDataset(input: DatasetTrainingReviewRequest) {\n const parsed = DatasetTrainingReviewRequestSchema.parse(input);\n return parseAndVerifyDatasetTrainingReviewReceipt(await request(\"/v1/training/dataset-reviews\", {\n method: \"POST\", body: canonicalJson(parsed),\n }), parsed);\n },\n };\n}\n","import { z } from \"zod\";\nimport { HostedModelProjectSummarySchema, ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(200);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingResultSaveRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResultSave.v1\"),\n teamId: Id, operationId: Id, name: z.string().trim().min(1).max(200),\n expectedModelRevision: z.number().int().positive(),\n submissionHash: Hash, artifact: ModelProjectImmutableRefSchema, checkpointId: Id,\n}).strict();\nexport type TrainingResultSaveRequest = z.infer<typeof TrainingResultSaveRequestSchema>;\nexport const TrainingResultSaveIntentSchema = TrainingResultSaveRequestSchema.omit({ operationId: true }).extend({ jobId: Id }).strict();\nexport const TrainingResultSaveCommandSchema = z.object({ jobId: Id, request: TrainingResultSaveRequestSchema }).strict();\nexport const TrainingResultSaveReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingResultSaveReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash,\n model: z.lazy(() => HostedModelProjectSummarySchema), version: z.lazy(() => TrainingModelVersionSchema),\n contentHash: Hash,\n}).strict();\nexport type TrainingResultSaveReceipt = z.infer<typeof TrainingResultSaveReceiptSchema>;\nexport const TrainingSavedModelQuerySchema = z.object({ teamId: Id }).strict();\nexport const TrainingSavedModelSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingSavedModel.v1\"), teamId: Id,\n model: z.lazy(() => HostedModelProjectSummarySchema), version: z.lazy(() => TrainingModelVersionSchema).nullable(),\n}).strict();\nexport async function parseAndVerifyTrainingSavedModel(raw: unknown, expected: { teamId: string; modelProjectId: string }) {\n const value = TrainingSavedModelSchema.parse(raw);\n if (value.teamId !== expected.teamId || value.model.teamId !== expected.teamId || value.model.id !== expected.modelProjectId)\n throw new OpenPondProtocolError(\"training_saved_model_mismatch\", \"The saved Model belongs to another workspace or configuration.\");\n if (value.version) {\n const version = await parseAndVerifyTrainingModelVersion(value.version, expected);\n if (version.portableProjectId !== value.model.portableProjectId)\n throw new OpenPondProtocolError(\"training_saved_model_mismatch\", \"The saved Model version belongs to another configuration.\");\n }\n return value;\n}\nexport async function parseAndVerifyTrainingResultSave(raw: unknown, expected: { jobId: string; request: TrainingResultSaveRequest; actorId?: string }) {\n const value = TrainingResultSaveReceiptSchema.parse(raw);\n const request = TrainingResultSaveRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value;\n const version = await parseAndVerifyTrainingModelVersion(value.version, { teamId: request.teamId, modelProjectId: value.model.id, jobId: expected.jobId });\n if (contentHash !== await canonicalSha256(content) || value.requestHash !== await canonicalSha256(request)\n || value.teamId !== request.teamId || value.model.teamId !== request.teamId\n || expected.actorId && value.actorId !== expected.actorId\n || value.operationId !== request.operationId || value.model.name !== request.name\n || value.model.revision !== request.expectedModelRevision + 1\n || value.model.portableProjectId !== version.portableProjectId\n || version.request.submissionHash !== request.submissionHash\n || version.candidate.artifact.id !== request.artifact.id || version.candidate.artifact.contentHash !== request.artifact.contentHash\n || version.candidate.checkpointId !== request.checkpointId)\n throw new OpenPondProtocolError(\"training_result_save_mismatch\", \"The saved Model differs from the reviewed training result or name.\");\n return value;\n}\nexport function createTrainingModelSaveClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async savedModel(modelProjectId: string, query: z.infer<typeof TrainingSavedModelQuerySchema>) {\n const id = Id.parse(modelProjectId), scope = TrainingSavedModelQuerySchema.parse(query);\n return parseAndVerifyTrainingSavedModel(await request(`/v1/training/models/${encodeURIComponent(id)}?${new URLSearchParams(scope)}`), { ...scope, modelProjectId: id });\n },\n async saveResultModel(jobId: string, raw: TrainingResultSaveRequest) {\n const id = Id.parse(jobId), body = TrainingResultSaveRequestSchema.parse(raw);\n return parseAndVerifyTrainingResultSave(await request(`/v1/training/jobs/${encodeURIComponent(id)}/model`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { jobId: id, request: body });\n } };\n}\n","import { ManagedServingUsageReviewResultSchema, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { TrainingServingPoolSchema } from \"./model-serving-pool.js\";\nexport { TrainingServingPoolSchema, MODEL_SERVING_IDLE_TIMEOUT_SECONDS } from \"./model-serving-pool.js\";\nimport { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { TrainingModelVersionSchema, parseAndVerifyTrainingModelVersion } from \"./training-result.js\";\nimport { TrainingModelServingControlSchema } from \"./training-model-serving-control.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Timestamp = z.string().datetime({ offset: true });\nexport const TrainingModelServingQuerySchema = z.object({ teamId: Id, versionHash: Hash }).strict();\nexport const TrainingServingVersionSchema = z.lazy(() => TrainingModelVersionSchema);\nexport const TrainingServingRegistrySchema = z.object({\n artifact: ModelProjectImmutableRefSchema, baseProfileId: Id, state: Id, qualified: z.boolean(), revoked: z.boolean(), deleted: z.boolean(),\n reason: z.enum([\"qualified\", \"evaluation_pending\", \"post_training_pending\", \"evaluation_failed\", \"candidate_rejected\", \"artifact_revoked\", \"artifact_deleted\", \"runtime_unavailable\"]),\n source: z.object({ jobId: Id, artifact: ModelProjectImmutableRefSchema, checkpointId: Id }).strict(),\n}).strict();\nexport const TrainingServingDeploymentSchema = z.object({\n id: Id, artifactId: Id, poolId: Id.nullable(), revision: z.number().int().positive(),\n state: z.enum([\"requested\", \"deploying\", \"ready\", \"degraded\", \"deleting\", \"deleted\", \"failed\"]),\n revoked: z.boolean(), lastReadyCheckAt: Timestamp.nullable(), updatedAt: Timestamp,\n}).strict();\nexport const TrainingServingBindingSchema = z.object({ id: Id, modelId: Id, artifactId: Id, deploymentId: Id, revision: z.number().int().positive() }).strict();\nexport const TrainingServingLoadEvidenceSchema = z.object({\n requestId: Id, receipt: ModelProjectImmutableRefSchema, artifact: ModelProjectImmutableRefSchema,\n deploymentId: Id, poolId: Id, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/), completedAt: Timestamp,\n}).strict();\nexport const TrainingModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServing.v1\"), teamId: Id, modelProjectId: Id, observedAt: Timestamp,\n version: TrainingServingVersionSchema, registry: TrainingServingRegistrySchema.nullable(),\n control: TrainingModelServingControlSchema.nullable(),\n cleanup: z.array(TrainingModelServingControlSchema).max(100),\n deployments: z.array(TrainingServingDeploymentSchema).max(100), pools: z.array(TrainingServingPoolSchema).max(100),\n bindings: z.array(TrainingServingBindingSchema).max(100), lastVerifiedInference: TrainingServingLoadEvidenceSchema.nullable(),\n state: z.enum([\"unpublished\", \"qualification_pending\", \"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const TrainingModelServingSchema = TrainingModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type TrainingModelServing = z.infer<typeof TrainingModelServingSchema>;\n\n/** Active means a routable, eligible deployment. Worker residency and provider\n * scale-to-zero are separate observations; a past inference is historical. */\nexport function trainingModelServingState(value: Pick<TrainingModelServing, \"registry\" | \"deployments\" | \"pools\" | \"bindings\" | \"control\">): TrainingModelServing[\"state\"] {\n if (value.control?.desiredState === \"stopped\") return value.control.phase === \"stopping\" ? \"retiring\" : value.bindings.length ? \"unavailable\" : \"inactive\";\n if (value.control?.phase === \"failed\") return \"unavailable\";\n if (!value.registry) return \"unpublished\";\n if (!value.registry.qualified) return [\"evaluation_pending\", \"post_training_pending\"].includes(value.registry.reason) ? \"qualification_pending\" : \"unavailable\";\n const pools = new Map(value.pools.map(pool => [pool.id, pool]));\n if (value.bindings.some(binding => value.deployments.some(deployment => deployment.id === binding.deploymentId\n && deployment.state === \"ready\" && !deployment.revoked && deployment.poolId\n && pools.get(deployment.poolId)?.state === \"ready\" && pools.get(deployment.poolId)?.endpointRecorded))) return \"active\";\n if (value.control?.desiredState === \"active\" && value.control.phase === \"starting\") return \"starting\";\n if (value.deployments.some(deployment => [\"requested\", \"deploying\"].includes(deployment.state)\n || deployment.poolId && [\"requested\", \"provisioning\"].includes(pools.get(deployment.poolId)?.state ?? \"\"))) return \"starting\";\n if (value.deployments.some(deployment => deployment.state === \"deleting\") || value.pools.some(pool => pool.state === \"deleting\")) return \"retiring\";\n return value.bindings.length ? \"unavailable\" : \"inactive\";\n}\n\nexport async function parseAndVerifyTrainingModelServing(raw: unknown, expected: { modelProjectId: string; teamId: string; versionHash: string }) {\n const value = TrainingModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"training\" }, value.control);\n await parseAndVerifyTrainingModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"training_model_serving_mismatch\", \"Serving evidence differs from the exact saved Model, registry or deployment.\"); }\n if (value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId || value.version.contentHash !== expected.versionHash\n || contentHash !== await canonicalSha256(content) || value.state !== trainingModelServingState(value)) fail();\n for (const rows of [value.deployments, value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n const registry = value.registry;\n const control = value.control;\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row =>\n row.teamId !== expected.teamId || row.modelProjectId !== expected.modelProjectId || row.desiredState !== \"stopped\")) fail();\n if (control && (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId\n || control.versionHash !== value.version.contentHash && !(control.desiredState === \"stopped\" && control.phase === \"stopped\")\n || control.desiredState === \"active\" && registry && (control.artifact.id !== registry.artifact.id || control.artifact.contentHash !== registry.artifact.contentHash))) fail();\n if (!registry) { if (value.deployments.length || value.pools.length || value.bindings.length || value.lastVerifiedInference) fail(); return value; }\n if (registry.source.jobId !== value.version.jobId || registry.source.checkpointId !== value.version.candidate.checkpointId\n || registry.source.artifact.id !== value.version.candidate.artifact.id || registry.source.artifact.contentHash !== value.version.candidate.artifact.contentHash\n || registry.qualified !== (registry.reason === \"qualified\")\n || registry.qualified && (registry.state !== \"promotable\" || registry.revoked || registry.deleted)) fail();\n const deployments = new Map(value.deployments.map(row => [row.id, row]));\n const pools = new Map(value.pools.map(row => [row.id, row]));\n if (value.deployments.some(row => row.artifactId !== registry.artifact.id || row.poolId && !pools.has(row.poolId))\n || value.bindings.some(row => row.artifactId !== registry.artifact.id || !deployments.has(row.deploymentId))\n || value.pools.some(pool => pool.workersMin > pool.workersMax || !value.deployments.some(row => row.poolId === pool.id))) fail();\n const evidence = value.lastVerifiedInference;\n if (evidence && (evidence.artifact.id !== registry.artifact.id || evidence.artifact.contentHash !== registry.artifact.contentHash\n || deployments.get(evidence.deploymentId)?.poolId !== evidence.poolId\n || pools.get(evidence.poolId)?.workerImageDigest !== evidence.workerImageDigest || evidence.receipt.id !== evidence.requestId)) fail();\n return value;\n}\n\nexport function createTrainingModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async modelServing(modelProjectId: string, raw: z.infer<typeof TrainingModelServingQuerySchema>) {\n const id = Id.parse(modelProjectId), query = TrainingModelServingQuerySchema.parse(raw);\n return parseAndVerifyTrainingModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`), { modelProjectId: id, ...query });\n } };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, managedServingUsageApprovalMatches } from \"./managed-serving-usage.js\";\nimport { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TrainingModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, artifact: ModelProjectImmutableRefSchema,\n actorId: Id, operationId: Id, revision: z.number().int().positive(),\n desiredState: z.enum([\"active\", \"stopped\"]), phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, deploymentId: Id, poolId: Id, idleTimeoutSeconds: z.number().int().min(60).max(3600),\n failureCode: Id.nullable(), updatedAt: z.string().datetime({ offset: true }),\n}).strict();\nexport type TrainingModelServingControl = z.infer<typeof TrainingModelServingControlSchema>;\nexport const TrainingModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.trainingModelServingControlRequest.v1\"), teamId: Id, operationId: Id,\n artifact: ModelProjectImmutableRefSchema,\n versionHash: Hash, expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type TrainingModelServingControlRequest = z.infer<typeof TrainingModelServingControlRequestSchema>;\nexport const TrainingModelServingControlIntentSchema = TrainingModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const TrainingModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: TrainingModelServingControlRequestSchema }).strict();\nexport const TrainingModelServingControlReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingModelServingControlReceipt.v1\"), teamId: Id, modelProjectId: Id,\n actorId: Id, request: TrainingModelServingControlRequestSchema, control: TrainingModelServingControlSchema, contentHash: Hash,\n}).strict();\nexport type TrainingModelServingControlReceipt = z.infer<typeof TrainingModelServingControlReceiptSchema>;\n\nexport async function parseAndVerifyTrainingModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: TrainingModelServingControlRequest; actorId?: string;\n}) {\n const value = TrainingModelServingControlReceiptSchema.parse(raw), request = TrainingModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || await canonicalSha256(value.request) !== await canonicalSha256(request)\n || value.modelProjectId !== expected.modelProjectId || value.teamId !== request.teamId\n || expected.actorId && value.actorId !== expected.actorId || control.actorId !== value.actorId\n || control.teamId !== request.teamId || control.modelProjectId !== value.modelProjectId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash\n || control.artifact.id !== request.artifact.id || control.artifact.contentHash !== request.artifact.contentHash\n || control.modelId !== `personalized:model:${expected.modelProjectId}`\n || control.revision !== request.expectedRevision + 1 || control.idleTimeoutSeconds !== request.idleTimeoutSeconds\n || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\")\n || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"training_model_serving_control_mismatch\", \"The serving command differs from its reviewed Model, version or action.\");\n return value;\n}\n\nexport function createTrainingModelServingControlClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return { async controlModelServing(modelProjectId: string, raw: TrainingModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = TrainingModelServingControlRequestSchema.parse(raw);\n return parseAndVerifyTrainingModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { modelProjectId: id, request: body });\n } };\n}\n","import { ManagedServingUsageApprovalSchema, ManagedServingUsageSnapshotSchema, ManagedServingUsageReviewResultSchema, managedServingUsageApprovalMatches, verifyManagedServingUsageBilling } from \"./managed-serving-usage.js\";\nimport { EngramModelServingSchema, parseAndVerifyEngramModelServing } from \"./engram-model-serving.js\";\nimport { DecisionModelServingSchema, parseAndVerifyDecisionModelServing } from \"./decision-model-serving.js\";\nimport { AlphaEditModelServingSchema, parseAndVerifyAlphaEditModelServing } from \"./alphaedit-model-serving.js\";\nimport { NeuronTrainingModelServingSchema, parseAndVerifyNeuronTrainingModelServing } from \"./neuron-training-model-serving.js\";\nimport { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { SteeringModelVersionSchema, parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { TrainingModelServingSchema, TrainingModelServingQuerySchema, TrainingServingPoolSchema,\n parseAndVerifyTrainingModelServing } from \"./training-model-serving.js\";\nimport { SteeringPublicationReferenceSchema, type SteeringPublicationReference } from \"./steering-model-selection.js\";\nimport { SteeringInferenceReceiptSchema, parseAndVerifyResolvedSteeringSelection } from \"./steering-inference.js\";\nexport * from \"./steering-model-selection.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst BindingRef = z.object({ id: Id, revision: z.number().int().positive() }).strict();\nconst Timestamp = z.iso.datetime();\n\nexport const SteeringModelServingControlRequestSchema = z.object({\n usageApproval: ManagedServingUsageApprovalSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServingControlRequest.v1\"),\n teamId: Id, operationId: Id, versionHash: Hash,\n expectedRevision: z.number().int().nonnegative(), action: z.enum([\"activate\", \"stop\"]),\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600),\n}).strict();\nexport type SteeringModelServingControlRequest = z.infer<typeof SteeringModelServingControlRequestSchema>;\nexport const SteeringModelServingControlIntentSchema = SteeringModelServingControlRequestSchema.omit({ operationId: true }).extend({ modelProjectId: Id }).strict();\nexport const SteeringModelServingControlCommandSchema = z.object({ modelProjectId: Id, request: SteeringModelServingControlRequestSchema }).strict();\n\nexport const SteeringModelServingControlSchema = z.object({\n usage: ManagedServingUsageSnapshotSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServingControl.v1\"),\n teamId: Id, modelProjectId: Id, versionHash: Hash, actorId: Id, operationId: Id,\n revision: z.number().int().positive(), defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n desiredState: z.enum([\"active\", \"stopped\"]),\n phase: z.enum([\"starting\", \"active\", \"stopping\", \"stopped\", \"failed\"]),\n capacityState: z.enum([\"pending\", \"shared\", \"retiring\", \"released\"]),\n modelId: Id, poolId: Id.nullable(), binding: BindingRef.nullable(),\n activeRequests: z.number().int().nonnegative(), unsettledRequests: z.number().int().nonnegative(),\n idleTimeoutSeconds: z.number().int().min(60).max(3600), failureCode: Id.nullable(), updatedAt: Timestamp,\n}).strict();\nexport type SteeringModelServingControl = z.infer<typeof SteeringModelServingControlSchema>;\n\nexport const SteeringServingBindingSchema = z.object({\n id: Id, revision: z.number().int().positive(), modelId: Id, poolId: Id, versionHash: Hash,\n}).strict();\nexport const SteeringServingAvailabilitySchema = z.object({\n state: z.enum([\"qualified\", \"unavailable\"]),\n reason: z.enum([\"qualified\", \"runtime_unavailable\", \"calibration_unavailable\", \"profile_archived\", \"model_mismatch\"]),\n runtimeHash: Hash.nullable(),\n}).strict();\nexport const SteeringModelServingContentSchema = z.object({\n usageBilling: ManagedServingUsageReviewResultSchema.optional(),\n schemaVersion: z.literal(\"openpond.steeringModelServing.v1\"),\n teamId: Id, modelProjectId: Id, observedAt: Timestamp, version: SteeringModelVersionSchema,\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n availability: SteeringServingAvailabilitySchema,\n control: SteeringModelServingControlSchema.nullable(), cleanup: z.array(SteeringModelServingControlSchema).max(100),\n pools: z.array(TrainingServingPoolSchema).max(100), bindings: z.array(SteeringServingBindingSchema).max(100),\n lastVerifiedInference: SteeringInferenceReceiptSchema.nullable(),\n state: z.enum([\"unavailable\", \"inactive\", \"starting\", \"active\", \"retiring\"]),\n}).strict();\nexport const SteeringModelServingSchema = SteeringModelServingContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringModelServing = z.infer<typeof SteeringModelServingSchema>;\nexport const SavedModelServingSchema = z.discriminatedUnion(\"schemaVersion\", [TrainingModelServingSchema, SteeringModelServingSchema, EngramModelServingSchema, DecisionModelServingSchema, AlphaEditModelServingSchema, NeuronTrainingModelServingSchema]);\nexport type SavedModelServing = z.infer<typeof SavedModelServingSchema>;\nexport const SavedModelServingQuerySchema = TrainingModelServingQuerySchema;\n\nexport const SteeringModelServingControlReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringModelServingControlReceipt.v1\"),\n teamId: Id, modelProjectId: Id, actorId: Id,\n request: SteeringModelServingControlRequestSchema, version: SteeringModelVersionSchema,\n control: SteeringModelServingControlSchema,\n}).strict();\nexport const SteeringModelServingControlReceiptSchema = SteeringModelServingControlReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringModelServingControlReceipt = z.infer<typeof SteeringModelServingControlReceiptSchema>;\n\nfunction sameRef(a: SteeringPublicationReference | null, b: SteeringPublicationReference | null) { return canonicalJson(a) === canonicalJson(b); }\nfunction publicationRef(version: z.infer<typeof SteeringModelVersionSchema>): SteeringPublicationReference {\n const { id, revision, contentHash } = version.publication;\n return { id, revision, contentHash };\n}\nfunction validControl(value: SteeringModelServingControl) {\n return value.modelId === `personalized:model:${value.modelProjectId}`\n && (!value.binding || value.poolId !== null)\n && (value.phase !== \"active\" || value.desiredState === \"active\" && value.poolId !== null && value.binding !== null\n && [\"pending\", \"shared\"].includes(value.capacityState))\n && (value.phase !== \"stopping\" || value.desiredState === \"stopped\")\n && (value.capacityState !== \"released\" || !value.binding && value.activeRequests === 0 && value.unsettledRequests === 0)\n && (value.phase !== \"stopped\" || value.desiredState === \"stopped\" && !value.binding\n && value.activeRequests === 0 && value.unsettledRequests === 0 && [\"shared\", \"released\"].includes(value.capacityState));\n}\n\nexport function steeringModelServingState(value: Pick<SteeringModelServing, \"availability\" | \"control\" | \"cleanup\" | \"pools\" | \"bindings\">): SteeringModelServing[\"state\"] {\n const control = value.control;\n if (control?.phase === \"stopping\" || value.cleanup.some(row => row.phase !== \"stopped\" || ![\"shared\", \"released\"].includes(row.capacityState))) return \"retiring\";\n if (value.availability.state !== \"qualified\" || control?.phase === \"failed\") return \"unavailable\";\n if (!control || control.desiredState === \"stopped\") return value.bindings.length ? \"unavailable\" : \"inactive\";\n const binding = control.binding;\n if (control.phase === \"active\" && binding && value.bindings.some(row => row.id === binding.id && row.revision === binding.revision\n && row.poolId === control.poolId && value.pools.some(pool => pool.id === row.poolId && pool.state === \"ready\" && pool.endpointRecorded))) return \"active\";\n return control.phase === \"starting\" ? \"starting\" : \"unavailable\";\n}\n\nexport async function parseAndVerifySteeringModelServingControl(raw: unknown, expected: {\n modelProjectId: string; request: SteeringModelServingControlRequest; actorId?: string;\n}) {\n const value = SteeringModelServingControlReceiptSchema.parse(raw), request = SteeringModelServingControlRequestSchema.parse(expected.request);\n const { contentHash, ...content } = value, control = value.control;\n await parseAndVerifySavedModelVersion(value.version, { teamId: request.teamId, modelProjectId: expected.modelProjectId });\n if (!managedServingUsageApprovalMatches(request, control) || contentHash !== await canonicalSha256(content) || canonicalJson(value.request) !== canonicalJson(request)\n || value.teamId !== request.teamId || value.modelProjectId !== expected.modelProjectId || expected.actorId && value.actorId !== expected.actorId\n || value.version.contentHash !== request.versionHash || request.defaultPublication !== null && !sameRef(request.defaultPublication, publicationRef(value.version))\n || control.teamId !== value.teamId || control.modelProjectId !== value.modelProjectId || control.actorId !== value.actorId\n || control.operationId !== request.operationId || control.versionHash !== request.versionHash || control.revision !== request.expectedRevision + 1\n || control.idleTimeoutSeconds !== request.idleTimeoutSeconds || !sameRef(control.defaultPublication, request.defaultPublication)\n || control.desiredState !== (request.action === \"activate\" ? \"active\" : \"stopped\") || !validControl(control)\n || request.action === \"activate\" && ![\"starting\", \"active\"].includes(control.phase)\n || request.action === \"stop\" && ![\"stopping\", \"stopped\"].includes(control.phase))\n throw new OpenPondProtocolError(\"steering_serving_control_mismatch\", \"The serving receipt differs from the exact saved steering Model, default or original command.\");\n return value;\n}\n\nexport async function parseAndVerifySteeringModelServing(raw: unknown, expected: { teamId: string; modelProjectId: string; versionHash: string }) {\n const value = SteeringModelServingSchema.parse(raw), { contentHash, ...content } = value;\n await verifyManagedServingUsageBilling(value.usageBilling, { ...expected, method: \"steering\" }, value.control);\n await parseAndVerifySavedModelVersion(value.version, expected);\n function fail(): never { throw new OpenPondProtocolError(\"steering_model_serving_mismatch\", \"The serving evidence differs from the exact saved steering Model or retained capacity.\"); }\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.modelProjectId !== expected.modelProjectId\n || value.version.contentHash !== expected.versionHash || value.defaultPublication !== null && !sameRef(value.defaultPublication, publicationRef(value.version))\n || value.state !== steeringModelServingState(value) || (value.availability.state === \"qualified\") !== (value.availability.reason === \"qualified\")\n || value.availability.state === \"qualified\" && value.availability.runtimeHash === null) fail();\n for (const rows of [value.pools, value.bindings]) if (new Set(rows.map(row => row.id)).size !== rows.length) fail();\n for (const control of [...value.cleanup, ...(value.control ? [value.control] : [])]) {\n if (control.teamId !== expected.teamId || control.modelProjectId !== expected.modelProjectId || !validControl(control)) fail();\n }\n if (new Set(value.cleanup.map(row => row.operationId)).size !== value.cleanup.length || value.cleanup.some(row => row.desiredState !== \"stopped\")) fail();\n const control = value.control;\n if (control && (control.versionHash !== expected.versionHash && !(control.phase === \"stopped\" && control.desiredState === \"stopped\")\n || control.versionHash === expected.versionHash && !sameRef(control.defaultPublication, value.defaultPublication))) fail();\n if (value.bindings.some(row => row.versionHash !== expected.versionHash || row.modelId !== `personalized:model:${expected.modelProjectId}`\n || !value.pools.some(pool => pool.id === row.poolId))) fail();\n if (control?.binding && !value.bindings.some(row => row.id === control.binding!.id && row.revision === control.binding!.revision\n && row.poolId === control.poolId && row.modelId === control.modelId)) fail();\n if (value.pools.some(pool => pool.workersMin > pool.workersMax)) fail();\n const inference = value.lastVerifiedInference;\n if (inference) {\n const { contentHash: hash, ...receipt } = inference;\n await parseAndVerifyResolvedSteeringSelection(inference.selection, {\n ...(inference.selection.savedModel === null ? {} : { savedModel: inference.selection.savedModel }),\n ...(inference.selection.requested === \"inherit\" ? {} : { steering: inference.selection.requested === \"off\" ? null : inference.selection.effectivePublication }),\n });\n const knownPublication = publicationRef(value.version), profile = value.version.publication.profile;\n const calibration = profile.normalization.mode === \"fixed_residual_reference\" ? profile.normalization.calibration : null;\n if (inference.selection.defaultPublication !== null && !sameRef(inference.selection.defaultPublication, knownPublication)\n || sameRef(inference.selection.effectivePublication, knownPublication) && (inference.selection.profileHash !== profile.contentHash\n || canonicalJson(inference.selection.calibration) !== canonicalJson(calibration))) fail();\n if (hash !== await canonicalSha256(receipt) || inference.teamId !== expected.teamId || inference.selection.savedModel?.modelProjectId !== expected.modelProjectId\n || inference.selection.savedModel.versionHash !== expected.versionHash\n || inference.selection.modelHash !== await canonicalSha256(value.version.publication.profile.model)\n || value.pools.some(pool => pool.id === inference.poolId && pool.workerImageDigest !== inference.workerImageDigest)) fail();\n }\n return value;\n}\n\nexport async function parseAndVerifySavedModelServing(raw: unknown, expected: { teamId: string; modelProjectId: string; versionHash: string }): Promise<SavedModelServing> {\n const value = SavedModelServingSchema.parse(raw);\n if (value.schemaVersion === \"openpond.alphaEditModelServing.v1\") return parseAndVerifyAlphaEditModelServing(value, expected);\n if (value.schemaVersion === \"openpond.neuronTrainingModelServing.v1\") return parseAndVerifyNeuronTrainingModelServing(value, expected);\n return value.schemaVersion === \"openpond.trainingModelServing.v1\"\n ? parseAndVerifyTrainingModelServing(value, expected) : value.schemaVersion === \"openpond.engramModelServing.v1\"\n ? parseAndVerifyEngramModelServing(value, expected) : value.schemaVersion === \"openpond.decisionModelServing.v1\"\n ? parseAndVerifyDecisionModelServing(value, expected) : parseAndVerifySteeringModelServing(value, expected);\n}\n\nexport function createSavedModelServingClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async savedModelServing(modelProjectId: string, raw: z.infer<typeof SavedModelServingQuerySchema>) {\n const id = Id.parse(modelProjectId), query = SavedModelServingQuerySchema.parse(raw);\n return parseAndVerifySavedModelServing(await request(`/v1/training/models/${encodeURIComponent(id)}/serving?${new URLSearchParams(query)}`), { modelProjectId: id, ...query });\n },\n async controlSteeringModelServing(modelProjectId: string, raw: SteeringModelServingControlRequest) {\n const id = Id.parse(modelProjectId), body = SteeringModelServingControlRequestSchema.parse(raw);\n return parseAndVerifySteeringModelServingControl(await request(`/v1/training/models/${encodeURIComponent(id)}/serving`, {\n method: \"POST\", body: JSON.stringify(body),\n }), { modelProjectId: id, request: body });\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { SavedSteeringModelSelectionSchema, SteeringPublicationReferenceSchema,\n type SavedSteeringModelSelection } from \"./steering-model-selection.js\";\nimport { SteeringModelVersionSchema, parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { NeuronSteeringReferenceSchema } from \"./neuron-steering.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Id = z.string().trim().min(1).max(500);\n\n/** Absence inherits the admitted default; null explicitly disables steering.\n * Never normalize either case into the other before hashing a request. */\nexport const SteeringInferenceOptionsSchema = z.object({\n savedModel: SavedSteeringModelSelectionSchema.optional(),\n steering: SteeringPublicationReferenceSchema.nullable().optional(),\n}).strict();\nexport type SteeringInferenceOptions = z.infer<typeof SteeringInferenceOptionsSchema>;\n\nexport async function savedSteeringModelSelection(raw: unknown): Promise<SavedSteeringModelSelection> {\n const version = SteeringModelVersionSchema.parse(raw);\n await parseAndVerifySavedModelVersion(version);\n return { modelProjectId: version.modelProjectId, versionHash: version.contentHash };\n}\n\nexport const ResolvedSteeringSelectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.resolvedSteeringSelection.v1\"),\n requested: z.enum([\"inherit\", \"off\", \"override\"]),\n savedModel: SavedSteeringModelSelectionSchema.nullable(),\n defaultPublication: SteeringPublicationReferenceSchema.nullable(),\n effectivePublication: SteeringPublicationReferenceSchema.nullable(),\n profileHash: Hash.nullable(), modelHash: Hash,\n calibration: NeuronSteeringReferenceSchema.nullable(),\n}).strict();\nexport type ResolvedSteeringSelection = z.infer<typeof ResolvedSteeringSelectionSchema>;\n\nexport async function parseAndVerifyResolvedSteeringSelection(raw: unknown, options: SteeringInferenceOptions) {\n const value = ResolvedSteeringSelectionSchema.parse(raw), request = SteeringInferenceOptionsSchema.parse(options);\n const mode = request.steering === undefined ? \"inherit\" : request.steering === null ? \"off\" : \"override\";\n const effective = mode === \"inherit\" ? value.defaultPublication : request.steering ?? null;\n if (value.requested !== mode || request.savedModel && canonicalJson(value.savedModel) !== canonicalJson(request.savedModel)\n || canonicalJson(value.effectivePublication) !== canonicalJson(effective)\n || (value.effectivePublication === null) !== (value.profileHash === null)\n || value.effectivePublication === null && value.calibration !== null)\n throw new OpenPondProtocolError(\"steering_selection_mismatch\", \"The admitted steering selection differs from the exact request and default.\");\n return value;\n}\n\n/** A completed runner observation, separate from admission. Hosts must require\n * their authenticated worker proof before constructing this receipt. */\nexport const SteeringInferenceReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.steeringInferenceReceipt.v1\"),\n teamId: Id, requestId: Id, requestHash: Hash, selection: ResolvedSteeringSelectionSchema,\n poolId: Id, routingBinding: z.object({ id: Id, revision: z.number().int().positive() }).strict().nullable(),\n runtimeHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n engineGeneration: z.number().int().positive(), cacheNamespace: Hash,\n completedAt: z.iso.datetime(),\n}).strict();\nexport const SteeringInferenceReceiptSchema = SteeringInferenceReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type SteeringInferenceReceipt = z.infer<typeof SteeringInferenceReceiptSchema>;\n\nexport async function parseAndVerifySteeringInferenceReceipt(raw: unknown, expected: {\n teamId: string; requestId: string; requestHash: string; options: SteeringInferenceOptions;\n selection: ResolvedSteeringSelection; runtimeHash: string;\n poolId: string; routingBinding: { id: string; revision: number } | null;\n workerImageDigest: string; engineGeneration: number; cacheNamespace: string;\n}) {\n const value = SteeringInferenceReceiptSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyResolvedSteeringSelection(value.selection, expected.options);\n if (contentHash !== await canonicalSha256(content) || value.teamId !== expected.teamId || value.requestId !== expected.requestId\n || value.requestHash !== expected.requestHash || canonicalJson(value.selection) !== canonicalJson(expected.selection)\n || value.poolId !== expected.poolId || canonicalJson(value.routingBinding) !== canonicalJson(expected.routingBinding)\n || value.runtimeHash !== expected.runtimeHash || value.workerImageDigest !== expected.workerImageDigest\n || value.engineGeneration !== expected.engineGeneration || value.cacheNamespace !== expected.cacheNamespace)\n throw new OpenPondProtocolError(\"steering_inference_receipt_mismatch\", \"The completed inference differs from its admitted steering, runtime or cache identity.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { ActivationReferencePromptSchema } from \"./activation-reference.js\";\nimport { NeuronSteeringModelSchema, NeuronResidualCalibrationSchema,\n parseAndVerifyNeuronResidualCalibration } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n/** One unsteered forward over an explicit tokenized source. No result scales\n * or profile publication evidence are accepted as a calibration source. */\nexport const NeuronResidualCalibrationRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibrationRequest.v1\"),\n id: Id, revision: z.number().int().positive(), model: NeuronSteeringModelSchema,\n prompt: ActivationReferencePromptSchema,\n layers: z.array(z.number().int().nonnegative().max(511)).min(1).max(512),\n maximumForwardTokenWork: z.number().int().positive().max(1_000_000),\n maximumDurationSeconds: z.number().finite().positive().max(300),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.layers).size !== value.layers.length || value.layers.some(layer => layer >= value.model.intermediateSizes.length))\n ctx.addIssue({ code: \"custom\", path: [\"layers\"], message: \"Use unique layers inside the exact model.\" });\n if (value.prompt.attentionMask.filter(Boolean).length < 2)\n ctx.addIssue({ code: \"custom\", path: [\"prompt\"], message: \"Calibration requires a visible token after position zero.\" });\n if (value.prompt.tokenIds.length > value.maximumForwardTokenWork)\n ctx.addIssue({ code: \"custom\", path: [\"maximumForwardTokenWork\"], message: \"The complete unsteered forward exceeds its declared budget.\" });\n});\nexport type NeuronResidualCalibrationRequest = z.infer<typeof NeuronResidualCalibrationRequestSchema>;\n\nexport const NeuronResidualCalibrationExportContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronResidualCalibrationExport.v1\"),\n model: NeuronSteeringModelSchema, prompt: ActivationReferencePromptSchema,\n calibration: NeuronResidualCalibrationSchema,\n runtime: z.object({ implementation: z.literal(\"torch_dense_serial_calibration_v1\"), implementationHash: Hash,\n torchVersion: Id, device: Id }).strict(),\n}).strict();\nexport const NeuronResidualCalibrationExportSchema = NeuronResidualCalibrationExportContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronResidualCalibrationExport = z.infer<typeof NeuronResidualCalibrationExportSchema>;\n\nexport async function parseAndVerifyNeuronResidualCalibrationExport(raw: unknown, expected?: NeuronResidualCalibrationRequest) {\n const value = NeuronResidualCalibrationExportSchema.parse(raw), { contentHash, ...content } = value;\n const calibration = await parseAndVerifyNeuronResidualCalibration(value.calibration, value.model);\n const sourceHash = await canonicalSha256(value.prompt), samples = value.prompt.attentionMask.filter(Boolean).length - 1;\n let mismatch = contentHash !== await canonicalSha256(content) || samples <= 0\n || calibration.source.id !== value.prompt.id || calibration.source.contentHash !== sourceHash\n || calibration.layers.some(layer => layer.sampleCount !== samples);\n if (expected) {\n const request = NeuronResidualCalibrationRequestSchema.parse(expected);\n mismatch ||= canonicalJson(value.model) !== canonicalJson(request.model) || canonicalJson(value.prompt) !== canonicalJson(request.prompt)\n || calibration.id !== request.id || calibration.revision !== request.revision\n || canonicalJson(calibration.layers.map(row => row.layer).sort((a, b) => a - b)) !== canonicalJson([...request.layers].sort((a, b) => a - b));\n }\n if (mismatch) throw new OpenPondProtocolError(\"neuron_calibration_export_mismatch\", \"The original residual calibration differs from its exact measured model, tokenized source or layers.\");\n return value;\n}\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { NeuronResidualCalibrationExportSchema, parseAndVerifyNeuronResidualCalibrationExport } from \"./neuron-residual-calibration.js\";\nimport { NeuronSteeringReferenceSchema } from \"./neuron-steering.js\";\n\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Name = z.string().trim().min(1).max(200);\nconst Timestamp = z.iso.datetime();\n\n/** Custody proves the retained original bytes and scope. Qualification is a\n * separate runtime authority decision, never granted by importing an export. */\nexport const NeuronCalibrationRecordContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationRecord.v1\"),\n teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: Name,\n artifact: NeuronResidualCalibrationExportSchema,\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: Timestamp, updatedAt: Timestamp,\n}).strict();\nexport const NeuronCalibrationRecordSchema = NeuronCalibrationRecordContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationRecord = z.infer<typeof NeuronCalibrationRecordSchema>;\nexport const NeuronCalibrationImportRequestSchema = z.object({\n teamId: Id, operationId: Id, projectId: Id.nullable(), name: Name,\n artifact: NeuronResidualCalibrationExportSchema,\n}).strict();\nexport type NeuronCalibrationImportRequest = z.infer<typeof NeuronCalibrationImportRequestSchema>;\nexport const NeuronCalibrationReadQuerySchema = z.object({ teamId: Id }).strict();\nexport const NeuronCalibrationArchiveRequestSchema = z.object({\n teamId: Id, operationId: Id, expectedRevision: z.number().int().positive(), contentHash: Hash,\n}).strict();\nexport type NeuronCalibrationArchiveRequest = z.infer<typeof NeuronCalibrationArchiveRequestSchema>;\nexport const NeuronCalibrationReceiptContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationReceipt.v1\"),\n teamId: Id, actorId: Id, operationId: Id, requestHash: Hash, record: NeuronCalibrationRecordSchema,\n}).strict();\nexport const NeuronCalibrationReceiptSchema = NeuronCalibrationReceiptContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationReceipt = z.infer<typeof NeuronCalibrationReceiptSchema>;\n\nexport const NeuronCalibrationListQuerySchema = z.object({\n projectId: Id.optional(), modelHash: Hash.optional(), archived: z.boolean().default(false),\n limit: z.number().int().min(1).max(100).default(25), cursor: z.string().min(1).max(2048).optional(),\n}).strict();\nexport const NeuronCalibrationSummarySchema = z.object({\n reference: NeuronSteeringReferenceSchema, teamId: Id, ownerUserId: Id, projectId: Id.nullable(), name: Name,\n exportHash: Hash, modelHash: Hash, source: z.object({ id: Id, contentHash: Hash }).strict(),\n implementationHash: Hash, layerCount: z.number().int().min(1).max(512),\n revision: z.number().int().positive(), archived: z.boolean(), createdAt: Timestamp, updatedAt: Timestamp,\n}).strict();\nexport const NeuronCalibrationPageContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.neuronCalibrationPage.v1\"), teamId: Id, ownerUserId: Id,\n query: NeuronCalibrationListQuerySchema, items: z.array(NeuronCalibrationSummarySchema).max(100),\n nextCursor: z.string().min(1).max(2048).nullable(),\n}).strict();\nexport const NeuronCalibrationPageSchema = NeuronCalibrationPageContentSchema.extend({ contentHash: Hash }).strict();\nexport type NeuronCalibrationPage = z.infer<typeof NeuronCalibrationPageSchema>;\n\nexport async function parseAndVerifyNeuronCalibrationRecord(raw: unknown, expected: { teamId?: string; ownerUserId?: string; id?: string } = {}) {\n const value = NeuronCalibrationRecordSchema.parse(raw), { contentHash, ...content } = value;\n await parseAndVerifyNeuronResidualCalibrationExport(value.artifact);\n if (contentHash !== await canonicalSha256(content) || expected.teamId && value.teamId !== expected.teamId\n || expected.ownerUserId && value.ownerUserId !== expected.ownerUserId || expected.id && value.artifact.calibration.id !== expected.id)\n throw new OpenPondProtocolError(\"neuron_calibration_record_mismatch\", \"The original calibration record differs from its artifact or authorized workspace.\");\n return value;\n}\n\nexport async function parseAndVerifyNeuronCalibrationReceipt(raw: unknown, request: NeuronCalibrationImportRequest | NeuronCalibrationArchiveRequest, id?: string) {\n const value = NeuronCalibrationReceiptSchema.parse(raw), { contentHash, ...content } = value;\n const importing = \"artifact\" in request;\n const parsed = importing ? NeuronCalibrationImportRequestSchema.parse(request) : NeuronCalibrationArchiveRequestSchema.parse(request);\n await parseAndVerifyNeuronCalibrationRecord(value.record, { teamId: parsed.teamId, ownerUserId: value.actorId, id });\n if (contentHash !== await canonicalSha256(content) || value.teamId !== parsed.teamId || value.operationId !== parsed.operationId\n || value.requestHash !== await canonicalSha256(importing ? parsed : { id, request: parsed }))\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"Retry the original calibration custody command.\");\n if (\"artifact\" in parsed) {\n if (canonicalJson(value.record.artifact) !== canonicalJson(parsed.artifact) || value.record.projectId !== parsed.projectId\n || value.record.name !== parsed.name || value.record.archived || value.record.revision !== 1)\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"The imported record differs from the original measured export.\");\n } else if (!value.record.archived || value.record.revision !== parsed.expectedRevision + 1 || value.record.artifact.contentHash !== parsed.contentHash) {\n throw new OpenPondProtocolError(\"neuron_calibration_receipt_mismatch\", \"The archive differs from the original artifact and record revision.\");\n }\n return value;\n}\n\nexport function createNeuronCalibrationClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async importNeuronCalibration(raw: NeuronCalibrationImportRequest) {\n const body = NeuronCalibrationImportRequestSchema.parse(raw);\n await parseAndVerifyNeuronResidualCalibrationExport(body.artifact);\n return parseAndVerifyNeuronCalibrationReceipt(await request(\"/v1/training/neuron-calibrations\", {\n method: \"POST\", body: JSON.stringify(body),\n }), body);\n },\n async getNeuronCalibration(teamId: string, id: string) {\n const scope = Id.parse(teamId), key = Id.parse(id);\n return parseAndVerifyNeuronCalibrationRecord(await request(`/v1/training/neuron-calibrations/${encodeURIComponent(key)}?${new URLSearchParams({ teamId: scope })}`), { teamId: scope, id: key });\n },\n async archiveNeuronCalibration(id: string, raw: NeuronCalibrationArchiveRequest) {\n const key = Id.parse(id), body = NeuronCalibrationArchiveRequestSchema.parse(raw);\n return parseAndVerifyNeuronCalibrationReceipt(await request(`/v1/training/neuron-calibrations/${encodeURIComponent(key)}/archive`, {\n method: \"POST\", body: JSON.stringify(body),\n }), body, key);\n },\n async listNeuronCalibrations(teamId: string, raw: z.input<typeof NeuronCalibrationListQuerySchema> = {}) {\n const scope = Id.parse(teamId), query = Object.fromEntries(Object.entries(NeuronCalibrationListQuerySchema.parse(raw)).filter(([, value]) => value !== undefined)) as z.infer<typeof NeuronCalibrationListQuerySchema>, params = new URLSearchParams({ teamId: scope });\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = NeuronCalibrationPageSchema.parse(await request(`/v1/training/neuron-calibrations?${params}`)), { contentHash, ...content } = page;\n if (page.teamId !== scope || canonicalJson(page.query) !== canonicalJson(query) || contentHash !== await canonicalSha256(content)\n || page.items.length > query.limit || new Set(page.items.map(row => row.reference.id)).size !== page.items.length\n || page.nextCursor !== null && (page.items.length !== query.limit || page.nextCursor === query.cursor))\n throw new OpenPondProtocolError(\"neuron_calibration_page_mismatch\", \"Refresh calibration history in its original workspace.\");\n for (const [index, row] of page.items.entries()) if (row.teamId !== scope || row.ownerUserId !== page.ownerUserId\n || row.archived !== query.archived || query.projectId && row.projectId !== query.projectId || query.modelHash && row.modelHash !== query.modelHash\n || index && page.items[index - 1]!.reference.id >= row.reference.id)\n throw new OpenPondProtocolError(\"neuron_calibration_page_mismatch\", \"Calibration history returned a different creator or source scope.\");\n return page;\n },\n };\n}\n","import { canonicalJson } from \"./protocol.js\";\nimport {\n parseAndVerifyActivationReferenceRequest,\n parseAndVerifyActivationReferenceResult,\n type ActivationReferenceRequest,\n type ActivationReferenceResult,\n} from \"./activation-reference.js\";\n\nexport type ActivationComparisonVariant = ActivationReferenceRequest[\"variants\"][number];\ntype Capture = ActivationReferenceResult[\"captures\"][number];\n\nconst difference = (candidate: number, reference: number) => {\n const value = candidate - reference;\n return Number.isFinite(value) ? value : null;\n};\n\n/** A dose difference is meaningful only when all other intervention inputs agree. */\nexport function activationDoseComparison(\n reference: ActivationComparisonVariant,\n candidate: ActivationComparisonVariant,\n) {\n const a = reference.profile,\n b = candidate.profile;\n const settings = (profile: NonNullable<ActivationComparisonVariant[\"profile\"]>) => {\n const { entries, contentHash: _, ...rest } = profile;\n return canonicalJson({\n ...rest,\n coordinates: entries.map(({ layer, neuron }) => `${layer}:${neuron}`).sort(),\n });\n };\n const reason =\n a && b && settings(a) !== settings(b)\n ? \"Dose differences unavailable: model, hook, normalization, token scope or targeted coordinates differ.\"\n : null;\n const coordinates = new Map<\n string,\n { layer: number; neuron: number; reference: number | null; candidate: number | null }\n >();\n for (const [profile, side] of [\n [a, \"reference\"],\n [b, \"candidate\"],\n ] as const) {\n for (const entry of profile?.entries ?? []) {\n const key = `${entry.layer}:${entry.neuron}`;\n const row = coordinates.get(key) ?? {\n layer: entry.layer,\n neuron: entry.neuron,\n reference: a === null ? 0 : null,\n candidate: b === null ? 0 : null,\n };\n row[side] = entry.dose;\n coordinates.set(key, row);\n }\n }\n return {\n reason,\n rows: [...coordinates.values()]\n .sort((x, y) => x.layer - y.layer || x.neuron - y.neuron)\n .map((row) => ({\n ...row,\n difference:\n !reason && row.reference !== null && row.candidate !== null\n ? difference(row.candidate, row.reference)\n : null,\n })),\n };\n}\n\n/** Both inputs are from the same SDK-verified request/result. Never align a\n * generated capture after its causal token prefix diverges, even if it rejoins. */\nexport function activationResultComparison(\n request: ActivationReferenceRequest,\n result: ActivationReferenceResult,\n referenceId: string,\n candidateId: string,\n promptId: string | null,\n) {\n const captureKey = (row: Pick<Capture, \"promptId\" | \"tokenIndex\" | \"layer\" | \"neuron\">) =>\n JSON.stringify([row.promptId, row.tokenIndex, row.layer, row.neuron]);\n const referenceCaptures = new Map<string, Capture>(),\n candidateCaptures = new Map<string, Capture>();\n for (const row of result.captures) {\n if (row.variantId === referenceId) referenceCaptures.set(captureKey(row), row);\n if (row.variantId === candidateId) candidateCaptures.set(captureKey(row), row);\n }\n const outcomes = new Map(\n result.outcomes.map((row) => [JSON.stringify([row.promptId, row.variantId]), row]),\n );\n const prompts = request.prompts.filter((row) => promptId === null || row.id === promptId);\n const pairs = prompts.map((prompt) => {\n const reference = outcomes.get(JSON.stringify([prompt.id, referenceId])),\n candidate = outcomes.get(JSON.stringify([prompt.id, candidateId]));\n const inputTokenIds = prompt.tokenIds.filter((_, index) => prompt.attentionMask[index] === 1);\n const a = reference ? inputTokenIds.concat(reference.generatedTokenIds) : [],\n b = candidate ? inputTokenIds.concat(candidate.generatedTokenIds) : [];\n let sharedPrefix = 0;\n while (sharedPrefix < Math.min(a.length, b.length) && a[sharedPrefix] === b[sharedPrefix])\n sharedPrefix++;\n const generatedPrefix = Math.max(0, sharedPrefix - inputTokenIds.length);\n const generatedStatus: \"missing_outcome\" | \"identical\" | \"different\" =\n !reference || !candidate\n ? \"missing_outcome\"\n : reference.generatedTokenIds.length === candidate.generatedTokenIds.length &&\n generatedPrefix === reference.generatedTokenIds.length\n ? \"identical\"\n : \"different\";\n return {\n prompt,\n reference,\n candidate,\n inputTokenIds,\n referenceTokenIds: a,\n candidateTokenIds: b,\n sharedPrefix,\n generatedStatus,\n generatedDifferencePosition: generatedStatus === \"different\" ? generatedPrefix : null,\n };\n });\n const captures = pairs.flatMap((pair) => {\n // Enumerate requested coordinates as well as retained captures so absence\n // cannot disappear from the comparison table.\n const length = Math.max(\n pair.referenceTokenIds.length,\n pair.candidateTokenIds.length,\n pair.inputTokenIds.length,\n );\n const rows = [];\n for (let tokenIndex = 0; tokenIndex < length; tokenIndex++)\n for (const coordinate of request.capture)\n for (const neuron of coordinate.neurons) {\n const key = captureKey({\n promptId: pair.prompt.id,\n tokenIndex,\n layer: coordinate.layer,\n neuron,\n });\n const reference = referenceCaptures.get(key),\n candidate = candidateCaptures.get(key);\n const status: ActivationCaptureAlignment =\n !reference || !candidate\n ? !reference && !candidate\n ? \"missing_both\"\n : !reference\n ? \"missing_reference\"\n : \"missing_candidate\"\n : tokenIndex >= pair.sharedPrefix\n ? \"incompatible_context\"\n : \"aligned\";\n rows.push({\n key,\n promptId: pair.prompt.id,\n tokenIndex,\n phase: tokenIndex < pair.inputTokenIds.length ? \"Prompt\" : \"Generated\",\n layer: coordinate.layer,\n neuron,\n reference,\n candidate,\n status,\n difference:\n status === \"aligned\" ? difference(candidate!.after, reference!.after) : null,\n });\n }\n return rows;\n });\n return { pairs, captures, aligned: captures.filter((row) => row.status === \"aligned\").length };\n}\n\n/** Headless entry point for untrusted retained bytes. Console uses the pure\n * projection after its existing execution client has already verified them. */\nexport async function verifyAndCompareActivationReferenceResult(\n request: ActivationReferenceRequest,\n raw: unknown,\n referenceId: string,\n candidateId: string,\n promptId: string | null = null,\n) {\n const input = await parseAndVerifyActivationReferenceRequest(request);\n const result = await parseAndVerifyActivationReferenceResult(raw, input);\n return activationResultComparison(input, result, referenceId, candidateId, promptId);\n}\n\nexport type ActivationCaptureAlignment =\n | \"aligned\"\n | \"incompatible_context\"\n | \"missing_reference\"\n | \"missing_candidate\"\n | \"missing_both\";\nexport type ActivationResultComparison = ReturnType<typeof activationResultComparison>;\nexport type ActivationDoseComparison = ReturnType<typeof activationDoseComparison>;\n","import { z } from \"zod\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\nimport { ActivationReferenceRequestSchema, ActivationReferenceResultSchema, parseAndVerifyActivationReferenceRequest, parseAndVerifyActivationReferenceResult } from \"./activation-reference.js\";\nimport { ModelModificationMethodSchema } from \"./model-modification-capabilities.js\";\n\nconst Id = z.string().trim().min(1).max(240), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const MODIFICATION_RECORDING_MAX_BYTES = 8_388_608;\nexport const ModificationRecordingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modificationRecordingRequest.v1\"), teamId: Id, operationId: Id,\n name: z.string().trim().min(1).max(500), projectId: Id.nullable(), method: ModelModificationMethodSchema,\n request: ActivationReferenceRequestSchema, result: ActivationReferenceResultSchema,\n}).strict();\nexport type ModificationRecordingRequest = z.infer<typeof ModificationRecordingRequestSchema>;\nexport const ModificationRecordingContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modificationRecording.v1\"), id: Id, teamId: Id, actorId: Id, operationId: Id,\n commandHash: Hash, name: z.string().trim().min(1).max(500), projectId: Id.nullable(), method: ModelModificationMethodSchema,\n accountScopeHash: Hash,\n custody: z.literal(\"local\"), provenance: z.literal(\"external_observation\"), measurementAttestation: z.literal(\"unattested\"),\n model: ActivationReferenceRequestSchema.shape.model, inputHash: Hash, resultHash: Hash,\n artifact: z.object({ contentHash: Hash, sizeBytes: z.number().int().positive().max(MODIFICATION_RECORDING_MAX_BYTES) }).strict(),\n counts: z.object({ prompts: z.number().int().positive().max(8), variants: z.number().int().positive().max(17),\n outcomes: z.number().int().positive().max(136), captures: z.number().int().nonnegative().max(32_768) }).strict(),\n createdAt: z.iso.datetime(),\n}).strict();\nexport const ModificationRecordingSchema = ModificationRecordingContentSchema.extend({ contentHash: Hash }).strict();\nexport type ModificationRecording = z.infer<typeof ModificationRecordingSchema>;\nexport const ModificationRecordingDocumentSchema = z.object({ request: ActivationReferenceRequestSchema, result: ActivationReferenceResultSchema }).strict();\nexport const ModificationRecordingReadSchema = z.object({ recording: ModificationRecordingSchema, document: ModificationRecordingDocumentSchema }).strict();\nexport const ModificationRecordingReadQuerySchema = z.object({ teamId: Id }).strict();\nexport const ModificationRecordingListQuerySchema = z.object({ teamId: Id, projectId: Id.optional(),\n search: z.string().trim().max(1000).optional(), cursor: z.string().min(1).max(2000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport type ModificationRecordingListQuery = z.input<typeof ModificationRecordingListQuerySchema>;\nexport const ModificationRecordingPageSchema = z.object({ teamId: Id, actorId: Id, accountScopeHash: Hash, projectId: Id.nullable(),\n items: z.array(ModificationRecordingSchema).max(100), nextCursor: z.string().min(1).max(2000).nullable() }).strict();\n\nexport async function verifyModificationRecordingRequest(raw: unknown) {\n const value = ModificationRecordingRequestSchema.parse(raw);\n if (new TextEncoder().encode(canonicalJson(value)).byteLength > MODIFICATION_RECORDING_MAX_BYTES)\n throw new OpenPondProtocolError(\"modification_recording_too_large\", \"The recording exceeds 8 MiB.\");\n const request = await parseAndVerifyActivationReferenceRequest(value.request);\n await parseAndVerifyActivationReferenceResult(value.result, request);\n const profiles = request.variants.filter(row => row.profile !== null).length;\n if (value.method === \"inspect_activations\" ? profiles > 0 : profiles === 0 || profiles === request.variants.length)\n throw new OpenPondProtocolError(\"modification_recording_method_mismatch\", \"Inspection must be unsteered; a steering comparison needs an explicit Off baseline and intervention.\");\n return value;\n}\nexport async function verifyModificationRecording(raw: unknown, teamId?: string, actorId?: string) {\n const value = ModificationRecordingSchema.parse(raw), { contentHash, ...content } = value;\n if (contentHash !== await canonicalSha256(content) || teamId !== undefined && value.teamId !== teamId || actorId !== undefined && value.actorId !== actorId\n || value.id !== `observation-${await canonicalSha256({ scope: value.accountScopeHash, operationId: value.operationId })}`\n || value.counts.outcomes !== value.counts.prompts * value.counts.variants)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The retained recording differs from its owner or immutable metadata.\");\n return value;\n}\nexport async function verifyModificationRecordingRead(raw: unknown, teamId?: string, actorId?: string) {\n const value = ModificationRecordingReadSchema.parse(raw), recording = await verifyModificationRecording(value.recording, teamId, actorId);\n const command = await verifyModificationRecordingRequest({ schemaVersion: \"openpond.modificationRecordingRequest.v1\", teamId: recording.teamId,\n operationId: recording.operationId, name: recording.name, projectId: recording.projectId, method: recording.method, ...value.document });\n const sizeBytes = new TextEncoder().encode(canonicalJson(value.document)).byteLength;\n if (recording.commandHash !== await canonicalSha256(command) || recording.artifact.contentHash !== await canonicalSha256(value.document)\n || recording.artifact.sizeBytes !== sizeBytes || recording.inputHash !== await canonicalSha256(value.document.request)\n || recording.resultHash !== value.document.result.contentHash || canonicalJson(recording.model) !== canonicalJson(command.request.model)\n || recording.counts.prompts !== command.request.prompts.length || recording.counts.variants !== command.request.variants.length\n || recording.counts.outcomes !== command.result.outcomes.length || recording.counts.captures !== command.result.captures.length)\n throw new OpenPondProtocolError(\"modification_recording_artifact_mismatch\", \"The retained observation differs from its request, output or capture inventory.\");\n return { ...value, recording };\n}\nexport function createModificationRecordingsClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n return {\n async recordModificationObservation(raw: ModificationRecordingRequest) {\n const command = await verifyModificationRecordingRequest(raw);\n const value = await verifyModificationRecording(await request(\"/v1/modification-recordings\", { method: \"POST\", body: canonicalJson(command) }), command.teamId);\n if (value.commandHash !== await canonicalSha256(command) || value.operationId !== command.operationId)\n throw new OpenPondProtocolError(\"modification_recording_request_mismatch\", \"The service retained another observation.\");\n return value;\n },\n async modificationRecording(id: string, query: { teamId: string }) {\n const identity = Id.parse(id), teamId = Id.parse(query.teamId);\n const value = await verifyModificationRecordingRead(await request(`/v1/modification-recordings/${encodeURIComponent(identity)}?${new URLSearchParams({ teamId })}`, undefined,\n MODIFICATION_RECORDING_MAX_BYTES + 65_536), teamId);\n if (value.recording.id !== identity) throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The service returned another recording.\");\n return value;\n },\n async modificationRecordings(raw: ModificationRecordingListQuery) {\n const query = ModificationRecordingListQuerySchema.parse(raw), params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) if (value !== undefined) params.set(key, String(value));\n const page = ModificationRecordingPageSchema.parse(await request(`/v1/modification-recordings?${params}`));\n if (page.teamId !== query.teamId || page.projectId !== (query.projectId ?? null) || page.items.length > query.limit\n || new Set(page.items.map(row => row.id)).size !== page.items.length || query.cursor && page.nextCursor === query.cursor)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The recording list returned another scope or page.\");\n for (const row of page.items) {\n await verifyModificationRecording(row, query.teamId, page.actorId);\n if (row.accountScopeHash !== page.accountScopeHash || query.projectId && row.projectId !== query.projectId)\n throw new OpenPondProtocolError(\"modification_recording_scope_mismatch\", \"The recording list returned another Project.\");\n }\n return page;\n },\n };\n}\n","import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst OpaqueIdentifier = z.string().min(1).max(191).regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]*$/);\n\n/** Hardware metadata never quotes stock, price, or permission to start work. */\nexport const TrainingHardwareSpecificationSchema = z.object({\n id: z.string().trim().min(1).max(256),\n name: z.string().trim().min(1).max(256),\n manufacturer: z.string().trim().min(1).max(100),\n memoryGb: z.number().int().positive(),\n secureCloud: z.boolean(),\n communityCloud: z.boolean(),\n maximumPerPod: z.object({\n secure: z.number().int().nonnegative(),\n community: z.number().int().nonnegative(),\n }).strict(),\n}).strict();\nexport type TrainingHardwareSpecification = z.infer<typeof TrainingHardwareSpecificationSchema>;\n\nexport const TrainingHardwareInventorySchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHardwareInventory.v1\"),\n provider: OpaqueIdentifier,\n source: OpaqueIdentifier,\n version: z.string().regex(/^[a-f0-9]{64}$/),\n observedAt: z.iso.datetime(),\n refreshAfter: z.iso.datetime(),\n hardware: z.array(TrainingHardwareSpecificationSchema).max(1000),\n}).strict();\nexport type TrainingHardwareInventory = z.infer<typeof TrainingHardwareInventorySchema>;\n\nexport const TrainingHardwareCatalogSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHardwareCatalog.v1\"),\n inventory: TrainingHardwareInventorySchema,\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n eligibility: z.array(z.object({\n gpuTypeId: z.string().min(1).max(256),\n status: z.enum([\"requires_live_workload_check\", \"not_admitted\"]),\n reason: z.enum([\"candidate_for_current_runtime\", \"gpu_type_not_enabled\", \"secure_pods_unavailable\", \"insufficient_memory\"]),\n }).strict()).max(1000),\n}).strict();\nexport type TrainingHardwareCatalog = z.infer<typeof TrainingHardwareCatalogSchema>;\n\nexport async function parseAndVerifyTrainingHardwareInventory(raw: unknown) {\n const inventory = TrainingHardwareInventorySchema.parse(raw);\n const { version, observedAt, refreshAfter, ...content } = inventory;\n if (version !== await canonicalSha256(content) ||\n Date.parse(refreshAfter) <= Date.parse(observedAt) ||\n new Set(inventory.hardware.map(item => item.id)).size !== inventory.hardware.length)\n throw new OpenPondProtocolError(\"training_hardware_inventory_mismatch\", \"Hardware metadata could not be verified.\");\n return inventory;\n}\n\nexport async function parseAndVerifyTrainingHardwareCatalog(raw: unknown) {\n const catalog = TrainingHardwareCatalogSchema.parse(raw);\n await parseAndVerifyTrainingHardwareInventory(catalog.inventory);\n const ids = new Set(catalog.inventory.hardware.map(item => item.id));\n if (catalog.eligibility.length !== ids.size ||\n new Set(catalog.eligibility.map(item => item.gpuTypeId)).size !== ids.size ||\n catalog.eligibility.some(item => !ids.has(item.gpuTypeId) ||\n (item.status === \"requires_live_workload_check\") !== (item.reason === \"candidate_for_current_runtime\")))\n throw new OpenPondProtocolError(\"training_hardware_catalog_mismatch\", \"Hardware eligibility does not match its inventory.\");\n return catalog;\n}\n\nexport function createTrainingHardwareCatalogClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n return {\n async hardwareCatalog() {\n return parseAndVerifyTrainingHardwareCatalog(await request(\"/v1/training/hardware-catalog\"));\n },\n };\n}\n","import { z } from \"zod\";\nimport { ImmutableReleaseRefSchema, validateHarnessSourcePackage, validateHarnessPolicySourcePackage, type HarnessPolicySourcePackage, type HarnessSourcePackage, type ImmutableReleaseRef } from \"@openpond/harness\";\nimport { assertCanonicalPayloadSize, TRAINING_INPUT_ARTIFACT_MAX_BYTES } from \"./protocol.js\";\n\nexport const TrainingHarnessSourcePublicationSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHarnessSourcePublication.v1\"),\n harnessRelease: ImmutableReleaseRefSchema,\n sourcePackageHash: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().positive().max(TRAINING_INPUT_ARTIFACT_MAX_BYTES),\n}).strict();\n\n/** Publication stores immutable source only; it never starts training. */\nexport function createTrainingHarnessSourceClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n const route = (reference: ImmutableReleaseRef) => {\n const ref = ImmutableReleaseRefSchema.parse(reference);\n return `/v1/training/harness-sources/${encodeURIComponent(ref.id)}/${ref.contentHash}`;\n };\n return {\n async publishHarnessSource(value: HarnessSourcePackage | HarnessPolicySourcePackage) {\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n const source = validateSource(value);\n const portability = source.agentSnapshot.portability;\n if (!portability.portable || portability.blockers.length || portability.localOnlyAssetRefs.length || portability.hostPrivateAssetRefs.length || (source.schemaVersion === \"openpond.harnessSourcePackage.v1\" && source.harnessRelease.files.some(file => file.visibility !== \"policy\"))) {\n throw new Error(\"Hosted training Harness publication requires portable, policy-visible source.\");\n }\n const result = TrainingHarnessSourcePublicationSchema.parse(await request(route({ id: source.harnessRelease.id, contentHash: source.harnessRelease.contentHash }), { method: \"PUT\", body: JSON.stringify(source) }));\n if (result.harnessRelease.id !== source.harnessRelease.id || result.harnessRelease.contentHash !== source.harnessRelease.contentHash || result.sourcePackageHash !== source.contentHash) {\n throw new Error(\"Published Harness source differs from the selected immutable package.\");\n }\n return result;\n },\n async getHarnessSource(reference: ImmutableReleaseRef) {\n const value = await request(route(reference), undefined, TRAINING_INPUT_ARTIFACT_MAX_BYTES);\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n return validateSource(value, reference);\n },\n };\n}\n\nfunction validateSource(value: unknown, reference?: ImmutableReleaseRef) {\n return typeof value === \"object\" && value !== null\n && Reflect.get(value, \"schemaVersion\") === \"openpond.harnessPolicySourcePackage.v1\"\n ? validateHarnessPolicySourcePackage(value, reference)\n : validateHarnessSourcePackage(value, reference);\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** A reviewed candidate decision never activates serving or alters training evidence. */\nexport const TrainingCandidateDecisionRequestSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecisionRequest.v1\"),\n teamId: IdSchema,\n jobId: IdSchema,\n artifact: ModelProjectImmutableRefSchema,\n evaluation: ModelProjectImmutableRefSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n decision: z.enum([\"accepted\", \"rejected\"]),\n reason: z.string().trim().min(1).max(5_000),\n idempotencyKey: IdSchema,\n expectedDecision: ModelProjectImmutableRefSchema.nullable(),\n}).strict())();\n\n/** Append-only, authenticated hosted record. Hash verification is not a signature. */\nexport const TrainingCandidateDecisionSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecision.v1\"),\n id: IdSchema,\n request: TrainingCandidateDecisionRequestSchema,\n revision: z.number().int().positive(),\n actor: z.object({ userId: IdSchema, kind: z.enum([\"user\", \"api_key\", \"agent_delegate\"]), id: IdSchema }).strict(),\n decidedAt: z.string().datetime({ offset: true }),\n contentHash: HashSchema,\n}).strict().superRefine((value, context) => {\n if ((value.revision === 1) !== (value.request.expectedDecision === null)) {\n context.addIssue({ code: \"custom\", path: [\"revision\"], message: \"A first decision has no predecessor; later decisions must reference the prior decision.\" });\n }\n if (value.request.expectedDecision?.id === value.id) {\n context.addIssue({ code: \"custom\", path: [\"request\", \"expectedDecision\"], message: \"A decision cannot supersede itself.\" });\n }\n}))();\n\nexport type TrainingCandidateDecisionRequest = z.infer<typeof TrainingCandidateDecisionRequestSchema>;\nexport type TrainingCandidateDecision = z.infer<typeof TrainingCandidateDecisionSchema>;\nexport type TrainingCandidateDecisionTarget = Pick<TrainingCandidateDecisionRequest, \"teamId\" | \"jobId\" | \"artifact\">;\n\nexport async function trainingCandidateDecisionHash(\n value: Omit<TrainingCandidateDecision, \"contentHash\"> | TrainingCandidateDecision,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingCandidateDecision;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingCandidateDecision(\n value: unknown,\n expected: TrainingCandidateDecisionTarget & { request?: TrainingCandidateDecisionRequest },\n): Promise<TrainingCandidateDecision> {\n assertCanonicalPayloadSize(value, 32_768, \"Training candidate decision\");\n const parsed = TrainingCandidateDecisionSchema.parse(value);\n if (parsed.contentHash !== await trainingCandidateDecisionHash(parsed)) {\n throw new OpenPondProtocolError(\"content_hash_mismatch\", \"Training candidate decision content hash does not match.\");\n }\n if (parsed.request.teamId !== expected.teamId || parsed.request.jobId !== expected.jobId\n || parsed.request.artifact.id !== expected.artifact.id\n || parsed.request.artifact.contentHash !== expected.artifact.contentHash) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision belongs to a different team, Job or artifact.\");\n }\n if (expected.request && await canonicalSha256(parsed.request) !== await canonicalSha256(TrainingCandidateDecisionRequestSchema.parse(expected.request))) {\n throw new OpenPondProtocolError(\"candidate_decision_request_mismatch\", \"Training candidate decision does not match the submitted review.\");\n }\n return parsed;\n}\n\nexport function createTrainingCandidateDecisionClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n function route(target: TrainingCandidateDecisionTarget) {\n return `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(target.jobId))}/candidates/${encodeURIComponent(ModelProjectImmutableRefSchema.parse(target.artifact).id)}/decision`;\n }\n return {\n async candidateDecision(\n target: TrainingCandidateDecisionTarget,\n options: { decision?: { id: string; contentHash: string } } = {},\n ): Promise<TrainingCandidateDecision | null> {\n IdSchema.parse(target.teamId);\n const reference = options.decision ? ModelProjectImmutableRefSchema.parse(options.decision) : undefined;\n const query = reference ? `?decisionId=${encodeURIComponent(reference.id)}` : \"\";\n const response = z.object({ decision: z.unknown().nullable() }).strict().parse(await request(`${route(target)}${query}`));\n if (response.decision === null && !reference) return null;\n const decision = await parseAndVerifyTrainingCandidateDecision(response.decision, target);\n if (reference && (decision.id !== reference.id || decision.contentHash !== reference.contentHash)) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision does not match the requested history entry.\");\n }\n return decision;\n },\n async recordCandidateDecision(input: TrainingCandidateDecisionRequest): Promise<TrainingCandidateDecision> {\n const parsed = TrainingCandidateDecisionRequestSchema.parse(input);\n const response = await request(route(parsed), { method: \"POST\", body: JSON.stringify(parsed) });\n return parseAndVerifyTrainingCandidateDecision(response, { ...parsed, request: parsed });\n },\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n TRAINING_API_RESPONSE_MAX_BYTES,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** Reviewer-facing evidence only: never a worker response or training sample. */\nexport const TrainingEvaluationTaskResultSchema = /* @__PURE__ */ (() => z.object({\n taskId: IdSchema,\n taskSha256: HashSchema,\n resultSha256: HashSchema,\n input: z.object({\n instruction: z.string().max(1_000_000),\n context: z.record(z.string(), z.unknown()),\n }).strict(),\n output: z.string().max(1_000_000),\n outputSha256: HashSchema,\n score: z.number().finite().min(0).max(1),\n evidence: z.object({\n kind: z.enum([\"worker_command\", \"hosted_trace\", \"local_trace\"]),\n id: IdSchema,\n }).strict(),\n}).strict())();\n\n/** Supplements an existing evaluation; does not replace its terminal receipt. */\nexport const TrainingEvaluationTaskPageSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingEvaluationTaskPage.v1\"),\n jobId: IdSchema,\n teamId: IdSchema,\n evaluation: ModelProjectImmutableRefSchema,\n kind: z.enum([\"baseline\", \"candidate\"]),\n policyVersion: z.number().int().nonnegative(),\n taskset: ModelProjectVersionedRefSchema,\n panelSha256: HashSchema,\n offset: z.number().int().nonnegative(),\n total: z.number().int().min(1).max(10_000),\n tasks: z.array(TrainingEvaluationTaskResultSchema).min(1).max(100),\n nextCursor: z.string().regex(/^[1-9]\\d*$/).nullable(),\n contentHash: HashSchema,\n}).strict().superRefine((page, context) => {\n const end = page.offset + page.tasks.length;\n const expectedCursor = end < page.total ? String(end) : null;\n if (end > page.total || page.nextCursor !== expectedCursor) {\n context.addIssue({ code: \"custom\", path: [\"nextCursor\"], message: \"Evaluation pagination must cover consecutive task positions.\" });\n }\n if (new Set(page.tasks.map((task) => task.taskId)).size !== page.tasks.length) {\n context.addIssue({ code: \"custom\", path: [\"tasks\"], message: \"Evaluation task identities must be unique.\" });\n }\n}))();\n\nexport type TrainingEvaluationTaskResult = z.infer<typeof TrainingEvaluationTaskResultSchema>;\nexport type TrainingEvaluationTaskPage = z.infer<typeof TrainingEvaluationTaskPageSchema>;\n\nexport async function trainingEvaluationTaskPageHash(\n value: Omit<TrainingEvaluationTaskPage, \"contentHash\"> | TrainingEvaluationTaskPage,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingEvaluationTaskPage;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingEvaluationTaskPage(\n value: unknown,\n expected: {\n jobId: string;\n evaluation: { id: string; contentHash: string };\n offset?: number;\n teamId?: string;\n },\n): Promise<TrainingEvaluationTaskPage> {\n assertCanonicalPayloadSize(value, TRAINING_API_RESPONSE_MAX_BYTES, \"Training evaluation task page\");\n const page = TrainingEvaluationTaskPageSchema.parse(value);\n const reference = ModelProjectImmutableRefSchema.parse(expected.evaluation);\n if (page.jobId !== IdSchema.parse(expected.jobId)\n || page.evaluation.id !== reference.id\n || page.evaluation.contentHash !== reference.contentHash\n || page.offset !== (expected.offset ?? 0)\n || (expected.teamId !== undefined && page.teamId !== IdSchema.parse(expected.teamId))) {\n throw new OpenPondProtocolError(\"evaluation_page_identity_mismatch\", \"Evaluation results differ from the requested Job, evaluation, or page.\");\n }\n if (await trainingEvaluationTaskPageHash(page) !== page.contentHash) {\n throw new OpenPondProtocolError(\"evaluation_page_hash_mismatch\", \"Evaluation task page content hash did not match.\");\n }\n for (const task of page.tasks) {\n if (await canonicalSha256(task.output) !== task.outputSha256) {\n throw new OpenPondProtocolError(\"evaluation_output_hash_mismatch\", \"A retained evaluation output hash did not match.\");\n }\n }\n return page;\n}\n","import { verifySavedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport type { SteeringModelVersion } from \"./steering-profile-publication.js\";\nimport { ActivationExperimentFormDraftSchema, type ActivationExperimentFormDraft } from \"./activation-experiment-draft.js\";\nimport { parseAndVerifyActivationReferenceRequest, type ActivationReferenceRequest } from \"./activation-reference.js\";\nimport { ModelProjectBaseModelSchema } from \"./model-projects.js\";\nimport { createNeuronSteeringProfile, NeuronSteeringModelSchema, parseAndVerifyNeuronResidualCalibration,\n type NeuronSteeringModel, type NeuronResidualCalibration } from \"./neuron-steering.js\";\nimport { canonicalJson, canonicalSha256, OpenPondProtocolError, type CanonicalJsonValue } from \"./protocol.js\";\n\n/** Trusted host adapter, never an HTTP input. Encoding preserves the original\n * literal text without padding or truncation. Its complete descriptor identifies\n * tokenizer files and encoding settings and must hash to model.tokenizerHash. */\nexport interface ActivationFormTokenizer {\n source: NonNullable<ActivationExperimentFormDraft[\"baseModel\"]>;\n descriptor: Record<string, CanonicalJsonValue>;\n encode(text: string): readonly number[] | Promise<readonly number[]>;\n}\nconst numberPattern = /^[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\nfunction fail(code: string): never { throw new OpenPondProtocolError(`activation_form_${code}`, \"The activation form cannot be compiled with these exact inputs.\"); }\nfunction decimal(text: string) {\n const value = text.trim();\n if (!numberPattern.test(value)) fail(\"number_incomplete\");\n return value;\n}\nfunction finite(text: string) {\n const value = decimal(text), number = Number(value);\n if (!Number.isFinite(number) || number === 0 && /[1-9]/.test(value.split(/[eE]/)[0]!)) fail(\"number_out_of_range\");\n return number;\n}\n/** Check integrality before converting to binary64; rounded fractions must not\n * become accepted coordinates. Exponents never allocate unbounded integers. */\nfunction integer(text: string, low: number, high: number) {\n const value = decimal(text), negative = value.startsWith(\"-\"), unsigned = value.replace(/^[+-]/, \"\");\n const [mantissa, exponent = \"0\"] = unsigned.split(/[eE]/), [whole, fraction = \"\"] = mantissa!.split(\".\");\n let digits = `${whole}${fraction}`.replace(/^0+/, \"\");\n if (!digits) return low <= 0 && high >= 0 ? 0 : fail(\"integer_out_of_range\");\n const scale = BigInt(exponent) - BigInt(fraction.length);\n if (scale < 0n) {\n const remove = -scale;\n if (remove >= BigInt(digits.length) || remove > BigInt(digits.length - digits.replace(/0+$/, \"\").length)) fail(\"integer_out_of_range\");\n digits = digits.slice(0, digits.length - Number(remove));\n } else {\n if (BigInt(digits.length) + scale > BigInt(String(Math.max(Math.abs(low), Math.abs(high))).length)) fail(\"integer_out_of_range\");\n digits += \"0\".repeat(Number(scale));\n }\n const result = Number(`${negative ? \"-\" : \"\"}${digits}`);\n if (!Number.isSafeInteger(result) || result < low || result > high) fail(\"integer_out_of_range\");\n return result;\n}\nfunction multipliers(text: string) {\n // Python str.split also recognizes the C0 information separators.\n // eslint-disable-next-line no-control-regex\n const raw = text.trim(), parts = raw.includes(\",\") ? raw.split(\",\") : raw ? raw.split(/[\\t-\\r\\x1c-\\x20\\x85\\xa0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]+/) : [];\n if (parts.length < 1 || parts.length > 16) fail(\"sweep_size_invalid\");\n const values = parts.map(finite);\n if (new Set(values).size !== values.length) fail(\"duplicate_multiplier\");\n return values;\n}\n\n/** Pure bounded authoring compilation, matching the Python SDK compiler. This\n * grants no execution admission; the host must authorize assets and the executor\n * must independently verify its actual loaded model and calibration custody. */\nexport async function compileActivationForm(form: ActivationExperimentFormDraft, options: {\n method: \"neuron_steering\" | \"inspect_activations\"; model: NeuronSteeringModel; tokenizer: ActivationFormTokenizer;\n calibrations?: readonly NeuronResidualCalibration[]; maximumAbsoluteDose?: number;\n startingProfileVersion?: SteeringModelVersion;\n}): Promise<ActivationReferenceRequest> {\n const raw = ActivationExperimentFormDraftSchema.parse(form), model = NeuronSteeringModelSchema.parse(options.model);\n const { method, tokenizer, calibrations = [], maximumAbsoluteDose = 16 } = options;\n if (method !== \"neuron_steering\" && method !== \"inspect_activations\") fail(\"method_unsupported\");\n if (!raw.prompts.length || !raw.coordinates.length) fail(\"rows_invalid\");\n if (typeof maximumAbsoluteDose !== \"number\" || !Number.isFinite(maximumAbsoluteDose) || maximumAbsoluteDose <= 0) fail(\"dose_limit_invalid\");\n const source = ModelProjectBaseModelSchema.parse(tokenizer.source), descriptor = tokenizer.descriptor;\n if (!raw.baseModel || canonicalJson(raw.baseModel) !== canonicalJson(source) || !source.revision || !source.tokenizerRevision ||\n source.modelId !== model.modelId || source.revision !== model.revision || await canonicalSha256(descriptor) !== model.tokenizerHash)\n fail(\"tokenizer_identity_mismatch\");\n const vocabulary = descriptor.vocabSize, eos = descriptor.eosTokenIds;\n if (typeof vocabulary !== \"number\" || !Number.isInteger(vocabulary) || vocabulary < 1 || vocabulary > 2_147_483_648 ||\n !Array.isArray(eos) || eos.length > 16 || eos.some(token => typeof token !== \"number\" || !Number.isInteger(token) || token < 0 || token >= vocabulary) ||\n new Set(eos).size !== eos.length || typeof tokenizer.encode !== \"function\") fail(\"tokenizer_descriptor_invalid\");\n let startingProfile: SteeringModelVersion[\"publication\"][\"profile\"] | null = null;\n if (raw.startingProfile) {\n if (method !== \"neuron_steering\") fail(\"saved_source_method_unsupported\");\n if (!options.startingProfileVersion) fail(\"saved_source_unresolved\");\n const version = await verifySavedSteeringExperimentSource(raw.startingProfile, options.startingProfileVersion);\n if (canonicalJson(version.publication.baseModel) !== canonicalJson(raw.baseModel) || canonicalJson(version.publication.profile.model) !== canonicalJson(model)) fail(\"saved_source_model_mismatch\");\n startingProfile = version.publication.profile;\n if (startingProfile.entries.some(entry => Math.abs(entry.dose) > maximumAbsoluteDose)) fail(\"dose_limit_exceeded\");\n if (startingProfile.normalization.mode === \"fixed_residual_reference\") {\n const reference = startingProfile.normalization.calibration;\n const matches = calibrations.filter(item => item.id === reference.id && item.revision === reference.revision && item.contentHash === reference.contentHash);\n if (matches.length !== 1) fail(\"calibration_unavailable\");\n const calibration = await parseAndVerifyNeuronResidualCalibration(matches[0], model, reference);\n if (startingProfile.entries.some(entry => !calibration.layers.some(row => row.layer === entry.layer))) fail(\"calibration_incomplete\");\n }\n } else if (options.startingProfileVersion) fail(\"saved_source_unrequested\");\n const entries: { layer: number; neuron: number; dose: number }[] = [], capture = new Map<number, number[]>(), seen = new Set<string>();\n for (const row of raw.coordinates) {\n const layer = integer(row.layer, 0, model.intermediateSizes.length - 1), neuron = integer(row.neuron, 0, model.intermediateSizes[layer]! - 1);\n const key = `${layer}:${neuron}`;\n if (seen.has(key)) fail(\"duplicate_coordinate\");\n seen.add(key); const neurons = capture.get(layer) ?? []; neurons.push(neuron); capture.set(layer, neurons);\n if (method === \"neuron_steering\") entries.push({ layer, neuron, dose: finite(row.dose) });\n }\n const variants: ActivationReferenceRequest[\"variants\"] = [{ id: \"baseline\", profile: null }];\n if (startingProfile) variants.push({id: \"saved-profile\", profile: startingProfile});\n if (method === \"neuron_steering\") {\n if (raw.normalization.mode === \"fixed_residual_reference\") {\n const reference = raw.normalization.calibration;\n if (calibrations.some(item => !item || typeof item !== \"object\" || Array.isArray(item))) fail(\"calibration_invalid\");\n const matches = calibrations.filter(item => item.id === reference.id && item.revision === reference.revision && item.contentHash === reference.contentHash);\n if (matches.length !== 1) fail(\"calibration_unavailable\");\n const calibration = await parseAndVerifyNeuronResidualCalibration(matches[0], model, reference);\n if (entries.some(entry => !calibration.layers.some(row => row.layer === entry.layer))) fail(\"calibration_incomplete\");\n }\n for (const [index, multiplier] of multipliers(raw.doseMultipliers).entries()) {\n const scaled = entries.map(entry => ({ ...entry, dose: entry.dose * multiplier }));\n if (scaled.some((entry, i) => !Number.isFinite(entry.dose) || Math.abs(entry.dose) > maximumAbsoluteDose ||\n entry.dose === 0 && entries[i]!.dose !== 0 && multiplier !== 0)) fail(\"dose_limit_exceeded\");\n const profile = await createNeuronSteeringProfile({\n schemaVersion: \"openpond.neuronSteeringProfile.v1\", model, hook: \"mlp.down_proj.input\", operation: \"add\",\n normalization: raw.normalization, tokenScope: raw.tokenScope, entries: scaled,\n });\n if (!startingProfile || !variants.some(variant => variant.profile?.contentHash === profile.contentHash))\n variants.push({id: `strength-${index + 1}`, profile});\n }\n }\n if (variants.length > 17) fail(\"variant_limit_exceeded\");\n // Reject incomplete numeric budgets before invoking a potentially costly host encoder.\n const bounds = {maxNewTokens: integer(raw.maxNewTokens, 0, 128), maximumCapturedValues: integer(raw.maximumCapturedValues, 1, 65_536),\n maximumForwardTokenWork: integer(raw.maximumForwardTokenWork, 1, 1_000_000), maximumDurationSeconds: finite(raw.maximumDurationSeconds)};\n if (bounds.maximumDurationSeconds <= 0 || bounds.maximumDurationSeconds > 300) fail(\"number_out_of_range\");\n const prompts: ActivationReferenceRequest[\"prompts\"] = [];\n for (const prompt of raw.prompts) {\n if (!prompt.text) fail(\"prompt_empty\");\n let encoded: readonly number[];\n try { encoded = await tokenizer.encode(prompt.text); } catch { fail(\"tokenization_failed\"); }\n if (!Array.isArray(encoded) || encoded.length < 1 || encoded.length > 4096 ||\n encoded.some(token => typeof token !== \"number\" || !Number.isInteger(token) || token < 0 || token >= vocabulary)) fail(\"tokenization_invalid\");\n prompts.push({ id: prompt.id, tokenIds: [...encoded], attentionMask: encoded.map(() => 1) });\n }\n if (variants.some(row => row.profile?.normalization.mode === \"baseline_prompt_residual_median\") && prompts.some(prompt => prompt.tokenIds.length < 2))\n fail(\"calibration_prompt_too_short\");\n return parseAndVerifyActivationReferenceRequest({ schemaVersion: \"openpond.activationReferenceRequest.v1\", model, prompts, variants,\n ...(raw.startingProfile ? {startingProfile: {...raw.startingProfile, variantId: \"saved-profile\"}} : {}),\n capture: Array.from(capture, ([layer, neurons]) => ({ layer, neurons })), eosTokenIds: eos,\n ...bounds });\n}\n","import { ActivationExperimentFormDraftSchema, type ActivationExperimentFormDraft } from \"./activation-experiment-draft.js\";\nimport { ExperimentStartingModelSchema, type ExperimentStartingModel } from \"./experiment-starting-model.js\";\nimport { parseAndVerifySavedModelVersion } from \"./steering-profile-publication.js\";\nimport { savedSteeringExperimentSource } from \"./steering-experiment-source-verification.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\n/** Seeds editable replacement controls from a verified immutable source. Prompts,\n * raw limits and spend remain the caller's existing form. Off remains a separate\n * null-profile comparison; editing these controls never stacks interventions. */\nexport async function activationFormFromSteeringVersion(form: ActivationExperimentFormDraft, resolved: unknown, expected: {teamId?: string} = {}): Promise<ActivationExperimentFormDraft> {\n const current = ActivationExperimentFormDraftSchema.parse(form);\n const version = await parseAndVerifySavedModelVersion(resolved, expected);\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\")\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Choose a saved steering Model version.\");\n const profile = version.publication.profile;\n return ActivationExperimentFormDraftSchema.parse({...current, baseModel: version.publication.baseModel,\n coordinates: profile.entries.map((entry, index) => ({id: `saved-coordinate-${index + 1}`, layer: String(entry.layer), neuron: String(entry.neuron), dose: String(entry.dose)})),\n doseMultipliers: \"1\", normalization: profile.normalization, tokenScope: profile.tokenScope,\n startingProfile: savedSteeringExperimentSource(version)});\n}\nexport async function experimentStartingModelFromSteeringVersion(resolved: unknown, options: {teamId?: string; label?: string} = {}): Promise<Extract<ExperimentStartingModel, {source: \"steering\"}>> {\n const version = await parseAndVerifySavedModelVersion(resolved, options);\n if (version.schemaVersion !== \"openpond.steeringModelVersion.v1\")\n throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Choose a saved steering Model version.\");\n const source = ExperimentStartingModelSchema.parse({source: \"steering\", label: options.label ?? version.publication.name,\n inferenceModelId: null, baseModel: version.publication.baseModel, steering: savedSteeringExperimentSource(version)});\n if (source.source !== \"steering\") throw new OpenPondProtocolError(\"steering_experiment_source_mismatch\", \"Retain the saved steering source.\");\n return source;\n}\n"],"mappings":"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","names":["control","contentHash","z","z","z","z","Id","z","Hash","contentHash","Hash","z","Id","contentHash","fail","file","Id","z","Hash","contentHash","file","z","Id","z","Id","z","Hash","contentHash","Id","z","Hash","Timestamp","control","contentHash","fail","receipt","z","z","z","Id","Hash","z","z","Id","z","Hash","contentHash","fail","z","Id","z","Hash","contentHash","fail","receipt","z","assertBoundedTaskJson","z","assertBoundedTaskJson","z","Hash","z","z","Hash","z","contentHash","fail","question","z","Hash","z","contentHash","fail","Hash","z","assertBoundedTaskJson","contentHash","fail","file","z","Hash","z","Id","z","Hash","assertBoundedTaskJson","contentHash","fail","file","z","z","z","Id","Text","z","z","contentHash","fail","file","z","assertBoundedTaskJson","Hash","z","assertBoundedTaskJson","z","z","assertBoundedTaskJson","Hash","z","contentHash","assertBoundedTaskJson","Hash","z","assertBoundedTaskJson","contentHash","z","Id","z","Hash","Field","z","z","z","Id","z","Hash","contentHash","params","Id","z","Hash","Id","z","Hash","Field","Id","z","Hash","fail","contentHash","file","Id","z","Hash","contentHash","params","z","z","z","Id","z","Hash","receipt","contentHash","scope","params","z","z","Id","z","Hash","z","z","z","z","Field","z","LearningRevisionRefSchema","z","z","z","z","LearningRevisionRefSchema","Id","z","contentHash","receipt","identity","params","z","z","Id","z","Hash","contentHash","Id","z","Hash","contentHash","params","z","Id","z","Hash","Money","fields","fail","contentHash","scope","z","assertBoundedTaskJson","Id","z","Hash","Money","Method","Query","fail","checkSource","checkForm","contentHash","question","assertBoundedTaskJson","parseExecutionListQuery","params","scope","z","Id","z","Hash","Money","Method","Query","fields","fail","checkSource","checkForm","checkFormQuery","contentHash","parseExecutionListQuery","params","scope","z","Id","z","Hash","Money","Method","Query","fields","fail","checkSource","checkForm","checkFormQuery","contentHash","parseExecutionListQuery","params","scope","z","z","Id","z","Hash","contentHash","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","assertBoundedTaskJson","Id","z","Hash","assertBoundedTaskJson","contentHash","fail","z","Id","z","Hash","BindingRef","validControl","control","contentHash","fail","receipt","z","Id","z","scope","params","z","Id","z","params","z","z","LearningRevisionRefSchema","z","LearningRevisionRefSchema","z","z","Hash","z","Id","z","Hash","Timestamp","mismatch","identity","z","Id","z","Hash","Timestamp","contentHash","z","Id","z","Hash","contentHash","scope","z","z","Id","z","Hash","contentHash","control","Id","z","Hash","Timestamp","contentHash","fail","control","z","z","Hash","z","Id","contentHash","Id","z","Hash","BindingRef","Timestamp","contentHash","validControl","control","fail","receipt","z","Id","z","Hash","contentHash","mismatch","z","Id","z","Hash","Name","Timestamp","contentHash","scope","params","z","Id","z","Hash","contentHash","identity","params","z","z","z","z","file","z","z","z","IdSchema","z","HashSchema","fail","IdSchema","z","control","input"]}