openpond-sdk 0.11.3 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-UNMOEI2K.js → chunk-X64BSFXJ.js} +2 -1
- package/dist/{chunk-UNMOEI2K.js.map → chunk-X64BSFXJ.js.map} +2 -2
- package/dist/experiment-evaluation-schedules.js +1 -1
- package/dist/experiments.js +1 -1
- package/dist/index.js +1 -1
- package/dist/taskset-packages.js +1 -1
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -466,6 +466,7 @@ function prepareImportedTasksetPackage(input) {
|
|
|
466
466
|
updatedAt: input.createdAt,
|
|
467
467
|
metadata: {
|
|
468
468
|
importedPackageHash: value.contentHash,
|
|
469
|
+
tasksetOutputContract: release.metadata.tasksetOutputContract ?? null,
|
|
469
470
|
...learning ? { learning } : {},
|
|
470
471
|
portableFileInventory: value.files.map((file) => ({ asset: file.asset, sourcePath: file.asset.path })),
|
|
471
472
|
...resources ? {
|
|
@@ -584,4 +585,4 @@ export {
|
|
|
584
585
|
prepareTasksetDraftSource,
|
|
585
586
|
materializeTasksetDraftWorkspace
|
|
586
587
|
};
|
|
587
|
-
//# sourceMappingURL=chunk-
|
|
588
|
+
//# sourceMappingURL=chunk-X64BSFXJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/model-ordinary-taskset-reward.ts", "../src/model-batch-review.ts", "../src/model-batch-review-preparation.ts", "../src/taskset-package-projection.ts", "../src/taskset-draft-source.ts"],
|
|
4
|
-
"sourcesContent": ["import { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sealLearningContent, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { RewardBinding, RewardRelease } from \"@openpond/evals/rewards\";\nimport { compileModelTasksetReward } from \"./model-taskset-derivation.js\";\nimport { createTasksetPackage, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { decodeTasksetPackageFile } from \"./taskset-package-files.js\";\nimport { resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\n\n/** Bind a saved Reward without rewriting task envelopes, private context, tools\n * or arbitrary binary files. Compatibility is admission, not qualification. */\nexport function bindOrdinaryModelTasksetReward(input: {\n owner: { scopeId: string; modelId: string };\n source: TasksetPackage;\n rewardBinding: RewardBinding;\n rewards: RewardRelease[];\n assets: LearningTextAsset[];\n}): TasksetPackage {\n const source = validateTasksetPackage(input.source);\n if (source.modelResources || source.learningResources) throw new Error(\"Binding an ordinary Reward requires an ordinary source package.\");\n const instructions = resolveTasksetPackageInstructions(source);\n if (!instructions.trim()) throw new Error(\"Add collection instructions before selecting a saved Reward.\");\n const assets = new Map<string, LearningTextAsset>();\n const execution = resolveTasksetPackageExecution(source);\n for (const asset of execution?.assets ?? []) assets.set(asset.id, asset);\n const contextIds = new Set([\n ...source.taskset.tasks.flatMap(task => task.privilegedContextRef ? [task.privilegedContextRef] : []),\n ...[source.environment.actionSchemaRef, source.environment.observationSchemaRef, source.environment.stateSchemaRef].flatMap(ref => ref ? [ref.id] : []),\n ]);\n for (const id of contextIds) {\n if (assets.has(id)) continue;\n const file = source.files.find(file => file.asset.id === id);\n if (!file) throw new Error(`Source Taskset context is missing: ${id}.`);\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: \"openpond.learningTextAsset.v1\", id, revision: 1, asset: file.asset, text })));\n }\n for (const asset of input.assets) {\n const original = source.files.find(file => file.asset.id === asset.id);\n if (original && sealLearningContent({ asset: original.asset }).contentHash !== sealLearningContent({ asset: asset.asset }).contentHash) throw new Error(`Selected Reward conflicts with a source asset: ${asset.id}.`);\n assets.set(asset.id, asset);\n }\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = source.taskset;\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskDefinition.v1\", id: `${source.taskset.id}-definition`, revision: 1,\n name: source.taskset.id, description: \"\", instructions, category: \"custom\", familyNamespace: source.taskset.id,\n inputSchema: { type: \"object\" }, outputSchema: { type: \"object\" },\n rewardBinding: learningRef(input.rewardBinding), harness: null,\n execution: { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease },\n }));\n const derived = compileModelTasksetReward({ ...input, assets: [...assets.values()], source: {\n taskset: source.taskset, taskDefinition, instructionMode: \"per_task\",\n executionResources: { environment: source.environment, verifierSet: source.verifierSet },\n ...(execution ? { execution: execution.execution } : {}),\n } });\n const files = new Map(source.files.map(file => [file.asset.id, file]));\n for (const asset of derived.assets) {\n let raw = \"\";\n for (const byte of new TextEncoder().encode(asset.text)) raw += String.fromCharCode(byte);\n files.set(asset.id, { asset: asset.asset, base64: btoa(raw) });\n }\n const { taskset, executionResources, ...modelResources } = derived;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset, ...executionResources!, modelResources, files: [...files.values()] });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, learningRef, sameLearningRef, requireLearningRelease, requireLearningResource, taskBatchPackageMetadata,\n type LearningResourcePointer, type LearningTransaction } from \"@openpond/evals/learning\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { ModelBatchReviewInspectionSchema, ModelBatchReviewReceiptSchema, ModelBatchReviewRequestSchema, type ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\nimport { prepareModelBatchReview } from \"./model-batch-review-preparation.js\";\n\nexport * from \"./model-batch-review-contracts.js\";\nexport { LearningDomainError as ModelBatchReviewError } from \"@openpond/evals/learning\";\n\nconst operation = (request: ModelBatchReviewRequest) => `model-batch-review-${contentHash([request.modelId, request.operationId])}`;\n\nexport function inspectModelBatchPackage(raw: unknown) {\n const value = validateTasksetPackage(raw);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n return ModelBatchReviewInspectionSchema.parse({ schemaVersion: \"openpond.modelBatchReviewInspection.v1\", packageHash: value.contentHash,\n definition: metadata.definition, binding: metadata.binding, evidence: value.learningResources.evidence, decisions: value.learningResources.decisions });\n}\n\nexport async function findModelBatchReview(transaction: LearningTransaction, raw: ModelBatchReviewRequest) {\n const request = ModelBatchReviewRequestSchema.parse(raw);\n const prior = await transaction.operation(operation(request));\n if (!prior) return null;\n if (prior.requestHash !== contentHash(request)) throw new LearningDomainError(\"learning_idempotency_conflict\", 409);\n return readReceipt(transaction, request, prior.resources);\n}\n\n/** Run inside the host's scope/Model revision transaction after verifying the\n * selected source package. This publishes new editable evidence, never a Model\n * attachment, admission, source credential, grade, or training job. */\nexport async function beginModelBatchReview(transaction: LearningTransaction, input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n}) {\n const request = ModelBatchReviewRequestSchema.parse(input.request);\n const prior = await findModelBatchReview(transaction, request);\n if (prior) return prior;\n const value = validateTasksetPackage(input.package);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const selected = request.rewardBindingRef;\n const retained = !selected || sameLearningRef(selected, learningRef(metadata.binding));\n const binding = retained ? metadata.binding : await requireLearningRelease(transaction, \"binding\", selected);\n const rewards = retained ? metadata.rewards : await Promise.all(binding.sources.map(source => requireLearningRelease(transaction, \"reward\", source.reward)));\n const assetIds = new Set(rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]).map(asset => asset.id));\n const assets = retained ? value.learningResources.assets : await Promise.all([...assetIds].map(id => requireLearningResource(transaction, \"asset\", id, 1)));\n const prepared = prepareModelBatchReview({ ...input, request, package: value, binding, rewards, assets });\n const pointers: LearningResourcePointer[] = [];\n for (const asset of prepared.assets) {\n const existing = await transaction.get(\"asset\", asset.id, 1);\n if (existing && existing.contentHash !== asset.contentHash) throw new LearningDomainError(\"model_review_asset_conflict\", 409);\n if (!existing) await transaction.put(\"asset\", asset, 0);\n }\n for (const reward of prepared.rewards) await transaction.put(\"reward\", reward, 0);\n await transaction.put(\"binding\", prepared.binding, 0);\n await transaction.put(\"definition\", prepared.definition, 0);\n await transaction.put(\"source\", prepared.source, 0, { parentId: request.modelId });\n pointers.push({ kind: \"source\", id: prepared.source.id, revision: 1 });\n for (const evidence of prepared.evidence) {\n await transaction.put(\"evidence\", evidence, 0, { parentId: prepared.source.id });\n pointers.push({ kind: \"evidence\", id: evidence.id, revision: 1 });\n }\n for (const proposal of prepared.proposals) {\n await transaction.put(\"feedback\", proposal, 0, { parentId: proposal.evidence!.id, status: proposal.status });\n pointers.push({ kind: \"feedback\", id: proposal.id, revision: 1 });\n }\n await transaction.saveOperation(operation(request), { requestHash: contentHash(request), resources: pointers });\n return readReceipt(transaction, request, pointers);\n}\n\nasync function readReceipt(transaction: LearningTransaction, request: ModelBatchReviewRequest, pointers: LearningResourcePointer[]) {\n const resources = await Promise.all(pointers.map(pointer => requireLearningResource(transaction, pointer.kind, pointer.id, pointer.revision)));\n return ModelBatchReviewReceiptSchema.parse({ schemaVersion: \"openpond.modelBatchReviewReceipt.v1\", operationId: request.operationId,\n modelId: request.modelId, source: resources.find(resource => resource.schemaVersion === \"openpond.learningSource.v1\"),\n evidence: resources.filter(resource => resource.schemaVersion === \"openpond.taskEvidence.v1\"),\n proposals: resources.filter(resource => resource.schemaVersion === \"openpond.taskFeedbackRecord.v1\"),\n });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, LearningSourceSchema, TaskDefinitionSchema, TaskEvidenceSchema, TaskFeedbackSchema,\n assertLearningContentHash, learningEvidenceId, learningRef, sameLearningRef, sealLearningContent,\n taskBatchPackageMetadata, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, createRewardBinding, createRewardRelease, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport type { TasksetPackage } from \"./taskset-package-contracts.js\";\nimport type { ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\n\n/** Hosts supply the authorized package and selected Reward graph. Only this\n * new namespace becomes editable; parent sources and decisions are not copied. */\nexport function prepareModelBatchReview(input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n binding: RewardBinding; rewards: RewardRelease[]; assets: LearningTextAsset[];\n}) {\n const { request, package: value } = input;\n const learning = value.learningResources;\n if (!learning) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const id = `model-review-${contentHash([input.scope, request.modelId, request.operationId])}`;\n const edits = new Map(request.examples.map(edit => [contentHash(edit.evidence), edit]));\n const parentRefs = new Set(learning.evidence.map(evidence => contentHash(learningRef(evidence))));\n const decisions = new Map(learning.decisions.map(decision => [contentHash(decision.evidence), decision]));\n if (edits.size !== request.examples.length || request.examples.some(edit => !parentRefs.has(contentHash(edit.evidence)))) {\n throw new LearningDomainError(\"model_review_evidence_mismatch\", 409);\n }\n for (const resource of [input.binding, ...input.rewards, ...input.assets]) assertLearningContentHash(resource);\n resolveBoundRewards(input.binding, input.rewards);\n const rewardByHash = new Map<string, RewardRelease>();\n for (const source of input.binding.sources) {\n const original = input.rewards.find(reward => sameLearningRef(learningRef(reward), source.reward))!;\n const { contentHash: _hash, ...content } = original;\n rewardByHash.set(original.contentHash, createRewardRelease({ ...content, id: `${id}-reward-${original.contentHash}`, revision: 1 }));\n }\n const rewards = [...rewardByHash.values()];\n const { contentHash: _bindingHash, recipeRef: _recipe, ...bindingContent } = input.binding;\n const binding = createRewardBinding({ ...bindingContent, id: `${id}-binding`, revision: 1,\n sources: input.binding.sources.map(source => ({ ...source, reward: learningRef(rewardByHash.get(source.reward.contentHash)!) })),\n }, rewards);\n const assetRefs = rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]);\n const assets = [...new Map(assetRefs.map(ref => {\n const asset = input.assets.find(asset => asset.id === ref.id);\n if (!asset) throw new LearningDomainError(\"model_review_reward_asset_missing\", 422);\n verifyLearningTextAsset(asset, ref);\n if (ref.visibility === \"policy\") throw new LearningDomainError(\"reward_asset_visibility_invalid\", 422);\n return [asset.id, asset] as const;\n })).values()];\n // New graders invalidate the parent's verifier-set identity. Preparation of\n // the newly sealed batch will bind its own exact execution releases.\n const { environmentRelease: _environment, verifierSetRelease: _verifiers, ...execution } = metadata.definition.execution;\n const { contentHash: _definitionHash, ...definitionContent } = metadata.definition;\n const definition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, ...request.definition,\n id: `${id}-definition`, revision: 1, rewardBinding: learningRef(binding), execution: { ...execution,\n policy: { ...execution.policy, hiddenGraderRefs: compileBoundGraders(binding, rewards).filter(grader => grader.privileged).map(grader => grader.id) },\n },\n }));\n const source = LearningSourceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.learningSource.v1\", id, revision: 1, name: `${definition.name} review`, kind: \"direct\",\n taskDefinition: learningRef(definition), enabled: true, allowedSplits: [...new Set(learning.evidence.map(item => item.submission.split))],\n mapping: null, adapterVersion: null, reviewOrigin: { modelId: request.modelId, packageHash: value.contentHash,\n taskset: learningRef(value.taskset), batch: learningRef(learning.batch), rewardBinding: learningRef(input.binding) },\n }));\n const evidence = learning.evidence.map(parent => {\n const edit = edits.get(contentHash(learningRef(parent)));\n // Example/attempt IDs are unique within the original source, not across\n // all sources in a batch. Preserve both parents when merging namespaces.\n const attemptId = `review-${parent.contentHash}`;\n const policyChanged = contentHash({ instructions: definition.instructions, inputSchema: definition.inputSchema, outputSchema: definition.outputSchema, requiredOutputs: definition.requiredOutputs ?? [],\n input: edit?.input ?? parent.submission.input }) !== contentHash({ instructions: metadata.definition.instructions,\n inputSchema: metadata.definition.inputSchema, outputSchema: metadata.definition.outputSchema, requiredOutputs: metadata.definition.requiredOutputs ?? [], input: parent.submission.input });\n return TaskEvidenceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskEvidence.v1\", id: learningEvidenceId(source.id, parent.submission.exampleId, attemptId), revision: 1,\n source: learningRef(source), submission: { ...parent.submission, sourceId: source.id, taskDefinition: learningRef(definition),\n attemptId,\n // The old response was observed under the old policy-visible task. Its\n // parent snapshot remains available, but it is not a run of new inputs.\n observedOutput: policyChanged ? null : parent.submission.observedOutput,\n idempotencyKey: `${id}-${parent.contentHash}`, ...(edit?.input === undefined ? {} : { input: edit.input }),\n ...(edit?.expected === undefined ? {} : { expected: edit.expected }),\n ...(edit?.evaluatorContext === undefined ? {} : { evaluatorContext: edit.evaluatorContext }),\n }, supersedes: learningRef(parent), correctionFeedbackId: null, receivedAt: input.now,\n }));\n });\n const proposals = evidence.flatMap(item => {\n const edit = edits.get(contentHash(item.supersedes));\n const decision = decisions.get(contentHash(item.supersedes))!;\n const target = edit?.proposedTarget === undefined ? decision.approvedTarget : edit.proposedTarget;\n return target === null ? [] : [TaskFeedbackSchema.parse({\n schemaVersion: \"openpond.taskFeedbackRecord.v1\", id: `feedback-${contentHash([id, item.id])}`, revision: 1,\n submission: { schemaVersion: \"openpond.taskFeedback.v1\", sourceId: source.id, idempotencyKey: `${id}-${item.id}`,\n exampleId: item.submission.exampleId, attemptId: item.submission.attemptId, expectedEvidenceHash: item.contentHash,\n occurredAt: input.now, kind: \"target_correction\", value: target, note: \"Proposed target for the revised task. Grade and review before admission.\" },\n status: \"pending_review\", evidence: learningRef(item), createdAt: input.now, review: null,\n })];\n });\n return { source, definition, binding, rewards, assets, evidence, proposals };\n}\n", "import { GraderFixtureSchema, TasksetEnvironmentResourceSchema, TasksetSourceRefSchema } from \"./taskset-draft-core.js\";\nimport { TasksetSchema, type GeneratedTaskFile } from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { learningRef, taskBatchPackageMetadata, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { createTasksetDraft } from \"./taskset-draft-authoring.js\";\nimport { learningVerifierModule, projectLearningBatchGraders, importedPackageGraders } from \"./taskset-package-grader-projection.js\";\nimport { decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Local identity includes Profile and provenance; portable identity stays in\n * the receipt. Downloading does not approve targets, privacy or licensing. */\nexport function prepareImportedTasksetPackage(input: {\n package: TasksetPackage; profileId: string; name: string; createdAt: string;\n}) {\n const value = validateTasksetPackage(input.package);\n const release = value.taskset;\n const resources = value.modelResources;\n const learning = value.learningResources ? taskBatchPackageMetadata(release) : undefined;\n const source = TasksetSourceRefSchema.parse({\n schemaVersion: \"openpond.uploadedFileDatasetSource.v1\", kind: \"uploaded_file\",\n id: `package-source-${contentHash({ profileId: input.profileId, packageHash: value.contentHash })}`,\n profileId: input.profileId, title: input.name, sourceHash: value.contentHash, occurredAt: input.createdAt,\n licensingStatus: \"pending\", secretScanStatus: \"pending\", piiScanStatus: \"pending\",\n originalFileNames: [\"taskset-package.json\"], mediaTypes: [\"application/json\"], sourceFileHashes: [value.contentHash],\n totalBytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, parserVersion: \"openpond.tasksetPackage.v1\", metadata: {},\n });\n const draft = createTasksetDraft({ profileId: input.profileId, id: `${release.id}-import`, name: input.name, now: input.createdAt });\n const files: GeneratedTaskFile[] = [];\n for (const grader of release.graders) if (grader.kind === \"custom_verifier\") {\n const asset = resources?.assets.find(asset => asset.id === grader.verifierRef.id);\n const file = value.files.find(file => file.asset.id === grader.verifierRef.id);\n if (!file) throw new Error(`Imported verifier source is missing: ${grader.id}.`);\n const name = learningVerifierModule(grader.verifierRef.contentHash);\n if (!files.some(file => file.path === name)) files.push({ path: name, role: \"verifier\", content: asset ? verifyLearningTextAsset(asset, grader.verifierRef) : new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file)) });\n }\n const authoring = (release.metadata.ordinaryAuthoring ?? release.metadata.starterAuthoring) as { graderFixtures?: unknown } | undefined;\n const fixtures = GraderFixtureSchema.array().max(100_000).parse(authoring?.graderFixtures ?? []);\n const kind = release.environment.kind === \"text\" ? \"chat\" : release.environment.kind === \"custom_program\" ? \"program\" : release.environment.kind;\n const projected = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\", id: release.id, revision: release.revision,\n profileId: input.profileId, profileRelease: null, createImproveRunId: null,\n name: input.name, objective: resolveTasksetPackageInstructions(value), status: \"needs_review\",\n sourceRefs: [source], datasetArtifact: null, policy: release.policy,\n environment: { ...draft.environment, kind, entrypoint: release.environment.entrypoint,\n resources: TasksetEnvironmentResourceSchema.array().max(10_000).parse(release.metadata.environmentResources ?? []),\n stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds,\n toolNames: release.tools.map(tool => tool.name), defaultTimeoutMs: release.environment.defaultTimeoutMs,\n networkPolicy: release.environment.networkPolicy, metadata: {\n runtimeSourceTasksetId: tasksetPackageSourceId(input.profileId, value.contentHash),\n portableEnvironment: release.environment, portableTools: release.tools,\n portableExecutionResources: { environment: value.environment, verifierSet: value.verifierSet },\n } },\n capabilities: { ...draft.capabilities, taskKind: kind === \"chat\" ? \"chat\" : kind === \"program\" ? \"custom_program\" : \"single_agent\",\n compatibleMethods: [\"none\"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful,\n rewardKinds: [...new Set(release.graders.map(grader => grader.kind === \"human\" ? \"human\" : grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))],\n },\n tasks: release.tasks.map(task => ({ ...task, schemaVersion: \"openpond.taskData.v1\", sourceRefs: [source.id],\n assets: task.artifactRefs.map(asset => ({ id: asset.id, sourceRefId: source.id, artifactRef: asset.path,\n fileName: asset.path.split(\"/\").at(-1)!, mediaType: asset.mediaType, sha256: asset.contentHash,\n sizeBytes: asset.sizeBytes, split: task.split, metadata: { portableAsset: asset } })),\n ...(task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map(output => ({ ...output,\n schemaRef: output.schemaRef?.id ?? null, maxBytes: output.maxBytes ?? undefined })) } : {}),\n metadata: { portableTaskRecord: task, exampleOrigin: \"imported\" },\n })),\n graders: resources ? projectLearningBatchGraders(resources.rewardBinding, resources.rewards, resources.assets)\n : learning ? projectLearningBatchGraders(learning.binding, learning.rewards, value.learningResources!.assets) : importedPackageGraders(value),\n graderFixtures: fixtures, learningSignals: draft.learningSignals,\n ...(release.metrics ? { metrics: release.metrics } : {}),\n authoringProvenance: { schemaVersion: \"openpond.taskAuthoringProvenance.v1\", model: null, modelConfig: {},\n skillHash: contentHash(\"openpond-package-import-v1\"), promptTemplateVersion: \"package-import-v1\", buildIntent: \"discovery\",\n buildSpecification: null, evidenceHashes: [value.contentHash], tasksetSdkVersion: \"package-import-v1\",\n sourceCommit: null, repairHistory: [], createdAt: input.createdAt },\n readiness: null, contentHash: \"00000000\", createdAt: input.createdAt, updatedAt: input.createdAt,\n metadata: { importedPackageHash: value.contentHash,\n ...(learning ? { learning } : {}),\n portableFileInventory: value.files.map(file => ({ asset: file.asset, sourcePath: file.asset.path })),\n ...(resources ? { taskDefinition: learningRef(resources.taskDefinition),\n rewardBinding: learningRef(resources.rewardBinding), rewardExecution: { binding: resources.rewardBinding, rewards: resources.rewards } } : {}),\n portableCapabilities: release.capabilities, derivedPortableMetadata: release.metadata,\n ...(release.metadata.modelTasksetDerivation ? { modelTasksetDerivation: release.metadata.modelTasksetDerivation } : {}),\n },\n });\n return { package: value, taskset: TasksetSchema.parse({ ...projected, contentHash: computeTasksetHash(projected) }), generatedFiles: files };\n}\n\nexport type PreparedImportedTasksetPackage = ReturnType<typeof prepareImportedTasksetPackage> & { reuseExisting?: boolean };\n\n/** Stable source identity; it is never an authorization or object-store pointer. */\nexport function tasksetPackageSourceId(profileId: string, packageHash: string): string {\n return `package-${contentHash({ profileId, packageHash })}`;\n}\n", "import { z } from \"zod\";\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { learningRef, sameLearningRef } from \"@openpond/evals/learning\";\nimport { ModelTasksetDraftPreparationSchema, TasksetDraftFilePathSchema, type ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { AuthoredTasksetFileInventorySchema } from \"./taskset-authored-files.js\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { isManagedTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { configuredTasksetDraftFiles } from \"./taskset-draft-manifests.js\";\nimport { createTasksetDraftWorkspace, decodeTasksetDraftWorkspaceFile, type TasksetDraftWorkspaceFile } from \"./taskset-draft-workspace.js\";\n\nexport const TasksetDraftSourceInitializationSchema = z.object({\n draft: TasksetDraftSchema,\n filePaths: z.array(z.object({ assetId: z.string().min(1), paths: z.array(TasksetDraftFilePathSchema).min(1).max(10_000) }).strict()).max(10_000),\n}).strict();\nexport type TasksetDraftSourceInitialization = z.infer<typeof TasksetDraftSourceInitializationSchema>;\n\n/** Hosts authorize the source projection and retain this result before writes.\n * Ownership comes from preparation, never from editable projection metadata. */\nexport function prepareTasksetDraftSource(input: { sourceDraft: TasksetDraft; source: TasksetPackage; preparation: ModelTasksetDraftPreparation; expectedModelRevision: number }): TasksetDraftSourceInitialization {\n const source = validateTasksetPackage(input.source);\n const original = TasksetDraftSchema.parse(input.sourceDraft);\n const preparation = ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (source.contentHash !== preparation.sourcePackageHash || !sameLearningRef(learningRef(source.taskset), preparation.sourceTasksetRef)) throw new Error(\"Taskset draft preparation differs from its source package.\");\n if (source.learningResources) throw new Error(\"Reviewed Tasksets require their reviewed authoring workflow.\");\n if (Boolean(source.modelResources) !== (preparation.authoringGraph === \"bound\")) throw new Error(\"Taskset draft authoring graph differs from its source.\");\n const inventory = AuthoredTasksetFileInventorySchema.parse(original.metadata.portableFileInventory ?? []);\n const sourcePath = (relative: string) => isManagedTasksetDraftFilePath(relative)\n ? `source-artifacts/${source.contentHash}/${contentHash(relative)}/${relative.split(\"/\").at(-1)!}` : relative;\n const references = [...original.tasks.flatMap(task => (task.assets ?? []).map(asset => asset.artifactRef)),\n ...(original.environment.resources ?? []).map(resource => resource.path),\n ...source.taskset.tasks.flatMap(task => (task.requiredOutputs ?? []).flatMap(output => output.schemaRef ? [output.schemaRef.path] : [])),\n ...(original.metrics.customAggregator ? [original.metrics.customAggregator.module] : []),\n ...original.graders.flatMap(grader => grader.kind === \"custom_verifier\" ? [grader.module] : [])];\n if (references.some(isManagedTasksetDraftFilePath)) throw new Error(\"A referenced source asset occupies a reserved Taskset authoring path.\");\n const filePaths = source.files.map(file => {\n const paths = new Set([file.asset.path]);\n for (const entry of inventory) if (entry.asset.id === file.asset.id) paths.add(entry.sourcePath);\n for (const task of original.tasks) for (const asset of task.assets ?? []) if (asset.id === file.asset.id) paths.add(asset.artifactRef);\n for (const grader of source.taskset.graders) if (grader.kind === \"custom_verifier\" && grader.verifierRef.id === file.asset.id) {\n const projected = original.graders.find(candidate => candidate.id === grader.id);\n if (projected?.kind === \"custom_verifier\") paths.add(projected.module);\n }\n return { assetId: file.asset.id, paths: [...paths].map(sourcePath) };\n });\n const metadata = { ...original.metadata };\n if (source.modelResources) for (const key of [\"taskDefinition\", \"rewardBinding\", \"rewardExecution\", \"derivedPortableMetadata\", \"modelTasksetDerivation\", \"importedPackageHash\"]) delete metadata[key];\n const draft = TasksetDraftSchema.parse({ ...original, id: preparation.draftId, revision: 1, status: \"draft\",\n graders: original.graders.map(grader => ({ ...grader, metadata: { ...grader.metadata,\n portableGrader: source.taskset.graders.find(candidate => candidate.id === grader.id) } })),\n environment: { ...original.environment, metadata: { ...original.environment.metadata, portableExecutionResources: { environment: source.environment } } },\n modelScope: { modelId: preparation.lineage.owner.modelId, expectedModelRevision: input.expectedModelRevision, source: preparation },\n publishedTasksetRef: preparation.tasksetRevision > 1 ? preparation.sourceTasksetRef : null,\n metadata: { ...metadata, modelTasksetAuthoring: preparation.lineage,\n portableFileInventory: inventory.map(entry => ({ ...entry, sourcePath: sourcePath(entry.sourcePath), asset: { ...entry.asset,\n id: isManagedTasksetDraftFilePath(entry.sourcePath) ? `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: entry.asset.id })}` : entry.asset.id,\n path: sourcePath(entry.asset.path) } })) },\n });\n return TasksetDraftSourceInitializationSchema.parse({ draft, filePaths });\n}\n\n/** Materialize the retained source into an immutable draft snapshot. Callers\n * must never replace a newer saved snapshot with this initial population. */\nexport function materializeTasksetDraftWorkspace(input: { initialized: TasksetDraftSourceInitialization; source: TasksetPackage }) {\n const initialized = TasksetDraftSourceInitializationSchema.parse(input.initialized);\n const source = validateTasksetPackage(input.source);\n if (initialized.draft.modelScope?.source?.sourcePackageHash !== source.contentHash) throw new Error(\"Taskset draft lost its source preparation.\");\n const files = new Map<string, TasksetDraftWorkspaceFile>();\n for (const mapping of initialized.filePaths) {\n const file = source.files.find(candidate => candidate.asset.id === mapping.assetId);\n if (!file) throw new Error(\"Taskset draft source asset is missing.\");\n for (const path of mapping.paths) {\n const previous = files.get(path);\n if (previous && previous.contentHash !== file.asset.contentHash) throw new Error(\"Taskset draft source paths conflict.\");\n files.set(path, { path, contentHash: file.asset.contentHash, sizeBytes: file.asset.sizeBytes, base64: file.base64 });\n }\n }\n for (const configured of configuredTasksetDraftFiles(initialized.draft)) if (!files.has(configured.relativePath)) {\n const bytes = new TextEncoder().encode(configured.source);\n files.set(configured.relativePath, { path: configured.relativePath, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: Buffer.from(bytes).toString(\"base64\") });\n }\n let draft = initialized.draft;\n if (draft.metrics.customAggregator) {\n const file = files.get(draft.metrics.customAggregator.module);\n if (!file) throw new Error(\"Declared Taskset metric module is missing.\");\n decodeTasksetDraftWorkspaceFile(file);\n draft = TasksetDraftSchema.parse({ ...draft, metrics: { ...draft.metrics, customAggregator: { ...draft.metrics.customAggregator, contentHash: file.contentHash } } });\n }\n return createTasksetDraftWorkspace({ schemaVersion: \"openpond.tasksetDraftWorkspace.v1\", draft, files: [...files.values()] });\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sealLearningContent, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { RewardBinding, RewardRelease } from \"@openpond/evals/rewards\";\nimport { compileModelTasksetReward } from \"./model-taskset-derivation.js\";\nimport { createTasksetPackage, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { decodeTasksetPackageFile } from \"./taskset-package-files.js\";\nimport { resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\n\n/** Bind a saved Reward without rewriting task envelopes, private context, tools\n * or arbitrary binary files. Compatibility is admission, not qualification. */\nexport function bindOrdinaryModelTasksetReward(input: {\n owner: { scopeId: string; modelId: string };\n source: TasksetPackage;\n rewardBinding: RewardBinding;\n rewards: RewardRelease[];\n assets: LearningTextAsset[];\n}): TasksetPackage {\n const source = validateTasksetPackage(input.source);\n if (source.modelResources || source.learningResources) throw new Error(\"Binding an ordinary Reward requires an ordinary source package.\");\n const instructions = resolveTasksetPackageInstructions(source);\n if (!instructions.trim()) throw new Error(\"Add collection instructions before selecting a saved Reward.\");\n const assets = new Map<string, LearningTextAsset>();\n const execution = resolveTasksetPackageExecution(source);\n for (const asset of execution?.assets ?? []) assets.set(asset.id, asset);\n const contextIds = new Set([\n ...source.taskset.tasks.flatMap(task => task.privilegedContextRef ? [task.privilegedContextRef] : []),\n ...[source.environment.actionSchemaRef, source.environment.observationSchemaRef, source.environment.stateSchemaRef].flatMap(ref => ref ? [ref.id] : []),\n ]);\n for (const id of contextIds) {\n if (assets.has(id)) continue;\n const file = source.files.find(file => file.asset.id === id);\n if (!file) throw new Error(`Source Taskset context is missing: ${id}.`);\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: \"openpond.learningTextAsset.v1\", id, revision: 1, asset: file.asset, text })));\n }\n for (const asset of input.assets) {\n const original = source.files.find(file => file.asset.id === asset.id);\n if (original && sealLearningContent({ asset: original.asset }).contentHash !== sealLearningContent({ asset: asset.asset }).contentHash) throw new Error(`Selected Reward conflicts with a source asset: ${asset.id}.`);\n assets.set(asset.id, asset);\n }\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = source.taskset;\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskDefinition.v1\", id: `${source.taskset.id}-definition`, revision: 1,\n name: source.taskset.id, description: \"\", instructions, category: \"custom\", familyNamespace: source.taskset.id,\n inputSchema: { type: \"object\" }, outputSchema: { type: \"object\" },\n rewardBinding: learningRef(input.rewardBinding), harness: null,\n execution: { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease },\n }));\n const derived = compileModelTasksetReward({ ...input, assets: [...assets.values()], source: {\n taskset: source.taskset, taskDefinition, instructionMode: \"per_task\",\n executionResources: { environment: source.environment, verifierSet: source.verifierSet },\n ...(execution ? { execution: execution.execution } : {}),\n } });\n const files = new Map(source.files.map(file => [file.asset.id, file]));\n for (const asset of derived.assets) {\n let raw = \"\";\n for (const byte of new TextEncoder().encode(asset.text)) raw += String.fromCharCode(byte);\n files.set(asset.id, { asset: asset.asset, base64: btoa(raw) });\n }\n const { taskset, executionResources, ...modelResources } = derived;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset, ...executionResources!, modelResources, files: [...files.values()] });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, learningRef, sameLearningRef, requireLearningRelease, requireLearningResource, taskBatchPackageMetadata,\n type LearningResourcePointer, type LearningTransaction } from \"@openpond/evals/learning\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { ModelBatchReviewInspectionSchema, ModelBatchReviewReceiptSchema, ModelBatchReviewRequestSchema, type ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\nimport { prepareModelBatchReview } from \"./model-batch-review-preparation.js\";\n\nexport * from \"./model-batch-review-contracts.js\";\nexport { LearningDomainError as ModelBatchReviewError } from \"@openpond/evals/learning\";\n\nconst operation = (request: ModelBatchReviewRequest) => `model-batch-review-${contentHash([request.modelId, request.operationId])}`;\n\nexport function inspectModelBatchPackage(raw: unknown) {\n const value = validateTasksetPackage(raw);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n return ModelBatchReviewInspectionSchema.parse({ schemaVersion: \"openpond.modelBatchReviewInspection.v1\", packageHash: value.contentHash,\n definition: metadata.definition, binding: metadata.binding, evidence: value.learningResources.evidence, decisions: value.learningResources.decisions });\n}\n\nexport async function findModelBatchReview(transaction: LearningTransaction, raw: ModelBatchReviewRequest) {\n const request = ModelBatchReviewRequestSchema.parse(raw);\n const prior = await transaction.operation(operation(request));\n if (!prior) return null;\n if (prior.requestHash !== contentHash(request)) throw new LearningDomainError(\"learning_idempotency_conflict\", 409);\n return readReceipt(transaction, request, prior.resources);\n}\n\n/** Run inside the host's scope/Model revision transaction after verifying the\n * selected source package. This publishes new editable evidence, never a Model\n * attachment, admission, source credential, grade, or training job. */\nexport async function beginModelBatchReview(transaction: LearningTransaction, input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n}) {\n const request = ModelBatchReviewRequestSchema.parse(input.request);\n const prior = await findModelBatchReview(transaction, request);\n if (prior) return prior;\n const value = validateTasksetPackage(input.package);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const selected = request.rewardBindingRef;\n const retained = !selected || sameLearningRef(selected, learningRef(metadata.binding));\n const binding = retained ? metadata.binding : await requireLearningRelease(transaction, \"binding\", selected);\n const rewards = retained ? metadata.rewards : await Promise.all(binding.sources.map(source => requireLearningRelease(transaction, \"reward\", source.reward)));\n const assetIds = new Set(rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]).map(asset => asset.id));\n const assets = retained ? value.learningResources.assets : await Promise.all([...assetIds].map(id => requireLearningResource(transaction, \"asset\", id, 1)));\n const prepared = prepareModelBatchReview({ ...input, request, package: value, binding, rewards, assets });\n const pointers: LearningResourcePointer[] = [];\n for (const asset of prepared.assets) {\n const existing = await transaction.get(\"asset\", asset.id, 1);\n if (existing && existing.contentHash !== asset.contentHash) throw new LearningDomainError(\"model_review_asset_conflict\", 409);\n if (!existing) await transaction.put(\"asset\", asset, 0);\n }\n for (const reward of prepared.rewards) await transaction.put(\"reward\", reward, 0);\n await transaction.put(\"binding\", prepared.binding, 0);\n await transaction.put(\"definition\", prepared.definition, 0);\n await transaction.put(\"source\", prepared.source, 0, { parentId: request.modelId });\n pointers.push({ kind: \"source\", id: prepared.source.id, revision: 1 });\n for (const evidence of prepared.evidence) {\n await transaction.put(\"evidence\", evidence, 0, { parentId: prepared.source.id });\n pointers.push({ kind: \"evidence\", id: evidence.id, revision: 1 });\n }\n for (const proposal of prepared.proposals) {\n await transaction.put(\"feedback\", proposal, 0, { parentId: proposal.evidence!.id, status: proposal.status });\n pointers.push({ kind: \"feedback\", id: proposal.id, revision: 1 });\n }\n await transaction.saveOperation(operation(request), { requestHash: contentHash(request), resources: pointers });\n return readReceipt(transaction, request, pointers);\n}\n\nasync function readReceipt(transaction: LearningTransaction, request: ModelBatchReviewRequest, pointers: LearningResourcePointer[]) {\n const resources = await Promise.all(pointers.map(pointer => requireLearningResource(transaction, pointer.kind, pointer.id, pointer.revision)));\n return ModelBatchReviewReceiptSchema.parse({ schemaVersion: \"openpond.modelBatchReviewReceipt.v1\", operationId: request.operationId,\n modelId: request.modelId, source: resources.find(resource => resource.schemaVersion === \"openpond.learningSource.v1\"),\n evidence: resources.filter(resource => resource.schemaVersion === \"openpond.taskEvidence.v1\"),\n proposals: resources.filter(resource => resource.schemaVersion === \"openpond.taskFeedbackRecord.v1\"),\n });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, LearningSourceSchema, TaskDefinitionSchema, TaskEvidenceSchema, TaskFeedbackSchema,\n assertLearningContentHash, learningEvidenceId, learningRef, sameLearningRef, sealLearningContent,\n taskBatchPackageMetadata, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, createRewardBinding, createRewardRelease, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport type { TasksetPackage } from \"./taskset-package-contracts.js\";\nimport type { ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\n\n/** Hosts supply the authorized package and selected Reward graph. Only this\n * new namespace becomes editable; parent sources and decisions are not copied. */\nexport function prepareModelBatchReview(input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n binding: RewardBinding; rewards: RewardRelease[]; assets: LearningTextAsset[];\n}) {\n const { request, package: value } = input;\n const learning = value.learningResources;\n if (!learning) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const id = `model-review-${contentHash([input.scope, request.modelId, request.operationId])}`;\n const edits = new Map(request.examples.map(edit => [contentHash(edit.evidence), edit]));\n const parentRefs = new Set(learning.evidence.map(evidence => contentHash(learningRef(evidence))));\n const decisions = new Map(learning.decisions.map(decision => [contentHash(decision.evidence), decision]));\n if (edits.size !== request.examples.length || request.examples.some(edit => !parentRefs.has(contentHash(edit.evidence)))) {\n throw new LearningDomainError(\"model_review_evidence_mismatch\", 409);\n }\n for (const resource of [input.binding, ...input.rewards, ...input.assets]) assertLearningContentHash(resource);\n resolveBoundRewards(input.binding, input.rewards);\n const rewardByHash = new Map<string, RewardRelease>();\n for (const source of input.binding.sources) {\n const original = input.rewards.find(reward => sameLearningRef(learningRef(reward), source.reward))!;\n const { contentHash: _hash, ...content } = original;\n rewardByHash.set(original.contentHash, createRewardRelease({ ...content, id: `${id}-reward-${original.contentHash}`, revision: 1 }));\n }\n const rewards = [...rewardByHash.values()];\n const { contentHash: _bindingHash, recipeRef: _recipe, ...bindingContent } = input.binding;\n const binding = createRewardBinding({ ...bindingContent, id: `${id}-binding`, revision: 1,\n sources: input.binding.sources.map(source => ({ ...source, reward: learningRef(rewardByHash.get(source.reward.contentHash)!) })),\n }, rewards);\n const assetRefs = rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]);\n const assets = [...new Map(assetRefs.map(ref => {\n const asset = input.assets.find(asset => asset.id === ref.id);\n if (!asset) throw new LearningDomainError(\"model_review_reward_asset_missing\", 422);\n verifyLearningTextAsset(asset, ref);\n if (ref.visibility === \"policy\") throw new LearningDomainError(\"reward_asset_visibility_invalid\", 422);\n return [asset.id, asset] as const;\n })).values()];\n // New graders invalidate the parent's verifier-set identity. Preparation of\n // the newly sealed batch will bind its own exact execution releases.\n const { environmentRelease: _environment, verifierSetRelease: _verifiers, ...execution } = metadata.definition.execution;\n const { contentHash: _definitionHash, ...definitionContent } = metadata.definition;\n const definition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, ...request.definition,\n id: `${id}-definition`, revision: 1, rewardBinding: learningRef(binding), execution: { ...execution,\n policy: { ...execution.policy, hiddenGraderRefs: compileBoundGraders(binding, rewards).filter(grader => grader.privileged).map(grader => grader.id) },\n },\n }));\n const source = LearningSourceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.learningSource.v1\", id, revision: 1, name: `${definition.name} review`, kind: \"direct\",\n taskDefinition: learningRef(definition), enabled: true, allowedSplits: [...new Set(learning.evidence.map(item => item.submission.split))],\n mapping: null, adapterVersion: null, reviewOrigin: { modelId: request.modelId, packageHash: value.contentHash,\n taskset: learningRef(value.taskset), batch: learningRef(learning.batch), rewardBinding: learningRef(input.binding) },\n }));\n const evidence = learning.evidence.map(parent => {\n const edit = edits.get(contentHash(learningRef(parent)));\n // Example/attempt IDs are unique within the original source, not across\n // all sources in a batch. Preserve both parents when merging namespaces.\n const attemptId = `review-${parent.contentHash}`;\n const policyChanged = contentHash({ instructions: definition.instructions, inputSchema: definition.inputSchema, outputSchema: definition.outputSchema, requiredOutputs: definition.requiredOutputs ?? [],\n input: edit?.input ?? parent.submission.input }) !== contentHash({ instructions: metadata.definition.instructions,\n inputSchema: metadata.definition.inputSchema, outputSchema: metadata.definition.outputSchema, requiredOutputs: metadata.definition.requiredOutputs ?? [], input: parent.submission.input });\n return TaskEvidenceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskEvidence.v1\", id: learningEvidenceId(source.id, parent.submission.exampleId, attemptId), revision: 1,\n source: learningRef(source), submission: { ...parent.submission, sourceId: source.id, taskDefinition: learningRef(definition),\n attemptId,\n // The old response was observed under the old policy-visible task. Its\n // parent snapshot remains available, but it is not a run of new inputs.\n observedOutput: policyChanged ? null : parent.submission.observedOutput,\n idempotencyKey: `${id}-${parent.contentHash}`, ...(edit?.input === undefined ? {} : { input: edit.input }),\n ...(edit?.expected === undefined ? {} : { expected: edit.expected }),\n ...(edit?.evaluatorContext === undefined ? {} : { evaluatorContext: edit.evaluatorContext }),\n }, supersedes: learningRef(parent), correctionFeedbackId: null, receivedAt: input.now,\n }));\n });\n const proposals = evidence.flatMap(item => {\n const edit = edits.get(contentHash(item.supersedes));\n const decision = decisions.get(contentHash(item.supersedes))!;\n const target = edit?.proposedTarget === undefined ? decision.approvedTarget : edit.proposedTarget;\n return target === null ? [] : [TaskFeedbackSchema.parse({\n schemaVersion: \"openpond.taskFeedbackRecord.v1\", id: `feedback-${contentHash([id, item.id])}`, revision: 1,\n submission: { schemaVersion: \"openpond.taskFeedback.v1\", sourceId: source.id, idempotencyKey: `${id}-${item.id}`,\n exampleId: item.submission.exampleId, attemptId: item.submission.attemptId, expectedEvidenceHash: item.contentHash,\n occurredAt: input.now, kind: \"target_correction\", value: target, note: \"Proposed target for the revised task. Grade and review before admission.\" },\n status: \"pending_review\", evidence: learningRef(item), createdAt: input.now, review: null,\n })];\n });\n return { source, definition, binding, rewards, assets, evidence, proposals };\n}\n", "import { GraderFixtureSchema, TasksetEnvironmentResourceSchema, TasksetSourceRefSchema } from \"./taskset-draft-core.js\";\nimport { TasksetSchema, type GeneratedTaskFile } from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { learningRef, taskBatchPackageMetadata, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { createTasksetDraft } from \"./taskset-draft-authoring.js\";\nimport { learningVerifierModule, projectLearningBatchGraders, importedPackageGraders } from \"./taskset-package-grader-projection.js\";\nimport { decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Local identity includes Profile and provenance; portable identity stays in\n * the receipt. Downloading does not approve targets, privacy or licensing. */\nexport function prepareImportedTasksetPackage(input: {\n package: TasksetPackage; profileId: string; name: string; createdAt: string;\n}) {\n const value = validateTasksetPackage(input.package);\n const release = value.taskset;\n const resources = value.modelResources;\n const learning = value.learningResources ? taskBatchPackageMetadata(release) : undefined;\n const source = TasksetSourceRefSchema.parse({\n schemaVersion: \"openpond.uploadedFileDatasetSource.v1\", kind: \"uploaded_file\",\n id: `package-source-${contentHash({ profileId: input.profileId, packageHash: value.contentHash })}`,\n profileId: input.profileId, title: input.name, sourceHash: value.contentHash, occurredAt: input.createdAt,\n licensingStatus: \"pending\", secretScanStatus: \"pending\", piiScanStatus: \"pending\",\n originalFileNames: [\"taskset-package.json\"], mediaTypes: [\"application/json\"], sourceFileHashes: [value.contentHash],\n totalBytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, parserVersion: \"openpond.tasksetPackage.v1\", metadata: {},\n });\n const draft = createTasksetDraft({ profileId: input.profileId, id: `${release.id}-import`, name: input.name, now: input.createdAt });\n const files: GeneratedTaskFile[] = [];\n for (const grader of release.graders) if (grader.kind === \"custom_verifier\") {\n const asset = resources?.assets.find(asset => asset.id === grader.verifierRef.id);\n const file = value.files.find(file => file.asset.id === grader.verifierRef.id);\n if (!file) throw new Error(`Imported verifier source is missing: ${grader.id}.`);\n const name = learningVerifierModule(grader.verifierRef.contentHash);\n if (!files.some(file => file.path === name)) files.push({ path: name, role: \"verifier\", content: asset ? verifyLearningTextAsset(asset, grader.verifierRef) : new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file)) });\n }\n const authoring = (release.metadata.ordinaryAuthoring ?? release.metadata.starterAuthoring) as { graderFixtures?: unknown } | undefined;\n const fixtures = GraderFixtureSchema.array().max(100_000).parse(authoring?.graderFixtures ?? []);\n const kind = release.environment.kind === \"text\" ? \"chat\" : release.environment.kind === \"custom_program\" ? \"program\" : release.environment.kind;\n const projected = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\", id: release.id, revision: release.revision,\n profileId: input.profileId, profileRelease: null, createImproveRunId: null,\n name: input.name, objective: resolveTasksetPackageInstructions(value), status: \"needs_review\",\n sourceRefs: [source], datasetArtifact: null, policy: release.policy,\n environment: { ...draft.environment, kind, entrypoint: release.environment.entrypoint,\n resources: TasksetEnvironmentResourceSchema.array().max(10_000).parse(release.metadata.environmentResources ?? []),\n stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds,\n toolNames: release.tools.map(tool => tool.name), defaultTimeoutMs: release.environment.defaultTimeoutMs,\n networkPolicy: release.environment.networkPolicy, metadata: {\n runtimeSourceTasksetId: tasksetPackageSourceId(input.profileId, value.contentHash),\n portableEnvironment: release.environment, portableTools: release.tools,\n portableExecutionResources: { environment: value.environment, verifierSet: value.verifierSet },\n } },\n capabilities: { ...draft.capabilities, taskKind: kind === \"chat\" ? \"chat\" : kind === \"program\" ? \"custom_program\" : \"single_agent\",\n compatibleMethods: [\"none\"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful,\n rewardKinds: [...new Set(release.graders.map(grader => grader.kind === \"human\" ? \"human\" : grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))],\n },\n tasks: release.tasks.map(task => ({ ...task, schemaVersion: \"openpond.taskData.v1\", sourceRefs: [source.id],\n assets: task.artifactRefs.map(asset => ({ id: asset.id, sourceRefId: source.id, artifactRef: asset.path,\n fileName: asset.path.split(\"/\").at(-1)!, mediaType: asset.mediaType, sha256: asset.contentHash,\n sizeBytes: asset.sizeBytes, split: task.split, metadata: { portableAsset: asset } })),\n ...(task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map(output => ({ ...output,\n schemaRef: output.schemaRef?.id ?? null, maxBytes: output.maxBytes ?? undefined })) } : {}),\n metadata: { portableTaskRecord: task, exampleOrigin: \"imported\" },\n })),\n graders: resources ? projectLearningBatchGraders(resources.rewardBinding, resources.rewards, resources.assets)\n : learning ? projectLearningBatchGraders(learning.binding, learning.rewards, value.learningResources!.assets) : importedPackageGraders(value),\n graderFixtures: fixtures, learningSignals: draft.learningSignals,\n ...(release.metrics ? { metrics: release.metrics } : {}),\n authoringProvenance: { schemaVersion: \"openpond.taskAuthoringProvenance.v1\", model: null, modelConfig: {},\n skillHash: contentHash(\"openpond-package-import-v1\"), promptTemplateVersion: \"package-import-v1\", buildIntent: \"discovery\",\n buildSpecification: null, evidenceHashes: [value.contentHash], tasksetSdkVersion: \"package-import-v1\",\n sourceCommit: null, repairHistory: [], createdAt: input.createdAt },\n readiness: null, contentHash: \"00000000\", createdAt: input.createdAt, updatedAt: input.createdAt,\n metadata: { importedPackageHash: value.contentHash,\n tasksetOutputContract: release.metadata.tasksetOutputContract ?? null,\n ...(learning ? { learning } : {}),\n portableFileInventory: value.files.map(file => ({ asset: file.asset, sourcePath: file.asset.path })),\n ...(resources ? { taskDefinition: learningRef(resources.taskDefinition),\n rewardBinding: learningRef(resources.rewardBinding), rewardExecution: { binding: resources.rewardBinding, rewards: resources.rewards } } : {}),\n portableCapabilities: release.capabilities, derivedPortableMetadata: release.metadata,\n ...(release.metadata.modelTasksetDerivation ? { modelTasksetDerivation: release.metadata.modelTasksetDerivation } : {}),\n },\n });\n return { package: value, taskset: TasksetSchema.parse({ ...projected, contentHash: computeTasksetHash(projected) }), generatedFiles: files };\n}\n\nexport type PreparedImportedTasksetPackage = ReturnType<typeof prepareImportedTasksetPackage> & { reuseExisting?: boolean };\n\n/** Stable source identity; it is never an authorization or object-store pointer. */\nexport function tasksetPackageSourceId(profileId: string, packageHash: string): string {\n return `package-${contentHash({ profileId, packageHash })}`;\n}\n", "import { z } from \"zod\";\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { learningRef, sameLearningRef } from \"@openpond/evals/learning\";\nimport { ModelTasksetDraftPreparationSchema, TasksetDraftFilePathSchema, type ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { AuthoredTasksetFileInventorySchema } from \"./taskset-authored-files.js\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { isManagedTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { configuredTasksetDraftFiles } from \"./taskset-draft-manifests.js\";\nimport { createTasksetDraftWorkspace, decodeTasksetDraftWorkspaceFile, type TasksetDraftWorkspaceFile } from \"./taskset-draft-workspace.js\";\n\nexport const TasksetDraftSourceInitializationSchema = z.object({\n draft: TasksetDraftSchema,\n filePaths: z.array(z.object({ assetId: z.string().min(1), paths: z.array(TasksetDraftFilePathSchema).min(1).max(10_000) }).strict()).max(10_000),\n}).strict();\nexport type TasksetDraftSourceInitialization = z.infer<typeof TasksetDraftSourceInitializationSchema>;\n\n/** Hosts authorize the source projection and retain this result before writes.\n * Ownership comes from preparation, never from editable projection metadata. */\nexport function prepareTasksetDraftSource(input: { sourceDraft: TasksetDraft; source: TasksetPackage; preparation: ModelTasksetDraftPreparation; expectedModelRevision: number }): TasksetDraftSourceInitialization {\n const source = validateTasksetPackage(input.source);\n const original = TasksetDraftSchema.parse(input.sourceDraft);\n const preparation = ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (source.contentHash !== preparation.sourcePackageHash || !sameLearningRef(learningRef(source.taskset), preparation.sourceTasksetRef)) throw new Error(\"Taskset draft preparation differs from its source package.\");\n if (source.learningResources) throw new Error(\"Reviewed Tasksets require their reviewed authoring workflow.\");\n if (Boolean(source.modelResources) !== (preparation.authoringGraph === \"bound\")) throw new Error(\"Taskset draft authoring graph differs from its source.\");\n const inventory = AuthoredTasksetFileInventorySchema.parse(original.metadata.portableFileInventory ?? []);\n const sourcePath = (relative: string) => isManagedTasksetDraftFilePath(relative)\n ? `source-artifacts/${source.contentHash}/${contentHash(relative)}/${relative.split(\"/\").at(-1)!}` : relative;\n const references = [...original.tasks.flatMap(task => (task.assets ?? []).map(asset => asset.artifactRef)),\n ...(original.environment.resources ?? []).map(resource => resource.path),\n ...source.taskset.tasks.flatMap(task => (task.requiredOutputs ?? []).flatMap(output => output.schemaRef ? [output.schemaRef.path] : [])),\n ...(original.metrics.customAggregator ? [original.metrics.customAggregator.module] : []),\n ...original.graders.flatMap(grader => grader.kind === \"custom_verifier\" ? [grader.module] : [])];\n if (references.some(isManagedTasksetDraftFilePath)) throw new Error(\"A referenced source asset occupies a reserved Taskset authoring path.\");\n const filePaths = source.files.map(file => {\n const paths = new Set([file.asset.path]);\n for (const entry of inventory) if (entry.asset.id === file.asset.id) paths.add(entry.sourcePath);\n for (const task of original.tasks) for (const asset of task.assets ?? []) if (asset.id === file.asset.id) paths.add(asset.artifactRef);\n for (const grader of source.taskset.graders) if (grader.kind === \"custom_verifier\" && grader.verifierRef.id === file.asset.id) {\n const projected = original.graders.find(candidate => candidate.id === grader.id);\n if (projected?.kind === \"custom_verifier\") paths.add(projected.module);\n }\n return { assetId: file.asset.id, paths: [...paths].map(sourcePath) };\n });\n const metadata = { ...original.metadata };\n if (source.modelResources) for (const key of [\"taskDefinition\", \"rewardBinding\", \"rewardExecution\", \"derivedPortableMetadata\", \"modelTasksetDerivation\", \"importedPackageHash\"]) delete metadata[key];\n const draft = TasksetDraftSchema.parse({ ...original, id: preparation.draftId, revision: 1, status: \"draft\",\n graders: original.graders.map(grader => ({ ...grader, metadata: { ...grader.metadata,\n portableGrader: source.taskset.graders.find(candidate => candidate.id === grader.id) } })),\n environment: { ...original.environment, metadata: { ...original.environment.metadata, portableExecutionResources: { environment: source.environment } } },\n modelScope: { modelId: preparation.lineage.owner.modelId, expectedModelRevision: input.expectedModelRevision, source: preparation },\n publishedTasksetRef: preparation.tasksetRevision > 1 ? preparation.sourceTasksetRef : null,\n metadata: { ...metadata, modelTasksetAuthoring: preparation.lineage,\n portableFileInventory: inventory.map(entry => ({ ...entry, sourcePath: sourcePath(entry.sourcePath), asset: { ...entry.asset,\n id: isManagedTasksetDraftFilePath(entry.sourcePath) ? `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: entry.asset.id })}` : entry.asset.id,\n path: sourcePath(entry.asset.path) } })) },\n });\n return TasksetDraftSourceInitializationSchema.parse({ draft, filePaths });\n}\n\n/** Materialize the retained source into an immutable draft snapshot. Callers\n * must never replace a newer saved snapshot with this initial population. */\nexport function materializeTasksetDraftWorkspace(input: { initialized: TasksetDraftSourceInitialization; source: TasksetPackage }) {\n const initialized = TasksetDraftSourceInitializationSchema.parse(input.initialized);\n const source = validateTasksetPackage(input.source);\n if (initialized.draft.modelScope?.source?.sourcePackageHash !== source.contentHash) throw new Error(\"Taskset draft lost its source preparation.\");\n const files = new Map<string, TasksetDraftWorkspaceFile>();\n for (const mapping of initialized.filePaths) {\n const file = source.files.find(candidate => candidate.asset.id === mapping.assetId);\n if (!file) throw new Error(\"Taskset draft source asset is missing.\");\n for (const path of mapping.paths) {\n const previous = files.get(path);\n if (previous && previous.contentHash !== file.asset.contentHash) throw new Error(\"Taskset draft source paths conflict.\");\n files.set(path, { path, contentHash: file.asset.contentHash, sizeBytes: file.asset.sizeBytes, base64: file.base64 });\n }\n }\n for (const configured of configuredTasksetDraftFiles(initialized.draft)) if (!files.has(configured.relativePath)) {\n const bytes = new TextEncoder().encode(configured.source);\n files.set(configured.relativePath, { path: configured.relativePath, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: Buffer.from(bytes).toString(\"base64\") });\n }\n let draft = initialized.draft;\n if (draft.metrics.customAggregator) {\n const file = files.get(draft.metrics.customAggregator.module);\n if (!file) throw new Error(\"Declared Taskset metric module is missing.\");\n decodeTasksetDraftWorkspaceFile(file);\n draft = TasksetDraftSchema.parse({ ...draft, metrics: { ...draft.metrics, customAggregator: { ...draft.metrics.customAggregator, contentHash: file.contentHash } } });\n }\n return createTasksetDraftWorkspace({ schemaVersion: \"openpond.tasksetDraftWorkspace.v1\", draft, files: [...files.values()] });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["file", "LearningDomainError", "learningRef", "sameLearningRef", "taskBatchPackageMetadata", "TaskDefinitionSchema", "learningRef", "sealLearningContent", "evidence", "source", "asset", "LearningDomainError", "taskBatchPackageMetadata", "sameLearningRef", "learningRef", "learningRef", "taskBatchPackageMetadata", "verifyLearningTextAsset", "taskBatchPackageMetadata", "asset", "file", "verifyLearningTextAsset", "learningRef", "learningRef", "sameLearningRef", "sameLearningRef", "learningRef"]
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-MPAEWI5T.js";
|
|
12
12
|
import "./chunk-YCQVVFE5.js";
|
|
13
13
|
import "./chunk-SX767BS2.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-X64BSFXJ.js";
|
|
15
15
|
import "./chunk-SGRYMU4C.js";
|
|
16
16
|
import "./chunk-YVUIHH6Z.js";
|
|
17
17
|
import "./chunk-RIX56CJL.js";
|
package/dist/experiments.js
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
verifyExperimentRunDetails,
|
|
19
19
|
verifyExternalDatasetPackage
|
|
20
20
|
} from "./chunk-SX767BS2.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-X64BSFXJ.js";
|
|
22
22
|
import "./chunk-SGRYMU4C.js";
|
|
23
23
|
import "./chunk-YVUIHH6Z.js";
|
|
24
24
|
import "./chunk-RIX56CJL.js";
|
package/dist/index.js
CHANGED
|
@@ -119,7 +119,7 @@ import "./chunk-YCQVVFE5.js";
|
|
|
119
119
|
import {
|
|
120
120
|
OpenPondExperimentsClient
|
|
121
121
|
} from "./chunk-SX767BS2.js";
|
|
122
|
-
import "./chunk-
|
|
122
|
+
import "./chunk-X64BSFXJ.js";
|
|
123
123
|
import "./chunk-SGRYMU4C.js";
|
|
124
124
|
import "./chunk-YVUIHH6Z.js";
|
|
125
125
|
import "./chunk-RIX56CJL.js";
|
package/dist/taskset-packages.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskset-package-projection.d.ts","sourceRoot":"","sources":["../../../../../src/taskset-package-projection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuF,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE1J;8EAC8E;AAC9E,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,OAAO,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CAC7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"taskset-package-projection.d.ts","sourceRoot":"","sources":["../../../../../src/taskset-package-projection.ts"],"names":[],"mappings":"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"}
|