openpond-sdk 0.5.28 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LEARNING.md +18 -0
- package/dist/{chunk-SQCACAC7.js → chunk-2FKPFZO5.js} +2 -2
- package/dist/{chunk-FFRYTXGF.js → chunk-355XXLO3.js} +4 -4
- package/dist/chunk-3KXDH6OB.js +16 -0
- package/dist/chunk-3KXDH6OB.js.map +7 -0
- package/dist/{chunk-GZOXT7YE.js → chunk-E5IFONUB.js} +2 -2
- package/dist/{chunk-WT7JU2CT.js → chunk-IHBZQQMS.js} +3 -1
- package/dist/chunk-IHBZQQMS.js.map +7 -0
- package/dist/{chunk-5M3PPP7D.js → chunk-K4C5QOSV.js} +9 -1
- package/dist/chunk-K4C5QOSV.js.map +7 -0
- package/dist/{chunk-B3CH4V35.js → chunk-T5JMZVQR.js} +2 -2
- package/dist/{chunk-ZIMHPYXL.js → chunk-VW2SNUWB.js} +8 -4
- package/dist/chunk-VW2SNUWB.js.map +7 -0
- package/dist/{chunk-O27OEXXB.js → chunk-W2FCKYHV.js} +4 -3
- package/dist/{chunk-O27OEXXB.js.map → chunk-W2FCKYHV.js.map} +2 -2
- package/dist/{chunk-ZNFOVV7B.js → chunk-XANQWTTP.js} +16 -7
- package/dist/chunk-XANQWTTP.js.map +7 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/dist/learning.js +51 -8
- package/dist/learning.js.map +2 -2
- package/dist/model-projects.js +5 -1
- package/dist/model-starter-attempts.js +3 -2
- package/dist/model-starter-catalog.js +5 -4
- package/dist/model-starter-catalog.js.map +1 -1
- package/dist/model-starters.js +5 -4
- package/dist/model-taskset-runs.js +3 -2
- package/dist/model-taskset-runs.js.map +1 -1
- package/dist/taskset-drafts.js +6 -5
- package/dist/taskset-drafts.js.map +1 -1
- package/dist/taskset-packages.js +7 -6
- package/dist/taskset-packages.js.map +1 -1
- package/dist/training-bundle.js +6 -5
- package/dist/training-bundle.js.map +1 -1
- package/dist/training.js +3 -2
- package/dist/types/packages/sdk/src/learning-client.d.ts +11 -0
- package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-learning-intent.d.ts +16 -0
- package/dist/types/packages/sdk/src/model-learning-intent.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-learning-policy.d.ts +155 -1
- package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-projects.d.ts +14 -1
- package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +3 -0
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-execution.d.ts +4 -0
- package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starters.d.ts +45 -0
- package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +16 -0
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +4 -0
- package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +1 -0
- package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +8 -0
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +6 -0
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +8 -0
- package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +5 -0
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +8 -0
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +48 -0
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +32 -0
- package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +1 -0
- package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +5 -0
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-learning-batch.d.ts +4 -0
- package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-5M3PPP7D.js.map +0 -7
- package/dist/chunk-WT7JU2CT.js.map +0 -7
- package/dist/chunk-ZIMHPYXL.js.map +0 -7
- package/dist/chunk-ZNFOVV7B.js.map +0 -7
- /package/dist/{chunk-SQCACAC7.js.map → chunk-2FKPFZO5.js.map} +0 -0
- /package/dist/{chunk-FFRYTXGF.js.map → chunk-355XXLO3.js.map} +0 -0
- /package/dist/{chunk-GZOXT7YE.js.map → chunk-E5IFONUB.js.map} +0 -0
- /package/dist/{chunk-B3CH4V35.js.map → chunk-T5JMZVQR.js.map} +0 -0
package/LEARNING.md
CHANGED
|
@@ -120,3 +120,21 @@ preparation. The returned `tasksetAssetBytes` map uses task-scoped paths and is
|
|
|
120
120
|
passed to `buildTasksetTrainingBundle` or materialized beside the local Taskset.
|
|
121
121
|
Input content participates in the existing privacy scan. File state is reset and
|
|
122
122
|
cleaned up between attempts; a Work environment may hold state during an attempt.
|
|
123
|
+
|
|
124
|
+
### Simple continual-learning creation
|
|
125
|
+
|
|
126
|
+
Hosted creation can pass `learning` to `createModelProjectSaveRequest` as its
|
|
127
|
+
third argument, or in `createModelStarterCreationRequest`. The intent contains
|
|
128
|
+
`mode` (`nightly` or `approved_count`), `minimumTasks`, `localTime`, `timeZone`,
|
|
129
|
+
`maximumSpendUsd` and `maximumDailySpendUsd`. It participates in the operation
|
|
130
|
+
hash. The hosted owner commits the Model, exact task source, enabled policy and
|
|
131
|
+
receipt together; a failed policy cannot leave a partially created Model.
|
|
132
|
+
Local creation rejects this hosted intent. Existing Models edit the authoritative
|
|
133
|
+
policy with Learning commands instead of resubmitting creation preferences.
|
|
134
|
+
|
|
135
|
+
`createHostedLearningPolicyContent` accepts an explicit `settings.trigger` for
|
|
136
|
+
nightly, task-count, interval or manual policies. New settings default to ten
|
|
137
|
+
tasks; existing policy limits remain unchanged. Candidates still require explicit
|
|
138
|
+
acceptance and serving selection. `learning.inspectTaskQueue(modelProjectId?)`
|
|
139
|
+
returns the shared eligible, unconsumed task count, or explicit issues when the
|
|
140
|
+
count cannot be determined.
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
ModelProjectVersionedRefSchema,
|
|
3
3
|
canonicalJson,
|
|
4
4
|
canonicalSha256
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XANQWTTP.js";
|
|
6
6
|
|
|
7
7
|
// src/model-starter-attempts.ts
|
|
8
8
|
import { z } from "zod";
|
|
@@ -174,4 +174,4 @@ export {
|
|
|
174
174
|
OpenPondModelStarterAttemptError,
|
|
175
175
|
OpenPondModelStarterAttemptsClient
|
|
176
176
|
};
|
|
177
|
-
//# sourceMappingURL=chunk-
|
|
177
|
+
//# sourceMappingURL=chunk-2FKPFZO5.js.map
|
|
@@ -14,13 +14,13 @@ import {
|
|
|
14
14
|
TasksetSourceRefSchema,
|
|
15
15
|
computeTasksetHash,
|
|
16
16
|
validateTaskset
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IHBZQQMS.js";
|
|
18
18
|
import {
|
|
19
19
|
MAX_TASKSET_PACKAGE_BYTES,
|
|
20
20
|
TasksetPackageSchema,
|
|
21
21
|
tasksetPackageRewardBinding,
|
|
22
22
|
validateTasksetPackage
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-T5JMZVQR.js";
|
|
24
24
|
import {
|
|
25
25
|
ModelTasksetDraftPreparationSchema,
|
|
26
26
|
TasksetDraftFileContentSchema,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
HostedModelProjectSummarySchema,
|
|
40
40
|
HostedModelProjectSyncSchema,
|
|
41
41
|
HostedModelProjectTrainingSetupSchema
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-XANQWTTP.js";
|
|
43
43
|
|
|
44
44
|
// src/taskset-package-client.ts
|
|
45
45
|
import { z } from "zod";
|
|
@@ -917,4 +917,4 @@ export {
|
|
|
917
917
|
saveTasksetDraftWorkspaceFile,
|
|
918
918
|
decodeTasksetDraftWorkspaceFile
|
|
919
919
|
};
|
|
920
|
-
//# sourceMappingURL=chunk-
|
|
920
|
+
//# sourceMappingURL=chunk-355XXLO3.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// src/model-learning-intent.ts
|
|
2
|
+
import { NightlyScheduleSchema } from "@openpond/evals/learning";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
var ModelInitialLearningSchema = NightlyScheduleSchema.extend({
|
|
5
|
+
mode: z.enum(["nightly", "approved_count"]),
|
|
6
|
+
minimumTasks: z.number().int().min(1).max(1e4),
|
|
7
|
+
maximumSpendUsd: z.number().positive().max(1e5),
|
|
8
|
+
maximumDailySpendUsd: z.number().positive().max(1e6)
|
|
9
|
+
}).strict().superRefine((value, context) => {
|
|
10
|
+
if (value.maximumDailySpendUsd < value.maximumSpendUsd) context.addIssue({ code: "custom", path: ["maximumDailySpendUsd"], message: "The daily budget must cover one update." });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
ModelInitialLearningSchema
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=chunk-3KXDH6OB.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/model-learning-intent.ts"],
|
|
4
|
+
"sourcesContent": ["import { NightlyScheduleSchema } from \"@openpond/evals/learning\";\nimport { z } from \"zod\";\n\n/** An explicit creation choice, committed atomically with its new Model.\n * Existing Models edit the authoritative policy through Learning commands. */\nexport const ModelInitialLearningSchema = NightlyScheduleSchema.extend({\n mode: z.enum([\"nightly\", \"approved_count\"]),\n minimumTasks: z.number().int().min(1).max(10_000),\n maximumSpendUsd: z.number().positive().max(100_000),\n maximumDailySpendUsd: z.number().positive().max(1_000_000),\n}).strict().superRefine((value, context) => {\n if (value.maximumDailySpendUsd < value.maximumSpendUsd) context.addIssue({ code: \"custom\", path: [\"maximumDailySpendUsd\"], message: \"The daily budget must cover one update.\" });\n});\nexport type ModelInitialLearning = z.infer<typeof ModelInitialLearningSchema>;\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,6BAA6B;AACtC,SAAS,SAAS;AAIX,IAAM,6BAA6B,sBAAsB,OAAO;AAAA,EACrE,MAAM,EAAE,KAAK,CAAC,WAAW,gBAAgB,CAAC;AAAA,EAC1C,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EAChD,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,GAAO;AAAA,EAClD,sBAAsB,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,GAAS;AAC3D,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,YAAY;AAC1C,MAAI,MAAM,uBAAuB,MAAM,gBAAiB,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,sBAAsB,GAAG,SAAS,0CAA0C,CAAC;AACjL,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
assertCanonicalPayloadSize,
|
|
18
18
|
canonicalSha256,
|
|
19
19
|
parseBoundedJson
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XANQWTTP.js";
|
|
21
21
|
|
|
22
22
|
// src/training.ts
|
|
23
23
|
import { z as z6 } from "zod";
|
|
@@ -865,4 +865,4 @@ export {
|
|
|
865
865
|
TrainingCapabilitiesSchema,
|
|
866
866
|
createTrainingClient
|
|
867
867
|
};
|
|
868
|
-
//# sourceMappingURL=chunk-
|
|
868
|
+
//# sourceMappingURL=chunk-E5IFONUB.js.map
|
|
@@ -280,6 +280,7 @@ var HarnessActionBindingSchema = z3.object({
|
|
|
280
280
|
|
|
281
281
|
// src/taskset-draft-core.ts
|
|
282
282
|
import { z as z4 } from "zod";
|
|
283
|
+
import { CustomVerifierRuntimeSchema } from "@openpond/evals/tasksets";
|
|
283
284
|
var IdSchema3 = z4.string().trim().min(1).max(240);
|
|
284
285
|
var TimestampSchema3 = z4.string().trim().min(1);
|
|
285
286
|
var HashSchema3 = z4.string().trim().min(8).max(256);
|
|
@@ -535,6 +536,7 @@ var HumanGraderSpecSchema = GraderBaseSchema.extend({
|
|
|
535
536
|
});
|
|
536
537
|
var CustomVerifierGraderSpecSchema = GraderBaseSchema.extend({
|
|
537
538
|
kind: z4.literal("custom_verifier"),
|
|
539
|
+
runtime: CustomVerifierRuntimeSchema.optional(),
|
|
538
540
|
module: z4.string().trim().min(1).max(1e3).refine(safeRelativeFilePath, "Custom verifier modules must use a safe relative path."),
|
|
539
541
|
exportName: CodeIdentifierSchema,
|
|
540
542
|
timeoutMs: z4.number().int().positive().max(3e5),
|
|
@@ -1222,4 +1224,4 @@ export {
|
|
|
1222
1224
|
computeTasksetHash,
|
|
1223
1225
|
validatePortability
|
|
1224
1226
|
};
|
|
1225
|
-
//# sourceMappingURL=chunk-
|
|
1227
|
+
//# sourceMappingURL=chunk-IHBZQQMS.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/taskset-draft-dataset-artifacts.ts", "../src/taskset-draft-dataset-sources.ts", "../src/taskset-draft-harness-actions.ts", "../src/taskset-draft-core.ts", "../src/taskset-authored-contracts.ts", "../src/taskset-authored-validation.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst RelativePathSchema = z\n .string()\n .trim()\n .min(1)\n .max(1_000)\n .refine(\n (value) =>\n !value.startsWith(\"/\")\n && !value.startsWith(\"\\\\\")\n && !value.split(/[\\\\/]/).includes(\"..\"),\n \"Artifact paths must be relative and stay inside the Dataset.\",\n );\n\nexport const DatasetSplitSchema = z.enum([\n \"train\",\n \"validation\",\n \"test\",\n \"frozen_eval\",\n]);\n\nexport const DatasetSemanticFieldSchema = z.object({\n name: z.string().trim().min(1).max(500),\n semanticRole: z.enum([\n \"row_id\",\n \"cluster_id\",\n \"prompt\",\n \"messages\",\n \"demonstration\",\n \"chosen\",\n \"rejected\",\n \"expected_output\",\n \"privileged_context\",\n \"reward\",\n \"feedback\",\n \"tag\",\n \"metadata\",\n ]),\n logicalType: z.enum([\n \"string\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"json\",\n \"messages\",\n ]),\n nullable: z.boolean(),\n policy: z.enum([\"visible\", \"privileged\", \"metadata\"]),\n});\n\nexport const DatasetSemanticSchemaSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetSemanticSchema.v1\"),\n fields: z.array(DatasetSemanticFieldSchema).min(1).max(10_000),\n schemaHash: HashSchema,\n});\n\nexport const DatasetShardRefSchema = z.object({\n id: IdSchema,\n split: DatasetSplitSchema,\n path: RelativePathSchema,\n contentHash: HashSchema,\n schemaHash: HashSchema,\n sizeBytes: z.number().int().nonnegative(),\n rowCount: z.number().int().positive(),\n rowGroupCount: z.number().int().positive(),\n});\n\nexport const DatasetArtifactManifestSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifact.v1\"),\n id: IdSchema,\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n contentHash: HashSchema,\n format: z.literal(\"parquet\"),\n schema: DatasetSemanticSchemaSchema,\n shards: z.array(DatasetShardRefSchema).min(1).max(100_000),\n rowCount: z.number().int().positive(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sourceReceiptRefs: z.array(IdSchema).min(1).max(100_000),\n mappingHash: HashSchema,\n qualityReportHash: HashSchema,\n createdAt: TimestampSchema,\n});\n\nexport const DatasetArtifactSummarySchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifactSummary.v1\"),\n artifactId: IdSchema,\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n format: z.literal(\"parquet\"),\n rowCount: z.number().int().positive(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sizeBytes: z.number().int().nonnegative(),\n contentHash: HashSchema,\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n createdAt: TimestampSchema,\n});\n\nexport const DatasetCatalogItemSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetCatalogItem.v1\"),\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n artifactId: IdSchema.nullable(),\n name: z.string().trim().min(1).max(500),\n status: z.enum([\n \"draft\",\n \"awaiting_disclosure_approval\",\n \"awaiting_materialization_approval\",\n \"materializing\",\n \"validating\",\n \"needs_review\",\n \"baselining\",\n \"ready\",\n \"blocked\",\n \"failed\",\n \"archived\",\n ]),\n storageKind: z.enum([\"inline\", \"parquet\"]),\n rowCount: z.number().int().nonnegative(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sizeBytes: z.number().int().nonnegative().nullable(),\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetCatalogResponseSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetCatalog.v1\"),\n profileId: IdSchema,\n datasets: z.array(DatasetCatalogItemSchema),\n generatedAt: TimestampSchema,\n});\n\nexport const DatasetArtifactRegistryEntrySchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifactRegistry.v1\"),\n manifest: DatasetArtifactManifestSchema,\n profileId: IdSchema,\n storageRoot: z.string().trim().min(1).max(4_000),\n relativeManifestPath: RelativePathSchema,\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n verifiedAt: TimestampSchema.nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetRowPageRequestSchema = z.object({\n split: DatasetSplitSchema.nullable().default(null),\n cursor: z.string().trim().min(1).max(2_000).nullable().default(null),\n limit: z.number().int().min(1).max(100).default(25),\n columns: z.array(z.string().trim().min(1).max(500)).max(100).default([]),\n});\n\nexport const DatasetRowPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetRowPage.v1\"),\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n artifactHash: HashSchema,\n split: DatasetSplitSchema.nullable(),\n rows: z.array(z.record(z.string(), z.unknown())).max(100),\n nextCursor: z.string().max(2_000).nullable(),\n totalRows: z.number().int().nonnegative(),\n returnedRows: z.number().int().nonnegative(),\n});\n\nexport const DatasetStorageSettingsSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetStorageSettings.v1\"),\n datasetStorePath: z.string().trim().min(1).max(4_000),\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetStorageRootSchema = z.object({\n id: IdSchema,\n label: z.string().trim().min(1).max(500),\n path: z.string().trim().min(1).max(4_000),\n datasetStorePath: z.string().trim().min(1).max(4_000),\n kind: z.enum([\"local\", \"network\", \"removable\", \"cache\"]),\n configured: z.boolean(),\n mounted: z.boolean(),\n writable: z.boolean(),\n totalBytes: z.number().int().nonnegative().nullable(),\n freeBytes: z.number().int().nonnegative().nullable(),\n});\n\nexport const DatasetStorageStateSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetStorageState.v1\"),\n settings: DatasetStorageSettingsSchema,\n storageRoots: z.array(DatasetStorageRootSchema),\n});\n\nexport const UpdateDatasetStorageSettingsRequestSchema = z.object({\n datasetStorePath: z.string().trim().min(1).max(4_000),\n});\n\nexport type DatasetSplit = z.infer<typeof DatasetSplitSchema>;\nexport type DatasetSemanticField = z.infer<typeof DatasetSemanticFieldSchema>;\nexport type DatasetSemanticSchema = z.infer<typeof DatasetSemanticSchemaSchema>;\nexport type DatasetShardRef = z.infer<typeof DatasetShardRefSchema>;\nexport type DatasetArtifactManifest = z.infer<\n typeof DatasetArtifactManifestSchema\n>;\nexport type DatasetArtifactSummary = z.infer<\n typeof DatasetArtifactSummarySchema\n>;\nexport type DatasetCatalogItem = z.infer<typeof DatasetCatalogItemSchema>;\nexport type DatasetCatalogResponse = z.infer<\n typeof DatasetCatalogResponseSchema\n>;\nexport type DatasetArtifactRegistryEntry = z.infer<\n typeof DatasetArtifactRegistryEntrySchema\n>;\nexport type DatasetRowPageRequest = z.infer<\n typeof DatasetRowPageRequestSchema\n>;\nexport type DatasetRowPage = z.infer<typeof DatasetRowPageSchema>;\nexport type DatasetStorageSettings = z.infer<typeof DatasetStorageSettingsSchema>;\nexport type DatasetStorageState = z.infer<typeof DatasetStorageStateSchema>;\nexport type DatasetStorageRoot = z.infer<typeof DatasetStorageRootSchema>;\n", "import { z } from \"zod\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst RevisionSchema = z.string().trim().min(7).max(256);\n\nexport const DatasetSourceReviewStatusSchema = z.enum([\n \"pending\",\n \"approved\",\n \"review\",\n \"blocked\",\n]);\n\nconst ExternalDatasetSourceBaseSchema = z.object({\n id: IdSchema,\n profileId: IdSchema,\n title: z.string().trim().min(1).max(500),\n sourceHash: HashSchema,\n occurredAt: TimestampSchema,\n licensingStatus: DatasetSourceReviewStatusSchema,\n secretScanStatus: z.enum([\"pending\", \"passed\", \"blocked\"]),\n piiScanStatus: z.enum([\"pending\", \"passed\", \"review\", \"blocked\"]),\n metadata: MetadataSchema,\n});\n\nexport const HuggingFaceDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.huggingFaceDatasetSource.v1\"),\n kind: z.literal(\"huggingface\"),\n repositoryId: z.string().trim().regex(/^[^/\\s]+\\/[^/\\s]+$/).max(500),\n repositoryUrl: z.string().url().max(2_000),\n revision: RevisionSchema,\n configuration: z.string().trim().min(1).max(500),\n upstreamSplits: z.array(z.string().trim().min(1).max(500)).min(1).max(1_000),\n gated: z.boolean(),\n private: z.boolean(),\n declaredLicense: z.string().trim().min(1).max(500).nullable(),\n sourceFileHashes: z.array(HashSchema).min(1).max(100_000),\n });\n\nexport const UploadedFileDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.uploadedFileDatasetSource.v1\"),\n kind: z.literal(\"uploaded_file\"),\n originalFileNames: z.array(z.string().trim().min(1).max(500)).min(1).max(1_000),\n mediaTypes: z.array(z.string().trim().min(1).max(200)).min(1).max(1_000),\n sourceFileHashes: z.array(HashSchema).min(1).max(1_000),\n totalBytes: z.number().int().nonnegative(),\n parserVersion: z.string().trim().min(1).max(200),\n });\n\nexport const GeneratedDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.generatedDatasetSource.v1\"),\n kind: z.literal(\"generated\"),\n generatorId: IdSchema,\n generatorVersion: z.string().trim().min(1).max(200),\n seed: z.number().int(),\n generatorHash: HashSchema,\n });\n\nexport const LearningBatchDatasetSourceRefSchema = ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.learningBatchDatasetSource.v1\"),\n kind: z.literal(\"learning_batch\"),\n batch: z.object({ id: IdSchema, revision: z.number().int().positive(), contentHash: HashSchema }).strict(),\n taskDefinition: z.object({ id: IdSchema, revision: z.number().int().positive(), contentHash: HashSchema }).strict(),\n admittedBy: IdSchema,\n});\n\nexport const ExternalDatasetSourceRefSchema = z.discriminatedUnion(\"kind\", [\n HuggingFaceDatasetSourceRefSchema,\n UploadedFileDatasetSourceRefSchema,\n GeneratedDatasetSourceRefSchema,\n LearningBatchDatasetSourceRefSchema,\n]);\n\nexport type DatasetSourceReviewStatus = z.infer<\n typeof DatasetSourceReviewStatusSchema\n>;\nexport type HuggingFaceDatasetSourceRef = z.infer<\n typeof HuggingFaceDatasetSourceRefSchema\n>;\nexport type UploadedFileDatasetSourceRef = z.infer<\n typeof UploadedFileDatasetSourceRefSchema\n>;\nexport type GeneratedDatasetSourceRef = z.infer<\n typeof GeneratedDatasetSourceRefSchema\n>;\nexport type ExternalDatasetSourceRef = z.infer<\n typeof ExternalDatasetSourceRefSchema\n>;\n", "import { z } from \"zod\";\n\nimport {\n ImmutableReleaseRefSchema,\n ReleaseHashSchema,\n ReleaseIdSchema,\n} from \"@openpond/harness\";\n\nexport const HarnessActionBindingSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.harnessActionBinding.v1\"),\n actionId: ReleaseIdSchema,\n modelToolName: z\n .string()\n .trim()\n .min(1)\n .max(64)\n .regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/),\n description: z.string().trim().min(1).max(1_000),\n inputSchema: z.record(z.string(), z.unknown()),\n actionSchemaHash: ReleaseHashSchema,\n agentRelease: ImmutableReleaseRefSchema,\n implementationHash: ReleaseHashSchema,\n runtimeBindingId: ReleaseIdSchema,\n capabilityReceiptHash: ReleaseHashSchema,\n sideEffect: z.enum([\"read\", \"write\"]),\n studentVisible: z.boolean(),\n timeoutMs: z.number().int().positive().max(3_600_000),\n episodeArgumentBindings: z\n .array(\n z\n .object({\n argument: ReleaseIdSchema,\n source: z.literal(\"case_id\"),\n })\n .strict(),\n )\n .max(20)\n .default([]),\n })\n .strict();\n\nexport type HarnessActionBinding = z.infer<typeof HarnessActionBindingSchema>;\n", "import { z } from \"zod\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { CustomVerifierRuntimeSchema } from \"@openpond/evals/tasksets\";\nimport { DatasetSplitSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport { ExternalDatasetSourceRefSchema } from \"./taskset-draft-dataset-sources.js\";\nimport { HarnessActionBindingSchema } from \"./taskset-draft-harness-actions.js\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst Sha256Schema = z.string().trim().regex(/^[a-f0-9]{64}$/);\nconst CodeIdentifierSchema = z.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst NullableIdSchema = IdSchema.nullable();\n\nfunction safeRelativeFilePath(value: string): boolean {\n const normalized = value.trim().replaceAll(\"\\\\\", \"/\");\n if (\n !normalized\n || normalized.startsWith(\"/\")\n || normalized === \".\"\n || normalized === \"..\"\n ) {\n return false;\n }\n return !normalized.split(\"/\").some((segment) =>\n !segment || segment === \".\" || segment === \"..\"\n );\n}\n\nfunction safeFileName(value: string): boolean {\n const normalized = value.trim();\n return (\n normalized.length > 0\n && normalized !== \".\"\n && normalized !== \"..\"\n && !normalized.includes(\"/\")\n && !normalized.includes(\"\\\\\")\n && !normalized.includes(\"\\0\")\n );\n}\n\nexport const TasksetSplitSchema = DatasetSplitSchema;\n\nexport const TasksetPurposeSchema = z.enum([\"general\", \"benchmark\"]);\n\nexport const TasksetBenchmarkBindingSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetBenchmark.v1\"),\n definitionId: IdSchema,\n releaseId: IdSchema,\n releaseHash: Sha256Schema,\n managedReleasePath: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Benchmark release paths must remain relative.\"),\n adaptationSplit: TasksetSplitSchema,\n evaluationSplit: TasksetSplitSchema,\n primaryMetric: z.enum([\n \"foreground_tokens\",\n \"success_rate\",\n \"latency_ms\",\n \"cost_usd\",\n ]),\n qualityGate: z.enum([\"none\", \"non_regression\", \"all_pass\"]),\n source: z.enum([\"builtin\", \"imported\"]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetPreferenceComparisonBindingSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetPreferenceComparisonBinding.v1\"),\n releaseId: IdSchema,\n releaseHash: Sha256Schema,\n publishedAt: TimestampSchema,\n metadata: MetadataSchema,\n});\n\nexport const TrainingSourceConsentSchema = z.object({\n status: z.enum([\"pending\", \"granted\", \"denied\", \"revoked\"]),\n scope: z.enum([\"metadata_only\", \"selected_turns\", \"full_session\"]),\n grantedBy: NullableIdSchema,\n grantedAt: TimestampSchema.nullable(),\n purpose: z.literal(\"task_authoring_and_evaluation\"),\n});\n\nexport const TrainingSourceRefSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingSource.v1\"),\n id: IdSchema,\n profileId: IdSchema,\n sessionId: IdSchema,\n turnIds: z.array(IdSchema).max(1_000).default([]),\n workspaceId: NullableIdSchema,\n sourceHash: HashSchema,\n clusterKey: IdSchema,\n title: z.string().trim().min(1).max(500),\n occurredAt: TimestampSchema,\n consent: TrainingSourceConsentSchema,\n connectedAppIds: z.array(IdSchema).max(100).default([]),\n secretScanStatus: z.enum([\"pending\", \"passed\", \"blocked\"]),\n piiScanStatus: z.enum([\"pending\", \"passed\", \"review\", \"blocked\"]),\n licensingStatus: z.enum([\"pending\", \"approved\", \"review\", \"blocked\"]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetSourceRefSchema = z.union([\n TrainingSourceRefSchema,\n ExternalDatasetSourceRefSchema,\n]);\n\nexport const TaskPolicyBoundarySchema = z.object({\n policyVisibleFields: z.array(IdSchema).max(1_000).default([]),\n privilegedFields: z.array(IdSchema).max(1_000).default([]),\n hiddenGraderRefs: z.array(IdSchema).max(100).default([]),\n connectedAppScopes: z.array(IdSchema).max(100).default([]),\n});\n\nexport const TaskAssetRefSchema = z.object({\n id: IdSchema,\n sourceRefId: IdSchema,\n artifactRef: z.string().trim().min(1).max(4_000)\n .refine(safeRelativeFilePath, \"Task asset references must be safe relative paths.\"),\n fileName: z.string().trim().min(1).max(500)\n .refine(safeFileName, \"Task asset file names must not contain path separators.\"),\n mediaType: z.string().trim().min(1).max(200),\n sha256: Sha256Schema,\n sizeBytes: z.number().int().nonnegative().max(250_000_000),\n split: TasksetSplitSchema,\n metadata: MetadataSchema,\n});\n\nexport const TaskRequiredOutputSchema = z.object({\n path: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Required output paths must stay inside the Work output directory.\"),\n mediaType: z.string().trim().min(1).max(200),\n schemaRef: IdSchema.nullable().optional(),\n maxBytes: z.number().int().positive().max(10_000_000).optional(),\n metadata: MetadataSchema,\n});\n\nexport const TaskDataRecordSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskData.v1\"),\n id: IdSchema,\n clusterKey: IdSchema,\n split: TasksetSplitSchema,\n input: z.record(z.string(), z.unknown()),\n expectedOutput: z.record(z.string(), z.unknown()).nullable(),\n policyVisibleContext: z.record(z.string(), z.unknown()).default({}),\n privilegedContextRef: NullableIdSchema,\n sourceRefs: z.array(IdSchema).min(1).max(100),\n assets: z.array(TaskAssetRefSchema).max(1_000).optional(),\n resourceRefs: z.array(IdSchema).max(1_000).optional(),\n requiredOutputs: z.array(TaskRequiredOutputSchema).max(100).optional(),\n tags: z.array(IdSchema).max(100).default([]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetEnvironmentResourceSchema = z.object({\n id: IdSchema,\n kind: z.enum([\"file\", \"catalog\", \"configuration\", \"code_module\"]),\n path: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Environment resource paths must remain relative.\"),\n mediaType: z.string().trim().min(1).max(200).nullable().optional(),\n visibility: z.enum([\"policy_visible\", \"policy_hidden\", \"privileged\"]),\n required: z.boolean(),\n metadata: MetadataSchema,\n});\n\nconst LearningSignalBaseSchema = z.object({\n id: IdSchema,\n taskId: NullableIdSchema,\n sourceRefs: z.array(IdSchema).min(1).max(100),\n artifactRef: IdSchema,\n approved: z.boolean(),\n confidence: z.number().min(0).max(1),\n metadata: MetadataSchema,\n});\n\nexport const DemonstrationSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"demonstration\"),\n prompt: z.string().max(100_000).nullable().default(null),\n response: z.string().max(200_000).nullable().default(null),\n});\n\nexport const PreferenceSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"preference\"),\n prompt: z.string().max(100_000),\n chosen: z.string().max(200_000),\n rejected: z.string().max(200_000),\n rationale: z.string().max(100_000).nullable().default(null),\n});\n\nexport const CorrectionSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"correction\"),\n original: z.string().max(200_000),\n corrected: z.string().max(200_000),\n rationale: z.string().max(100_000).nullable().default(null),\n});\n\nexport const FeedbackSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"feedback\"),\n feedback: z.string().max(100_000),\n polarity: z.enum([\"positive\", \"negative\", \"mixed\", \"neutral\"]),\n});\n\nexport const RewardSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"reward\"),\n task: z.string().max(100_000),\n rules: z.array(z.object({\n id: IdSchema,\n points: z.number().finite(),\n condition: z.string().trim().min(1).max(100_000),\n })).min(1).max(1_000),\n otherwisePoints: z.number().finite(),\n executable: z.boolean(),\n});\n\nexport const LabelSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"label\"),\n labelKind: z.literal(\"rubric\"),\n task: z.string().max(100_000),\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().min(1).max(500),\n description: z.string().trim().min(1).max(100_000),\n })).min(1).max(1_000),\n calibrationExamples: z.object({\n positive: z.string().trim().min(1).max(200_000),\n negative: z.string().trim().min(1).max(200_000),\n boundary: z.string().trim().min(1).max(200_000),\n }),\n});\n\nexport const LearningSignalRefSchema = z.discriminatedUnion(\"kind\", [\n DemonstrationSignalSchema,\n PreferenceSignalSchema,\n CorrectionSignalSchema,\n FeedbackSignalSchema,\n RewardSignalSchema,\n LabelSignalSchema,\n]);\n\nexport const LearningSignalInventorySchema = z.object({\n demonstrations: z.array(DemonstrationSignalSchema).max(100_000).default([]),\n preferences: z.array(PreferenceSignalSchema).max(100_000).default([]),\n corrections: z.array(CorrectionSignalSchema).max(100_000).default([]),\n feedback: z.array(FeedbackSignalSchema).max(100_000).default([]),\n rewards: z.array(RewardSignalSchema).max(100_000).default([]),\n labels: z.array(LabelSignalSchema).max(100_000).default([]),\n});\n\nexport const TasksetEnvironmentContractSchema = z.object({\n protocolVersion: z.literal(\"openpond.taskEnvironment.v1\"),\n kind: z.enum([\"chat\", \"agent\", \"program\", \"stateful_harness\", \"work\"]),\n entrypoint: z.string().trim().min(1).max(1_000),\n stateful: z.boolean(),\n deterministicSeeds: z.boolean(),\n toolNames: z.array(IdSchema).max(200).default([]),\n actionBindings: z.array(HarnessActionBindingSchema).max(200).optional(),\n lifecycle: z.array(z.enum([\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"])).min(1),\n defaultTimeoutMs: z.number().int().positive().max(3_600_000),\n networkPolicy: z.enum([\"none\", \"declared_read_only\", \"declared_scoped\"]),\n resources: z.array(TasksetEnvironmentResourceSchema).max(10_000).optional(),\n metadata: MetadataSchema,\n});\n\nexport const TasksetCapabilityManifestSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetCapabilities.v1\"),\n taskKind: z.enum([\"chat\", \"single_agent\", \"multi_agent\", \"custom_program\"]),\n supportedSignals: z.array(z.enum([\"demonstration\", \"preference\", \"correction\", \"feedback\", \"reward\", \"label\"])),\n compatibleMethods: z.array(z.enum([\"none\", \"retrieval\", \"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opd\", \"opsd\", \"sdpo\"])),\n rewardKinds: z.array(z.enum([\"none\", \"exact\", \"deterministic\", \"model_judge\", \"human\"])),\n requiresTools: z.boolean(),\n requiresState: z.boolean(),\n requiresPrivilegedGrading: z.boolean(),\n environmentPlacements: z.array(z.enum([\"local\", \"remote\", \"colocated\", \"provider_native\"])),\n exportable: z.boolean(),\n portabilityBlockers: z.array(z.string().trim().min(1).max(2_000)).default([]),\n});\n\nconst GraderBaseSchema = z.object({\n id: IdSchema,\n version: z.string().trim().min(1).max(100),\n label: z.string().trim().min(1).max(500),\n weight: z.number().min(0).max(1_000).default(1),\n hardGate: z.boolean().default(false),\n rewardEligible: z.boolean().default(false),\n privileged: z.boolean().default(false),\n metadata: MetadataSchema,\n});\n\nexport const DeterministicGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.enum([\"content\", \"schema\", \"file\", \"diff\", \"test\", \"runtime_event\", \"state\"]),\n config: z.record(z.string(), z.unknown()),\n});\n\nexport const RubricGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"model_judge\"),\n rubric: z.string().trim().min(1).max(50_000),\n judge: ChatModelRefSchema,\n calibrationFixtureRefs: z.array(IdSchema).min(1).max(500),\n calibrationStatus: z.enum([\"pending\", \"passed\", \"failed\"]),\n temperature: z.number().min(0).max(2).default(0),\n});\n\nexport const HumanGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"human\"),\n rubric: z.string().trim().min(1).max(50_000),\n reviewerRole: z.string().trim().min(1).max(500),\n});\n\nexport const CustomVerifierGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"custom_verifier\"),\n runtime: CustomVerifierRuntimeSchema.optional(),\n module: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Custom verifier modules must use a safe relative path.\"),\n exportName: CodeIdentifierSchema,\n timeoutMs: z.number().int().positive().max(300_000),\n networkPolicy: z.literal(\"none\"),\n});\n\nexport const GraderSpecSchema = z.union([\n DeterministicGraderSpecSchema,\n RubricGraderSpecSchema,\n HumanGraderSpecSchema,\n CustomVerifierGraderSpecSchema,\n]);\n\nexport const GraderFixtureLabelSchema = z.enum([\n \"positive\",\n \"negative\",\n \"boundary\",\n \"adversarial\",\n \"prompt_injection\",\n \"infrastructure_failure\",\n]);\n\nexport const GraderFixtureSchema = z.object({\n id: IdSchema,\n taskId: IdSchema,\n label: GraderFixtureLabelSchema,\n output: z.record(z.string(), z.unknown()),\n infrastructureError: z.string().trim().min(1).max(10_000).nullable(),\n expectedPassed: z.boolean(),\n expectedRewardEligible: z.boolean(),\n metadata: MetadataSchema,\n});\n\nexport type TrainingSourceRef = z.infer<typeof TrainingSourceRefSchema>;\nexport type TasksetSourceRef = z.infer<typeof TasksetSourceRefSchema>;\nexport type TaskAssetRef = z.infer<typeof TaskAssetRefSchema>;\nexport type TaskRequiredOutput = z.infer<typeof TaskRequiredOutputSchema>;\nexport type TaskDataRecord = z.infer<typeof TaskDataRecordSchema>;\nexport type TasksetEnvironmentResource = z.infer<typeof TasksetEnvironmentResourceSchema>;\nexport type DemonstrationSignal = z.infer<typeof DemonstrationSignalSchema>;\nexport type PreferenceSignal = z.infer<typeof PreferenceSignalSchema>;\nexport type CorrectionSignal = z.infer<typeof CorrectionSignalSchema>;\nexport type FeedbackSignal = z.infer<typeof FeedbackSignalSchema>;\nexport type RewardSignal = z.infer<typeof RewardSignalSchema>;\nexport type LabelSignal = z.infer<typeof LabelSignalSchema>;\nexport type LearningSignalInventory = z.infer<typeof LearningSignalInventorySchema>;\nexport type TasksetEnvironmentContract = z.infer<typeof TasksetEnvironmentContractSchema>;\nexport type TasksetCapabilityManifest = z.infer<typeof TasksetCapabilityManifestSchema>;\nexport type GraderSpec = z.infer<typeof GraderSpecSchema>;\nexport type GraderFixture = z.infer<typeof GraderFixtureSchema>;\nexport type TasksetPurpose = z.infer<typeof TasksetPurposeSchema>;\nexport type TasksetBenchmarkBinding = z.infer<typeof TasksetBenchmarkBindingSchema>;\n", "import { z } from \"zod\";\nimport { VersionedReleaseRefSchema } from \"@openpond/harness\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { TasksetMetricPolicySchema } from \"@openpond/evals/metrics\";\nimport { DatasetArtifactManifestSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport {\n TasksetPurposeSchema,\n TasksetBenchmarkBindingSchema,\n TasksetPreferenceComparisonBindingSchema,\n TasksetSourceRefSchema,\n TaskPolicyBoundarySchema,\n TasksetEnvironmentContractSchema,\n TasksetCapabilityManifestSchema,\n TaskDataRecordSchema,\n GraderSpecSchema,\n GraderFixtureSchema,\n LearningSignalInventorySchema,\n type TasksetSourceRef, type TrainingSourceRef,\n} from \"./taskset-draft-core.js\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst NullableIdSchema = IdSchema.nullable();\n\nexport const TASKSET_WORK_TOOL_NAMES = [\n \"work_capabilities\",\n \"work_environment\",\n \"work_list_files\",\n \"work_read_file\",\n \"work_read_document\",\n \"work_write_file\",\n \"work_write_docx\",\n \"work_edit_file\",\n \"work_delete_file\",\n \"work_exec\",\n \"work_save_output\",\n \"work_stop\",\n] as const;\n\nexport const TasksetStatusSchema = z.enum([\n \"draft\",\n \"awaiting_disclosure_approval\",\n \"awaiting_materialization_approval\",\n \"materializing\",\n \"validating\",\n \"needs_review\",\n \"baselining\",\n \"ready\",\n \"blocked\",\n \"failed\",\n \"archived\",\n]);\n\nexport const DatasetBuildIntentSchema = z.enum([\n \"demonstrations\",\n \"preferences\",\n \"verifiable_reward\",\n \"rubric\",\n \"discovery\",\n]);\n\nconst DatasetEvidenceTextSchema = z.string().trim().max(100_000);\n\nexport const DatasetBuildSpecificationSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"demonstrations\"),\n behavior: DatasetEvidenceTextSchema,\n examples: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n response: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"preferences\"),\n preference: DatasetEvidenceTextSchema,\n pairs: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n chosen: DatasetEvidenceTextSchema,\n rejected: DatasetEvidenceTextSchema,\n rationale: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"verifiable_reward\"),\n task: DatasetEvidenceTextSchema,\n rules: z.array(z.object({\n id: IdSchema,\n points: z.number().finite(),\n condition: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n otherwisePoints: z.number().finite().default(0),\n }),\n z.object({\n kind: z.literal(\"rubric\"),\n task: DatasetEvidenceTextSchema,\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().max(500),\n description: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n positiveExample: DatasetEvidenceTextSchema,\n negativeExample: DatasetEvidenceTextSchema,\n boundaryExample: DatasetEvidenceTextSchema,\n }),\n]);\n\nexport const GeneratedTaskFileSchema = z.object({\n path: z.string().trim().min(1).max(1_000),\n role: z.enum([\"environment\", \"verifier\", \"fixture\"]),\n content: z.string().max(250_000),\n});\n\nexport const TrainingPathRecommendationSchema = z.object({\n primaryMethod: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opsd\", \"sdpo\"]),\n bootstrap: z.object({\n method: z.literal(\"sft\"),\n purpose: z.literal(\"trajectory_bootstrap\"),\n demonstrationRefs: z.array(IdSchema).min(1).max(100_000),\n limitations: z.array(z.string().trim().min(1).max(5_000)).min(1).max(100),\n }).nullable(),\n});\n\nexport const TrainingMethodReadinessReasonCodeSchema = z.enum([\n \"taskset_not_ready\",\n \"demonstrations_missing\",\n \"preference_pairs_missing\",\n \"preference_pairs_invalid\",\n \"executable_reward_missing\",\n \"reward_not_calibrated\",\n \"reward_model_missing\",\n \"value_model_required\",\n \"frozen_eval_missing\",\n]);\n\nexport const TrainingMethodReadinessSchema = z.object({\n method: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\"]),\n status: z.enum([\"recommended\", \"compatible\", \"needs_dataset_work\"]),\n reasonCodes: z.array(TrainingMethodReadinessReasonCodeSchema).default([]),\n reasons: z.array(z.string().trim().min(1).max(5_000)).default([]),\n});\n\nexport const TasksetReadinessFindingSchema = z.object({\n code: IdSchema,\n message: z.string().trim().min(1).max(5_000),\n path: z.string().trim().max(2_000).nullable(),\n});\n\nexport const TasksetReadinessReportSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetReadiness.v1\"),\n tasksetId: IdSchema,\n tasksetHash: HashSchema,\n ready: z.boolean(),\n recommendedMethod: z.enum([\"none\", \"retrieval\", \"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opd\", \"opsd\", \"sdpo\"]),\n trainingPath: TrainingPathRecommendationSchema.nullable().default(null),\n methodReadiness: z.array(TrainingMethodReadinessSchema).default([]),\n compatibleDestinationClasses: z.array(\n z.enum([\"export\", \"custom\", \"hosted_managed\"]),\n ),\n blockers: z.array(TasksetReadinessFindingSchema).default([]),\n advisories: z.array(TasksetReadinessFindingSchema).default([]),\n warnings: z.array(z.string().trim().min(1).max(5_000)).default([]),\n generatedAt: TimestampSchema,\n});\n\nexport const AuthoringRepairSchema = z.object({ attempt: z.number().int().positive(), summary: z.string().trim().min(1).max(5_000), createdAt: TimestampSchema });\n\nexport const AuthoringProvenanceSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskAuthoringProvenance.v1\"),\n model: ChatModelRefSchema.nullable(),\n modelConfig: MetadataSchema,\n skillHash: HashSchema,\n promptTemplateVersion: z.string().trim().min(1).max(200),\n buildIntent: DatasetBuildIntentSchema.default(\"demonstrations\"),\n buildSpecification: DatasetBuildSpecificationSchema.nullable().default(null),\n evidenceHashes: z.array(HashSchema).max(100_000),\n tasksetSdkVersion: z.string().trim().min(1).max(100),\n sourceCommit: z.string().trim().min(1).max(256).nullable(),\n repairHistory: z.array(AuthoringRepairSchema).max(1_000),\n createdAt: TimestampSchema,\n});\n\nexport const TasksetSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskset.v1\"),\n id: IdSchema,\n revision: z.number().int().positive().default(1),\n profileId: IdSchema,\n profileRelease: VersionedReleaseRefSchema.nullable().optional(),\n createImproveRunId: NullableIdSchema.default(null),\n name: z.string().trim().min(1).max(500),\n // Portable tasks may carry all instructions in their individual inputs.\n // Preserve an absent package prompt; draft publication validates its objective.\n objective: z.string().trim().max(20_000),\n purpose: TasksetPurposeSchema.default(\"general\"),\n benchmark: TasksetBenchmarkBindingSchema.nullable().default(null),\n preferenceComparison: TasksetPreferenceComparisonBindingSchema.nullable().default(null),\n status: TasksetStatusSchema,\n sourceRefs: z.array(TasksetSourceRefSchema).min(1).max(100_000),\n datasetArtifact: DatasetArtifactManifestSchema.nullable().optional(),\n policy: TaskPolicyBoundarySchema,\n environment: TasksetEnvironmentContractSchema,\n capabilities: TasksetCapabilityManifestSchema,\n metrics: TasksetMetricPolicySchema.optional(),\n tasks: z.array(TaskDataRecordSchema).max(1_000_000),\n graders: z.array(GraderSpecSchema).min(1).max(1_000),\n // Imported releases are inspectable before local calibration. Admission\n // requires real fixtures separately in validateTaskset.\n graderFixtures: z.array(GraderFixtureSchema).max(100_000),\n learningSignals: LearningSignalInventorySchema,\n authoringProvenance: AuthoringProvenanceSchema,\n readiness: TasksetReadinessReportSchema.nullable(),\n contentHash: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n metadata: MetadataSchema,\n}).superRefine((taskset, context) => {\n if (taskset.purpose === \"benchmark\" && !taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Benchmark Tasksets require an immutable benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.purpose !== \"benchmark\" && taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Only benchmark Tasksets may carry a benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.datasetArtifact && taskset.tasks.length > 0) {\n context.addIssue({\n code: \"custom\",\n message:\n \"Artifact-backed Tasksets may not duplicate canonical rows inline.\",\n path: [\"tasks\"],\n });\n }\n if (!taskset.datasetArtifact && taskset.tasks.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"A Taskset requires inline tasks or a Dataset artifact manifest.\",\n path: [\"tasks\"],\n });\n }\n});\n\nexport type DatasetBuildIntent = z.infer<typeof DatasetBuildIntentSchema>;\nexport type DatasetBuildSpecification = z.infer<typeof DatasetBuildSpecificationSchema>;\nexport type GeneratedTaskFile = z.infer<typeof GeneratedTaskFileSchema>;\nexport type TrainingPathRecommendation = z.infer<typeof TrainingPathRecommendationSchema>;\nexport type TrainingMethodReadinessReasonCode = z.infer<typeof TrainingMethodReadinessReasonCodeSchema>;\nexport type TrainingMethodReadiness = z.infer<typeof TrainingMethodReadinessSchema>;\nexport type TasksetReadinessReport = z.infer<typeof TasksetReadinessReportSchema>;\nexport type AuthoringProvenance = z.infer<typeof AuthoringProvenanceSchema>;\nexport type AuthoringRepair = z.infer<typeof AuthoringRepairSchema>;\nexport type Taskset = z.infer<typeof TasksetSchema>;\n\nexport function isTrainingSourceRef(\n source: TasksetSourceRef,\n): source is TrainingSourceRef {\n return source.schemaVersion === \"openpond.trainingSource.v1\";\n}\n", "import type { TasksetCapabilityManifest } from \"./taskset-draft-core.js\";\nimport {\n isTrainingSourceRef,\n TASKSET_WORK_TOOL_NAMES,\n TasksetSchema,\n type Taskset,\n} from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\n\nexport type TasksetValidationIssue = {\n code: string;\n severity: \"warning\" | \"error\";\n message: string;\n path: string | null;\n};\n\nexport type TasksetValidationReport = {\n valid: boolean;\n taskset: Taskset | null;\n computedHash: string | null;\n issues: TasksetValidationIssue[];\n};\n\nexport function validateTaskset(input: unknown): TasksetValidationReport {\n const parsed = TasksetSchema.safeParse(input);\n if (!parsed.success) {\n return {\n valid: false,\n taskset: null,\n computedHash: null,\n issues: parsed.error.issues.map((issue) => ({\n code: \"schema_invalid\",\n severity: \"error\",\n message: issue.message,\n path: issue.path.join(\".\"),\n })),\n };\n }\n\n const taskset = parsed.data;\n const issues: TasksetValidationIssue[] = [];\n validateSourceConsent(taskset, issues);\n validateDatasetArtifact(taskset, issues);\n validateSplitIsolation(taskset, issues);\n validatePolicyBoundary(taskset, issues);\n validateGraders(taskset, issues);\n validateGraderFixtures(taskset, issues);\n validateLearningSignals(taskset, issues);\n validateCapabilities(taskset.capabilities, issues, taskset);\n validateWorkExecution(taskset, issues);\n\n const computedHash = tasksetContentHash(taskset);\n if (taskset.contentHash !== computedHash) {\n issues.push({\n code: \"content_hash_mismatch\",\n severity: \"error\",\n message: `Taskset contentHash is ${taskset.contentHash}, expected ${computedHash}.`,\n path: \"contentHash\",\n });\n }\n\n return {\n valid: !issues.some((issue) => issue.severity === \"error\"),\n taskset,\n computedHash,\n issues,\n };\n}\n\nfunction validateGraderFixtures(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n if (!taskset.graderFixtures.length) issues.push({ code: \"grader_fixtures_required\", severity: \"error\", message: \"Taskset admission requires authored grader fixtures.\", path: \"graderFixtures\" });\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const required = new Set([\"positive\", \"negative\", \"boundary\", \"adversarial\", \"prompt_injection\", \"infrastructure_failure\"]);\n for (const fixture of taskset.graderFixtures) {\n if (!taskset.datasetArtifact && !taskIds.has(fixture.taskId)) issues.push({ code: \"grader_fixture_task_missing\", severity: \"warning\", message: `Fixture ${fixture.id} references a task outside this Taskset revision (${fixture.taskId}).`, path: `graderFixtures.${fixture.id}.taskId` });\n required.delete(fixture.label);\n if (fixture.label === \"infrastructure_failure\" && !fixture.infrastructureError) issues.push({ code: \"infrastructure_fixture_error_missing\", severity: \"error\", message: `Infrastructure fixture ${fixture.id} must declare an infrastructure error.`, path: `graderFixtures.${fixture.id}.infrastructureError` });\n }\n for (const label of required) issues.push({ code: \"grader_fixture_missing\", severity: \"warning\", message: `Taskset does not include the optional ${label} grader calibration fixture.`, path: \"graderFixtures\" });\n}\n\nfunction validateDatasetArtifact(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n const artifact = taskset.datasetArtifact;\n if (!artifact) return;\n if (\n artifact.tasksetId !== taskset.id\n || artifact.tasksetRevision !== taskset.revision\n ) {\n issues.push({\n code: \"dataset_artifact_taskset_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact identity does not match its Taskset revision.\",\n path: \"datasetArtifact\",\n });\n }\n const splitTotal = Object.values(artifact.splitCounts)\n .reduce((total, count) => total + count, 0);\n const shardTotal = artifact.shards\n .reduce((total, shard) => total + shard.rowCount, 0);\n if (splitTotal !== artifact.rowCount || shardTotal !== artifact.rowCount) {\n issues.push({\n code: \"dataset_artifact_row_count_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact row, split, and shard counts do not agree.\",\n path: \"datasetArtifact.rowCount\",\n });\n }\n const shardSplitCounts = new Map<string, number>();\n for (const shard of artifact.shards) {\n shardSplitCounts.set(\n shard.split,\n (shardSplitCounts.get(shard.split) ?? 0) + shard.rowCount,\n );\n }\n for (const [split, count] of Object.entries(artifact.splitCounts)) {\n if ((shardSplitCounts.get(split) ?? 0) !== count) {\n issues.push({\n code: \"dataset_artifact_split_count_mismatch\",\n severity: \"error\",\n message: `Dataset artifact ${split} shard counts do not match its manifest.`,\n path: `datasetArtifact.splitCounts.${split}`,\n });\n }\n }\n const { contentHash: _contentHash, ...hashable } = artifact;\n if (contentHash(hashable) !== artifact.contentHash) {\n issues.push({\n code: \"dataset_artifact_hash_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact manifest content hash is invalid.\",\n path: \"datasetArtifact.contentHash\",\n });\n }\n}\n\nexport function computeTasksetHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n return tasksetContentHash(taskset);\n}\n\nfunction tasksetContentHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n const { contentHash: _contentHash, status: _status, readiness: _readiness, updatedAt: _updatedAt, ...source } = taskset as Taskset;\n return contentHash(source);\n}\n\nexport function validatePortability(capabilities: TasksetCapabilityManifest): TasksetValidationIssue[] {\n const issues: TasksetValidationIssue[] = [];\n validateCapabilities(capabilities, issues, null);\n return issues;\n}\n\nfunction validateSourceConsent(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n for (const [index, source] of taskset.sourceRefs.entries()) {\n if (isTrainingSourceRef(source) && source.consent.status !== \"granted\") {\n issues.push({ code: \"source_consent_missing\", severity: \"error\", message: `Source ${source.id} is not consented.`, path: `sourceRefs.${index}.consent.status` });\n }\n if (source.secretScanStatus !== \"passed\") {\n issues.push({ code: \"source_secret_scan\", severity: \"error\", message: `Source ${source.id} did not pass secret scanning.`, path: `sourceRefs.${index}.secretScanStatus` });\n }\n if (source.piiScanStatus !== \"passed\") {\n issues.push({ code: \"source_pii_scan\", severity: \"error\", message: `Source ${source.id} has unresolved PII policy.`, path: `sourceRefs.${index}.piiScanStatus` });\n }\n if (source.licensingStatus !== \"approved\") {\n issues.push({ code: \"source_license\", severity: \"error\", message: `Source ${source.id} has unresolved licensing policy.`, path: `sourceRefs.${index}.licensingStatus` });\n }\n }\n}\n\nfunction validateSplitIsolation(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const clusterSplits = new Map<string, Set<string>>();\n for (const task of taskset.tasks) {\n const splits = clusterSplits.get(task.clusterKey) ?? new Set<string>();\n splits.add(task.split);\n clusterSplits.set(task.clusterKey, splits);\n }\n for (const [cluster, splits] of clusterSplits) {\n if (splits.size > 1) {\n issues.push({ code: \"split_cluster_contamination\", severity: \"error\", message: `Source cluster ${cluster} appears in multiple splits: ${[...splits].join(\", \")}.`, path: \"tasks\" });\n }\n }\n const frozenCount = taskset.datasetArtifact\n ? taskset.datasetArtifact.splitCounts.frozen_eval ?? 0\n : taskset.tasks.filter((task) => task.split === \"frozen_eval\").length;\n if (frozenCount === 0) issues.push({ code: \"frozen_eval_missing\", severity: \"warning\", message: \"Add an independent test example before training.\", path: \"tasks\" });\n}\n\nfunction validateWorkExecution(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n if (taskset.environment.kind !== \"work\") return;\n if (taskset.environment.entrypoint !== \"openpond-work-v1\") {\n issues.push({\n code: \"work_entrypoint_invalid\",\n severity: \"error\",\n message: \"Work Tasksets must use the openpond-work-v1 entrypoint.\",\n path: \"environment.entrypoint\",\n });\n }\n if (!taskset.environment.lifecycle.includes(\"reset\") || !taskset.environment.lifecycle.includes(\"cleanup\")) {\n issues.push({\n code: \"work_reset_lifecycle_missing\",\n severity: \"error\",\n message: \"Work attempts require reset and cleanup; filesystem state belongs to one attempt.\",\n path: \"environment.lifecycle\",\n });\n }\n const allowedTools = new Set<string>(TASKSET_WORK_TOOL_NAMES);\n const unknownTools = taskset.environment.toolNames.filter(\n (name) => !allowedTools.has(name),\n );\n if (unknownTools.length) {\n issues.push({\n code: \"work_tool_unknown\",\n severity: \"error\",\n message: `Work Taskset declares unknown tools: ${unknownTools.join(\", \")}.`,\n path: \"environment.toolNames\",\n });\n }\n if (!taskset.environment.toolNames.includes(\"work_save_output\")) {\n issues.push({\n code: \"work_output_tool_missing\",\n severity: \"error\",\n message: \"Work Tasksets must declare work_save_output.\",\n path: \"environment.toolNames\",\n });\n }\n for (const lifecycle of [\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"] as const) {\n if (!taskset.environment.lifecycle.includes(lifecycle)) {\n issues.push({\n code: \"work_lifecycle_incomplete\",\n severity: \"error\",\n message: `Work Tasksets require the ${lifecycle} lifecycle stage.`,\n path: \"environment.lifecycle\",\n });\n }\n }\n\n const sourceById = new Map(\n taskset.sourceRefs.map((source) => [source.id, source]),\n );\n for (const [taskIndex, task] of taskset.tasks.entries()) {\n const assetIds = new Set<string>();\n const fileNames = new Set<string>();\n for (const [assetIndex, asset] of (task.assets ?? []).entries()) {\n const path = `tasks.${taskIndex}.assets.${assetIndex}`;\n if (assetIds.has(asset.id)) {\n issues.push({\n code: \"work_asset_duplicate_id\",\n severity: \"error\",\n message: `Task ${task.id} repeats asset id ${asset.id}.`,\n path: `${path}.id`,\n });\n }\n if (fileNames.has(asset.fileName)) {\n issues.push({\n code: \"work_asset_duplicate_name\",\n severity: \"error\",\n message: `Task ${task.id} repeats staged file name ${asset.fileName}.`,\n path: `${path}.fileName`,\n });\n }\n assetIds.add(asset.id);\n fileNames.add(asset.fileName);\n if (!task.sourceRefs.includes(asset.sourceRefId)) {\n issues.push({\n code: \"work_asset_task_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references source ${asset.sourceRefId} outside task ${task.id}.`,\n path: `${path}.sourceRefId`,\n });\n }\n const source = sourceById.get(asset.sourceRefId);\n if (!source) {\n issues.push({\n code: \"work_asset_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references missing source ${asset.sourceRefId}.`,\n path: `${path}.sourceRefId`,\n });\n } else if (\n \"sourceFileHashes\" in source\n && !source.sourceFileHashes.includes(asset.sha256)\n ) {\n issues.push({\n code: \"work_asset_hash_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} hash is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.sha256`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.originalFileNames.includes(asset.fileName)\n ) {\n issues.push({\n code: \"work_asset_name_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} file name is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.fileName`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.mediaTypes.includes(asset.mediaType)\n ) {\n issues.push({\n code: \"work_asset_media_type_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} media type is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.mediaType`,\n });\n }\n if (asset.split !== task.split) {\n issues.push({\n code: \"work_asset_split_mismatch\",\n severity: \"error\",\n message: `Asset ${asset.id} is assigned to ${asset.split}, not task split ${task.split}.`,\n path: `${path}.split`,\n });\n }\n }\n\n const outputPaths = new Set<string>();\n for (const [outputIndex, output] of (task.requiredOutputs ?? []).entries()) {\n const normalized = output.path.replaceAll(\"\\\\\", \"/\");\n const path = `tasks.${taskIndex}.requiredOutputs.${outputIndex}.path`;\n if (outputPaths.has(normalized)) {\n issues.push({\n code: \"work_output_duplicate_path\",\n severity: \"error\",\n message: `Task ${task.id} repeats required output path ${normalized}.`,\n path,\n });\n }\n outputPaths.add(normalized);\n }\n if ((task.requiredOutputs ?? []).length === 0) {\n issues.push({\n code: \"work_output_missing\",\n severity: \"error\",\n message: `Work task ${task.id} must declare at least one required output.`,\n path: `tasks.${taskIndex}.requiredOutputs`,\n });\n }\n }\n}\n\nfunction validatePolicyBoundary(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const visible = new Set(taskset.policy.policyVisibleFields);\n for (const field of taskset.policy.privilegedFields) {\n if (visible.has(field)) issues.push({ code: \"privileged_field_visible\", severity: \"error\", message: `Field ${field} is both policy-visible and privileged.`, path: \"policy\" });\n }\n for (const task of taskset.tasks) {\n if (task.privilegedContextRef && Object.keys(task.policyVisibleContext).includes(task.privilegedContextRef)) {\n issues.push({ code: \"privileged_context_leak\", severity: \"error\", message: `Task ${task.id} exposes its privileged context reference.`, path: `tasks.${task.id}.policyVisibleContext` });\n }\n }\n}\n\nfunction validateGraders(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const ids = new Set<string>();\n for (const grader of taskset.graders) {\n if (ids.has(grader.id)) issues.push({ code: \"grader_duplicate\", severity: \"error\", message: `Duplicate grader id ${grader.id}.`, path: \"graders\" });\n ids.add(grader.id);\n if (grader.kind === \"model_judge\" && grader.rewardEligible && grader.calibrationStatus !== \"passed\") {\n issues.push({ code: \"judge_calibration_pending\", severity: \"warning\", message: `Model judge ${grader.id} is selected for reward without a passing advisory calibration report.`, path: `graders.${grader.id}` });\n }\n if (grader.kind === \"model_judge\" && grader.calibrationStatus === \"passed\" && typeof grader.metadata.calibrationEvidenceHash !== \"string\") {\n issues.push({ code: \"judge_calibration_evidence_missing\", severity: \"warning\", message: `Model judge ${grader.id} declares calibration without an OpenPond fixture evidence hash.`, path: `graders.${grader.id}.metadata.calibrationEvidenceHash` });\n }\n if (grader.kind === \"human\" && grader.rewardEligible) {\n issues.push({ code: \"human_online_reward\", severity: \"error\", message: `Human grader ${grader.id} cannot be an online optimizer reward.`, path: `graders.${grader.id}` });\n }\n }\n}\n\nfunction validateLearningSignals(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const sourceIds = new Set(taskset.sourceRefs.map((source) => source.id));\n for (const signal of [\n ...taskset.learningSignals.demonstrations,\n ...taskset.learningSignals.preferences,\n ...taskset.learningSignals.corrections,\n ...taskset.learningSignals.feedback,\n ...taskset.learningSignals.rewards,\n ...taskset.learningSignals.labels,\n ]) {\n if (signal.taskId && !taskset.datasetArtifact && !taskIds.has(signal.taskId)) {\n issues.push({ code: \"learning_signal_task_missing\", severity: \"error\", message: `Signal ${signal.id} references missing task ${signal.taskId}.`, path: `learningSignals.${signal.kind}.${signal.id}.taskId` });\n }\n if (signal.sourceRefs.some((sourceId) => !sourceIds.has(sourceId))) {\n issues.push({ code: \"learning_signal_source_missing\", severity: \"error\", message: `Signal ${signal.id} references a source outside the Dataset.`, path: `learningSignals.${signal.kind}.${signal.id}.sourceRefs` });\n }\n }\n for (const preference of taskset.learningSignals.preferences) {\n if (preference.chosen.trim() === preference.rejected.trim()) {\n issues.push({ code: \"preference_pair_identical\", severity: \"error\", message: `Preference ${preference.id} has identical chosen and rejected responses.`, path: `learningSignals.preferences.${preference.id}` });\n }\n }\n for (const reward of taskset.learningSignals.rewards) {\n if (!reward.executable) {\n issues.push({ code: \"reward_not_executable\", severity: \"warning\", message: `Reward ${reward.id} is a reviewed specification but has no executable verifier yet.`, path: `learningSignals.rewards.${reward.id}.executable` });\n }\n }\n}\n\nfunction validateCapabilities(\n capabilities: TasksetCapabilityManifest,\n issues: TasksetValidationIssue[],\n taskset: Taskset | null,\n): void {\n if (!capabilities.exportable && capabilities.portabilityBlockers.length === 0) {\n issues.push({ code: \"portability_reason_missing\", severity: \"error\", message: \"Non-exportable Tasksets must declare a portability blocker.\", path: \"capabilities.portabilityBlockers\" });\n }\n if (capabilities.compatibleMethods.includes(\"grpo\") && !capabilities.rewardKinds.some((kind) => kind === \"exact\" || kind === \"deterministic\" || kind === \"model_judge\")) {\n issues.push({ code: \"grpo_reward_missing\", severity: \"error\", message: \"GRPO compatibility requires a scalar reward kind.\", path: \"capabilities.rewardKinds\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"sft\") && taskset.learningSignals.demonstrations.length === 0) {\n issues.push({ code: \"sft_demonstrations_missing\", severity: \"error\", message: \"SFT compatibility requires approved demonstrations.\", path: \"learningSignals.demonstrations\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"dpo\") && taskset.learningSignals.preferences.length === 0) {\n issues.push({ code: \"dpo_preferences_missing\", severity: \"error\", message: \"DPO compatibility requires chosen and rejected response pairs.\", path: \"learningSignals.preferences\" });\n }\n if (\n taskset\n && (taskset.capabilities.compatibleMethods.includes(\"grpo\") || taskset.capabilities.compatibleMethods.includes(\"ppo\"))\n && !taskset.learningSignals.rewards.some((reward) => reward.executable)\n && !taskset.graders.some(grader => grader.rewardEligible && grader.weight > 0 && grader.kind !== \"human\")\n ) {\n issues.push({ code: \"online_reward_not_executable\", severity: \"error\", message: \"GRPO/PPO compatibility requires an executable scalar reward.\", path: \"learningSignals.rewards\" });\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "IdSchema", "TimestampSchema", "HashSchema", "z", "z", "z", "IdSchema", "z", "TimestampSchema", "HashSchema", "MetadataSchema", "z", "IdSchema", "z", "TimestampSchema", "HashSchema", "MetadataSchema", "NullableIdSchema"]
|
|
7
|
+
}
|
|
@@ -60,6 +60,7 @@ import {
|
|
|
60
60
|
TaskEvidenceInspectionResultSchema,
|
|
61
61
|
sameLearningRef,
|
|
62
62
|
LearningPolicyInspectionResultSchema,
|
|
63
|
+
LearningTaskQueueInspectionSchema,
|
|
63
64
|
assertLearningRequestJson,
|
|
64
65
|
learningResourceSchemas
|
|
65
66
|
} from "@openpond/evals/learning";
|
|
@@ -120,6 +121,13 @@ var OpenPondLearningClient = class {
|
|
|
120
121
|
return result;
|
|
121
122
|
}
|
|
122
123
|
/** Read current shared eligibility and budget without reserving or launching work. */
|
|
124
|
+
async inspectTaskQueue(modelProjectId = null, options = {}) {
|
|
125
|
+
const request = LearningReadRequestSchema.parse({ action: "inspect_task_queue", scope: this.#options.scope, modelProjectId });
|
|
126
|
+
const result = LearningTaskQueueInspectionSchema.parse(await this.#request("read", request, options));
|
|
127
|
+
if (result.modelProjectId !== modelProjectId) throw new OpenPondLearningError(502, "model_identity_mismatch", "Task queue did not match the requested Model.", null);
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
/** Read current shared eligibility and budget without reserving or launching work. */
|
|
123
131
|
async inspectPolicy(policy, options = {}) {
|
|
124
132
|
const request = LearningReadRequestSchema.parse({ action: "inspect_policy", scope: this.#options.scope, policy });
|
|
125
133
|
const result = LearningPolicyInspectionResultSchema.parse(await this.#request("read", request, options));
|
|
@@ -225,4 +233,4 @@ export {
|
|
|
225
233
|
OpenPondLearningError,
|
|
226
234
|
OpenPondLearningClient
|
|
227
235
|
};
|
|
228
|
-
//# sourceMappingURL=chunk-
|
|
236
|
+
//# sourceMappingURL=chunk-K4C5QOSV.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/learning-credentials.ts", "../src/learning-client.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\nimport { ReleaseIdSchema } from \"@openpond/harness\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TaskSplitSchema } from \"@openpond/evals/tasksets\";\n\n/** Source credentials can submit evidence and feedback for one source only. */\nexport const LearningSourceCredentialSchema = z.object({\n id: ReleaseIdSchema,\n scope: ReleaseIdSchema,\n sourceId: ReleaseIdSchema,\n name: z.string().trim().min(1).max(100),\n keyPrefix: z.string().min(1).max(100),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n revokedAt: z.iso.datetime().nullable(),\n}).strict();\nexport type LearningSourceCredential = z.infer<typeof LearningSourceCredentialSchema>;\nexport const LearningSourceCredentialSecretSchema = z.string().regex(/^opk_key_[A-Za-z0-9]{16}_[A-Za-z0-9]{48}$/);\n\nexport const LearningSourceCredentialRequestSchema = z.discriminatedUnion(\"action\", [\n z.object({ action: z.literal(\"create\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, name: z.string().trim().min(1).max(100), expiresAt: z.iso.datetime(), operationId: ReleaseIdSchema, apiKey: LearningSourceCredentialSecretSchema }).strict(),\n z.object({ action: z.literal(\"list\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, afterId: ReleaseIdSchema.optional(), limit: z.number().int().min(1).max(100).default(30) }).strict(),\n z.object({ action: z.literal(\"revoke\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, id: ReleaseIdSchema }).strict(),\n]);\nexport type LearningSourceCredentialRequest = z.infer<typeof LearningSourceCredentialRequestSchema>;\nexport const LearningSourceCredentialCreatedSchema = z.object({ credential: LearningSourceCredentialSchema, apiKey: LearningSourceCredentialSecretSchema }).strict();\nexport const LearningSourceCredentialPageSchema = z.object({ items: z.array(LearningSourceCredentialSchema).max(100), nextCursor: ReleaseIdSchema.nullable() }).strict();\nexport const LearningSourceConfigurationRequestSchema = z.object({ scope: ReleaseIdSchema, sourceId: ReleaseIdSchema }).strict();\nexport const LearningSourceConfigurationSchema = z.object({\n scope: ReleaseIdSchema, source: LearningRevisionRefSchema, taskDefinition: LearningRevisionRefSchema,\n enabled: z.boolean(), allowedSplits: z.array(TaskSplitSchema).min(1).max(4),\n}).strict();\n\n/** Keep this request in memory for retries. Hosts persist hashes, never its secret. */\nexport function createSourceCredentialRequest(input: { sourceId: string; name: string; expiresAt: string }) {\n return { ...input, operationId: crypto.randomUUID(), apiKey: `opk_key_${randomToken(16)}_${randomToken(48)}` };\n}\n\nfunction randomToken(length: number): string {\n const alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let value = \"\";\n while (value.length < length) {\n for (const byte of crypto.getRandomValues(new Uint8Array(64))) {\n // Rejection sampling avoids modulo bias in the 62-character alphabet.\n if (byte < 248) value += alphabet[byte % 62];\n if (value.length === length) return value;\n }\n }\n return value;\n}\n\n/** Hosts enforce expiry when issuing and authenticating; tokens are never permanent. */\nexport function assertLearningCredentialExpiry(expiresAt: string, now: Date): void {\n const expires = Date.parse(z.iso.datetime().parse(expiresAt));\n if (expires <= now.getTime() || expires > now.getTime() + 90 * 24 * 60 * 60 * 1_000) throw new Error(\"Source credentials must expire within 90 days.\");\n}\n", "import { z } from \"zod\";\nimport {\n LearningCommandRequestSchema, LearningOperationResultSchema, LearningReadRequestSchema,\n TaskEvidenceInspectionResultSchema, sameLearningRef, type LearningRevisionRef,\n LearningPolicyInspectionResultSchema,\n LearningTaskQueueInspectionSchema,\n assertLearningRequestJson,\n learningResourceSchemas, type LearningCommand, type LearningOperationResult,\n type LearningResourceFor, type LearningResourceKind, type LearningResourcePage,\n type LearningResourceQuery, type TaskExampleSubmission, type TaskFeedbackSubmission,\n} from \"@openpond/evals/learning\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { LearningSourceCredentialSchema, LearningSourceCredentialRequestSchema, LearningSourceCredentialCreatedSchema, LearningSourceCredentialPageSchema, LearningSourceConfigurationRequestSchema, LearningSourceConfigurationSchema, type LearningSourceCredentialRequest } from \"./learning-credentials.js\";\n\nexport interface OpenPondLearningClientOptions {\n apiKey: string;\n baseUrl: string;\n /** Local profile or hosted team scope. The server checks the credential's ownership. */\n scope: string;\n fetch?: typeof globalThis.fetch;\n}\nexport interface LearningRequestOptions { signal?: AbortSignal }\nexport const LearningBatchPublicationSchema = z.object({\n batchId: z.string().trim().min(1).max(500), modelProjectId: z.string().trim().min(1).max(500),\n}).strict();\nexport const LearningBatchPublicationResultSchema = z.object({\n batchId: z.string().min(1), projectId: z.string().min(1), tasksetId: z.string().min(1),\n releaseId: z.string().min(1), revision: z.number().int().positive(), contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict();\nexport class OpenPondLearningError extends Error {\n constructor(readonly status: number, readonly code: string, message: string, readonly details: unknown) {\n super(message);\n this.name = \"OpenPondLearningError\";\n }\n}\n\n/** The same portable commands are sent to the local and hosted execution owner. */\nexport class OpenPondLearningClient {\n readonly #options: OpenPondLearningClientOptions;\n constructor(options: OpenPondLearningClientOptions) {\n if (!options.apiKey.trim() || !options.scope.trim()) throw new Error(\"Learning API key and scope are required.\");\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error(\"Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n\n async command(command: LearningCommand, options: LearningRequestOptions = {}): Promise<LearningOperationResult> {\n assertLearningRequestJson(command);\n const request = LearningCommandRequestSchema.parse({ scope: this.#options.scope, command });\n const result = LearningOperationResultSchema.parse(await this.#request(\"commands\", request, options));\n if (result.operationId !== command.operationId) throw new OpenPondLearningError(502, \"operation_identity_mismatch\", \"Learning response did not match the submitted operation.\", null);\n return result;\n }\n\n submitExample(example: TaskExampleSubmission, options: LearningRequestOptions = {}) {\n return this.command({ action: \"submit_example\", operationId: example.idempotencyKey, example }, options);\n }\n\n submitFeedback(feedback: TaskFeedbackSubmission, options: LearningRequestOptions = {}) {\n return this.command({ action: \"submit_feedback\", operationId: feedback.idempotencyKey, feedback }, options);\n }\n\n async get<K extends LearningResourceKind>(kind: K, id: string, revision?: number, options: LearningRequestOptions = {}): Promise<LearningResourceFor<K>> {\n const request = LearningReadRequestSchema.parse({ action: \"get\", scope: this.#options.scope, kind, id, ...(revision === undefined ? {} : { revision }) });\n return learningResourceSchemas[kind].parse(await this.#request(\"read\", request, options)) as LearningResourceFor<K>;\n }\n\n async inspectEvidence(evidence: LearningRevisionRef, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_evidence\", scope: this.#options.scope, evidence });\n const result = TaskEvidenceInspectionResultSchema.parse(await this.#request(\"read\", request, options));\n if (!sameLearningRef(result.evidence, evidence)) throw new OpenPondLearningError(502, \"evidence_identity_mismatch\", \"Inspection did not match the requested evidence release.\", null);\n return result;\n }\n\n /** Read current shared eligibility and budget without reserving or launching work. */\n async inspectTaskQueue(modelProjectId: string | null = null, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_task_queue\", scope: this.#options.scope, modelProjectId });\n const result = LearningTaskQueueInspectionSchema.parse(await this.#request(\"read\", request, options));\n if (result.modelProjectId !== modelProjectId) throw new OpenPondLearningError(502, \"model_identity_mismatch\", \"Task queue did not match the requested Model.\", null);\n return result;\n }\n\n /** Read current shared eligibility and budget without reserving or launching work. */\n async inspectPolicy(policy: LearningRevisionRef, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_policy\", scope: this.#options.scope, policy });\n const result = LearningPolicyInspectionResultSchema.parse(await this.#request(\"read\", request, options));\n if (!sameLearningRef(result.policy, policy)) throw new OpenPondLearningError(502, \"policy_identity_mismatch\", \"Inspection did not match the requested policy release.\", null);\n return result;\n }\n\n /** Prepare once with createSourceCredentialRequest and reuse it for retries. */\n async createSourceCredential(input: Omit<Extract<LearningSourceCredentialRequest, { action: \"create\" }>, \"action\" | \"scope\">, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ ...input, action: \"create\", scope: this.#options.scope });\n const result = LearningSourceCredentialCreatedSchema.parse(await this.#request(\"credentials\", request, options));\n this.#assertCredentialScope(result.credential, input.sourceId);\n if (result.apiKey !== input.apiKey || !input.apiKey.startsWith(`${result.credential.keyPrefix}_`)) throw new OpenPondLearningError(502, \"credential_identity_mismatch\", \"Credential response did not match the prepared credential.\", null);\n return result;\n }\n\n async listSourceCredentials(sourceId: string, query: { afterId?: string; limit?: number } = {}, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ ...query, action: \"list\", scope: this.#options.scope, sourceId });\n const result = LearningSourceCredentialPageSchema.parse(await this.#request(\"credentials\", request, options));\n if (result.items.length > (query.limit ?? 30)) throw new OpenPondLearningError(502, \"credential_page_invalid\", \"Credential response exceeded the requested page size.\", null);\n for (const item of result.items) this.#assertCredentialScope(item, sourceId);\n return result;\n }\n\n async revokeSourceCredential(sourceId: string, id: string, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ action: \"revoke\", scope: this.#options.scope, sourceId, id });\n const result = LearningSourceCredentialSchema.parse(await this.#request(\"credentials\", request, options));\n this.#assertCredentialScope(result, sourceId);\n if (result.id !== id || result.revokedAt === null) throw new OpenPondLearningError(502, \"credential_revocation_mismatch\", \"Credential revocation did not match the requested credential.\", null);\n return result;\n }\n\n async sourceConfiguration(sourceId: string, options: LearningRequestOptions = {}) {\n const request = LearningSourceConfigurationRequestSchema.parse({ scope: this.#options.scope, sourceId });\n const result = LearningSourceConfigurationSchema.parse(await this.#request(\"source-config\", request, options));\n if (result.scope !== this.#options.scope || result.source.id !== sourceId) throw new OpenPondLearningError(502, \"source_identity_mismatch\", \"Source configuration did not match the requested source.\", null);\n return result;\n }\n\n #assertCredentialScope(value: { scope: string; sourceId: string }, sourceId: string) {\n if (value.scope !== this.#options.scope || value.sourceId !== sourceId) throw new OpenPondLearningError(502, \"credential_scope_mismatch\", \"Credential response did not match the requested source.\", null);\n }\n\n async list<K extends LearningResourceKind>(kind: K, query: Partial<LearningResourceQuery> = {}, options: LearningRequestOptions = {}): Promise<LearningResourcePage<K>> {\n const request = LearningReadRequestSchema.parse({ action: \"list\", scope: this.#options.scope, kind, ...query });\n return z.object({ items: z.array(learningResourceSchemas[kind]).max(100), nextCursor: z.string().nullable() }).strict().parse(await this.#request(\"read\", request, options)) as LearningResourcePage<K>;\n }\n\n /** Hosted publication only: stores an immutable package and attaches it, without starting training. */\n async publishBatch(input: z.infer<typeof LearningBatchPublicationSchema>, options: LearningRequestOptions = {}) {\n const request = LearningBatchPublicationSchema.parse(input);\n const result = LearningBatchPublicationResultSchema.parse(await this.#request(\"publish-batch\", { ...request, scope: this.#options.scope }, options));\n if (result.batchId !== request.batchId) throw new OpenPondLearningError(502, \"batch_identity_mismatch\", \"Published batch response did not match the requested batch.\", null);\n return result;\n }\n\n async #request(endpoint: \"commands\" | \"read\" | \"publish-batch\" | \"credentials\" | \"source-config\", body: unknown, options: LearningRequestOptions): Promise<unknown> {\n assertBoundedTaskJson(body, 16_777_216);\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/learning/${endpoint}`, {\n method: \"POST\", headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"Content-Type\": \"application/json\", Accept: \"application/json\", \"X-OpenPond-Team-Id\": this.#options.scope }, body: JSON.stringify(body), signal: options.signal,\n redirect: \"error\",\n });\n const payload = await readBoundedLearningResponse(response);\n if (!response.ok) {\n const error = z.object({ code: z.string().optional(), error: z.string().optional() }).passthrough().safeParse(payload);\n throw new OpenPondLearningError(response.status, error.success ? error.data.code ?? \"learning_request_failed\" : \"learning_request_failed\", error.success ? error.data.error ?? `Learning request failed (${response.status}).` : `Learning request failed (${response.status}).`, payload);\n }\n return payload;\n }\n}\n\nasync function readBoundedLearningResponse(response: Response): Promise<unknown> {\n const maximumBytes = 16_777_216;\n const reader = response.body?.getReader();\n if (!reader) throw new OpenPondLearningError(response.status, \"empty_response\", \"Learning response was empty.\", null);\n const decoder = new TextDecoder();\n let bytes = 0;\n let text = \"\";\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) break;\n bytes += next.value.byteLength;\n if (bytes > maximumBytes) throw new OpenPondLearningError(response.status, \"response_too_large\", \"Learning response exceeded 16 MiB; request a smaller page.\", null);\n text += decoder.decode(next.value, { stream: true });\n }\n text += decoder.decode();\n const value: unknown = JSON.parse(text);\n assertBoundedTaskJson(value, maximumBytes);\n return value;\n } finally {\n await reader.cancel();\n reader.releaseLock();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "z"]
|
|
7
|
+
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
ModelProjectVersionedRefSchema,
|
|
11
11
|
canonicalJson
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XANQWTTP.js";
|
|
13
13
|
|
|
14
14
|
// src/model-starter-execution.ts
|
|
15
15
|
import { z } from "zod";
|
|
@@ -571,4 +571,4 @@ export {
|
|
|
571
571
|
validateTasksetPackage,
|
|
572
572
|
createTasksetPackage
|
|
573
573
|
};
|
|
574
|
-
//# sourceMappingURL=chunk-
|
|
574
|
+
//# sourceMappingURL=chunk-T5JMZVQR.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
validateModelStarterExecution,
|
|
4
4
|
validateModelTasksetPackage,
|
|
5
5
|
validateTasksetPackage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-T5JMZVQR.js";
|
|
7
7
|
import {
|
|
8
8
|
contentHash
|
|
9
9
|
} from "./chunk-QUOW6URQ.js";
|
|
@@ -13,7 +13,10 @@ import {
|
|
|
13
13
|
ModelProjectTrainingSetupSchema,
|
|
14
14
|
ModelProjectVersionedRefSchema,
|
|
15
15
|
canonicalSha256
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XANQWTTP.js";
|
|
17
|
+
import {
|
|
18
|
+
ModelInitialLearningSchema
|
|
19
|
+
} from "./chunk-3KXDH6OB.js";
|
|
17
20
|
|
|
18
21
|
// src/model-starters.ts
|
|
19
22
|
import { z } from "zod";
|
|
@@ -165,7 +168,8 @@ var ModelStarterCreationIntentSchema = z.object({
|
|
|
165
168
|
starter: RefSchema,
|
|
166
169
|
startingModel: ModelProjectBaseModelSchema,
|
|
167
170
|
method: ModelProjectTrainingMethodSchema,
|
|
168
|
-
rewardBindingRef: RefSchema.nullable().optional()
|
|
171
|
+
rewardBindingRef: RefSchema.nullable().optional(),
|
|
172
|
+
learning: ModelInitialLearningSchema.optional()
|
|
169
173
|
}).strict();
|
|
170
174
|
var ModelStarterCreationRequestSchema = ModelStarterCreationIntentSchema.extend({
|
|
171
175
|
schemaVersion: z.literal("openpond.modelStarterCreation.v1"),
|
|
@@ -304,4 +308,4 @@ export {
|
|
|
304
308
|
previewModelStarter,
|
|
305
309
|
validateResolvedModelStarter
|
|
306
310
|
};
|
|
307
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-VW2SNUWB.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/model-starters.ts", "../src/model-training-defaults.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\nimport { ModelInitialLearningSchema } from \"./model-learning-intent.js\";\nimport { TasksetReleaseSchema, assertTasksetRelease } from \"@openpond/evals/tasksets\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema, RewardReleaseSchema, compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { assertBoundedTaskJson, validateTaskValue } from \"@openpond/evals/task-schema\";\n\nimport { ModelProjectBaseModelSchema, ModelProjectTrainingMethodSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { ModelStarterExecutionSchema, validateModelStarterExecution } from \"./model-starter-execution.js\";\n\nexport { ModelStarterExecutionSchema, ModelStarterEnvironmentAttemptSchema, verifyModelStarterEnvironmentAttempt, ModelStarterToolFixtureScriptSchema, createModelStarterExecutionAsset, modelStarterExecutionAssetId, resolveModelStarterExecutionAsset, type ModelStarterExecution, type ModelStarterExecutionContext } from \"./model-starter-execution.js\";\nexport { ModelTasksetDerivationSchema, ModelTasksetPackageSchema, deriveModelTaskset, validateModelTasksetPackage, type ModelTasksetPackage } from \"./model-taskset-derivation.js\";\nexport { ModelTasksetExecutionResourcesSchema, createModelTasksetExecutionResourcesAsset, modelTasksetExecutionResourcesAssetId, resolveModelTasksetExecutionResourcesAsset } from \"./model-taskset-resources.js\";\nexport { prepareModelTrainingDefaults } from \"./model-training-defaults.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst RefSchema = ModelProjectVersionedRefSchema;\n\n/** Catalog records contain references and previews, never the private task rows. */\nexport const ModelStarterContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarter.v1\"),\n id: IdSchema,\n revision: z.number().int().positive(),\n name: z.string().trim().min(1).max(200),\n description: z.string().trim().min(1).max(2_000),\n category: z.enum([\"extraction\", \"support\", \"operations\", \"knowledge\", \"coding\", \"writing\", \"classification\"]),\n taskset: RefSchema,\n taskDefinition: RefSchema,\n rewardBinding: RefSchema,\n rewards: z.array(RefSchema).min(1).max(100),\n assets: z.array(RefSchema).max(1_000),\n previewTaskIds: z.array(IdSchema).min(1).max(8),\n startingModel: ModelProjectBaseModelSchema,\n supportedMethods: z.array(ModelProjectTrainingMethodSchema).min(1).max(8),\n defaultMethod: ModelProjectTrainingMethodSchema,\n provenance: z.object({ author: z.string().min(1).max(200), license: z.string().min(1).max(200), sourceDescription: z.string().min(1).max(2_000) }).strict(),\n // These are references to real results. Package publication does not create\n // evidence, qualify a starter, or enable continuous learning.\n evidence: z.object({ verifierFixtures: RefSchema.nullable(), baseline: RefSchema.nullable(), training: RefSchema.nullable(), evaluation: RefSchema.nullable() }).strict(),\n}).strict().superRefine((starter, context) => {\n if (!starter.supportedMethods.includes(starter.defaultMethod)) context.addIssue({ code: \"custom\", path: [\"defaultMethod\"], message: \"The default method must be supported by the package.\" });\n for (const field of [\"rewards\", \"assets\"] as const) {\n if (new Set(starter[field].map(ref => ref.id)).size !== starter[field].length) context.addIssue({ code: \"custom\", path: [field], message: \"Dependency identities must be unique.\" });\n }\n if (new Set(starter.previewTaskIds).size !== starter.previewTaskIds.length) context.addIssue({ code: \"custom\", path: [\"previewTaskIds\"], message: \"Preview tasks must be unique.\" });\n});\nexport const ModelStarterSchema = ModelStarterContentSchema.safeExtend({ contentHash: z.string().regex(/^[a-f0-9]{64}$/) });\nexport type ModelStarter = z.infer<typeof ModelStarterSchema>;\n\n/** A resolved small package, obtained separately from catalog discovery.\n * Large Tasksets remain manifest/shard resources; they are not list payloads. */\nexport const ResolvedModelStarterSchema = z.object({\n starter: ModelStarterSchema,\n taskset: TasksetReleaseSchema,\n taskDefinition: TaskDefinitionSchema,\n rewardBinding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n assets: z.array(LearningTextAssetSchema).max(1_000),\n execution: ModelStarterExecutionSchema.optional(),\n}).strict();\nexport type ResolvedModelStarter = z.infer<typeof ResolvedModelStarterSchema>;\n\n/** Publisher attestation for original synthetic contact data, never a caller\n * override for arbitrary imports or for a failed secret scan. */\nexport const ModelStarterPrivacyReviewSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterPrivacyReview.v1\"),\n disposition: z.literal(\"synthetic_only\"),\n reviewedBy: z.string().trim().min(1).max(500), reviewedAt: z.iso.datetime(),\n reviewedContentHash: z.string().regex(/^[a-f0-9]{64}$/),\n note: z.string().trim().min(1).max(2_000),\n}).strict();\nexport function modelStarterPrivacyContentHash(value: ResolvedModelStarter): string {\n const { contentHash: _starterHash, ...starter } = value.starter;\n const { contentHash: _tasksetHash, ...taskset } = value.taskset;\n const { contentHash: _referenceHash, ...tasksetRef } = starter.taskset;\n const metadata = { ...taskset.metadata };\n const authoring = metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring)) {\n const { privacyReview: _review, ...content } = authoring as Record<string, unknown>;\n metadata.starterAuthoring = content;\n }\n // Exclude only the attestation and hashes that contain that attestation.\n return sealLearningContent({ ...value, starter: { ...starter, taskset: tasksetRef }, taskset: { ...taskset, metadata } }).contentHash;\n}\n\n/** Final creation intent. The server resolves package bytes from its catalog;\n * callers cannot supply executable resources or qualification receipts here. */\nexport const ModelStarterCreationIntentSchema = z.object({\n profileId: IdSchema,\n modelId: IdSchema,\n name: z.string().trim().min(1).max(200),\n starter: RefSchema,\n startingModel: ModelProjectBaseModelSchema,\n method: ModelProjectTrainingMethodSchema,\n rewardBindingRef: RefSchema.nullable().optional(),\n learning: ModelInitialLearningSchema.optional(),\n}).strict();\nexport const ModelStarterCreationRequestSchema = ModelStarterCreationIntentSchema.extend({\n schemaVersion: z.literal(\"openpond.modelStarterCreation.v1\"),\n operationId: IdSchema,\n}).strict();\nexport type ModelStarterCreationRequest = z.infer<typeof ModelStarterCreationRequestSchema>;\n\nexport function parseModelStarterCreationRequest(value: unknown): ModelStarterCreationRequest {\n assertBoundedTaskJson(value, 64 * 1024);\n return ModelStarterCreationRequestSchema.parse(value);\n}\n\n/** Prepare once on final confirmation and retain across uncertain transport\n * outcomes. The server must bind operationId to the complete original intent\n * and atomically commit resources, model configuration and the retry receipt. */\nexport async function createModelStarterCreationRequest(\n value: z.input<typeof ModelStarterCreationIntentSchema>,\n): Promise<ModelStarterCreationRequest> {\n assertBoundedTaskJson(value, 64 * 1024);\n const intent = ModelStarterCreationIntentSchema.parse(value);\n return parseModelStarterCreationRequest({\n ...intent,\n schemaVersion: \"openpond.modelStarterCreation.v1\",\n operationId: `model-starter:${await canonicalSha256(intent)}`,\n });\n}\n\n/** Scope authorization belongs to the API. This validates the final intent\n * against the exact trusted package before any user resources are written. */\nexport function validateModelStarterCreation(value: unknown, packageValue: unknown) {\n const request = parseModelStarterCreationRequest(value);\n const resolved = validateResolvedModelStarter(packageValue);\n if (!sameLearningRef(request.starter, learningRef(resolved.starter))) throw new Error(\"Starter creation references a different package revision.\");\n if (!resolved.starter.supportedMethods.includes(request.method)) throw new Error(\"The selected training method is not supported by this starter.\");\n return { request, resolved };\n}\n\n/** Explicit projection keeps frozen examples, expected outputs, privileged\n * context and verifier source out of read-only model-facing previews. */\nexport function previewModelStarter(value: unknown) {\n const { starter, taskset, taskDefinition, rewardBinding, rewards } = validateResolvedModelStarter(value);\n return {\n starter,\n inputSchema: taskDefinition.inputSchema,\n outputSchema: taskDefinition.outputSchema,\n reward: {\n name: rewardBinding.name,\n description: rewardBinding.description,\n checks: rewardBinding.sources.map(source => {\n const reward = rewards.find(reward => sameLearningRef(source.reward, learningRef(reward)))!;\n return { name: reward.name, description: reward.description, kind: reward.implementation.kind, role: source.role, weight: source.weight, required: source.required, hardGate: source.hardGate };\n }),\n },\n tasks: starter.previewTaskIds.map(id => {\n const task = taskset.tasks.find(task => task.id === id)!;\n return { id: task.id, input: task.input, policyVisibleContext: task.policyVisibleContext };\n }),\n counts: {\n train: taskset.tasks.filter(task => task.split === \"train\").length,\n validation: taskset.tasks.filter(task => task.split === \"validation\").length,\n frozenEvaluation: taskset.tasks.filter(task => task.split === \"frozen_eval\").length,\n },\n };\n}\n\n/** Verify the dependency graph before creating user-owned configuration.\n * A matching outer hash alone cannot authorize substituted private graders. */\nexport function validateResolvedModelStarter(value: unknown): ResolvedModelStarter {\n assertBoundedTaskJson(value, 16 * 1024 * 1024);\n const resolved = ResolvedModelStarterSchema.parse(value);\n const { starter, taskset, taskDefinition, rewardBinding, rewards, assets } = resolved;\n const authoring = taskset.metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring) && \"privacyReview\" in authoring) {\n const review = ModelStarterPrivacyReviewSchema.parse(authoring.privacyReview);\n if (review.reviewedContentHash !== modelStarterPrivacyContentHash(resolved)) throw new Error(\"Starter privacy review differs from the published contents.\");\n }\n const resources = [starter, taskset, taskDefinition, rewardBinding, ...rewards, ...assets];\n for (const resource of resources) {\n const { contentHash, ...content } = resource;\n if (sealLearningContent(content).contentHash !== contentHash) throw new Error(`Starter resource integrity failed: ${resource.id}.`);\n }\n assertTasksetRelease(taskset);\n validateModelStarterExecution(resolved.execution, taskset, assets);\n function exact(expected: z.infer<typeof RefSchema>, resource: { id: string; revision: number; contentHash: string }) {\n if (!sameLearningRef(expected, learningRef(resource))) throw new Error(`Starter dependency mismatch: ${expected.id}.`);\n }\n exact(starter.taskset, taskset);\n exact(starter.taskDefinition, taskDefinition);\n exact(starter.rewardBinding, rewardBinding);\n exact(taskDefinition.rewardBinding, rewardBinding);\n if (rewardBinding.recipeRef) throw new Error(\"Starter binding recipes must be resolved into a standalone binding before publication.\");\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = taskset;\n const execution = { policy, environment, ...(environmentRelease ? { environmentRelease } : {}), tools, capabilities, ...(verifierSetRelease ? { verifierSetRelease } : {}) };\n if (sealLearningContent(execution).contentHash !== sealLearningContent(taskDefinition.execution).contentHash) throw new Error(\"Starter execution context differs from its task format.\");\n if (sealLearningContent({ graders: taskset.graders }).contentHash !== sealLearningContent({ graders: compileBoundGraders(rewardBinding, rewards) }).contentHash) throw new Error(\"Starter executable graders differ from its Reward binding.\");\n for (const [references, values] of [[starter.rewards, rewards], [starter.assets, assets]] as const) {\n if (references.length !== values.length || new Set(values.map(resource => resource.id)).size !== values.length) throw new Error(\"Starter dependency inventory mismatch.\");\n for (const ref of references) {\n const resource = values.find(value => value.id === ref.id);\n if (!resource) throw new Error(`Starter dependency is missing: ${ref.id}.`);\n exact(ref, resource);\n }\n }\n for (const source of rewardBinding.sources) {\n const reward = rewards.find(reward => reward.id === source.reward.id);\n if (!reward) throw new Error(`Starter Reward is missing: ${source.reward.id}.`);\n exact(source.reward, reward);\n }\n for (const reward of rewards) {\n const implementation = reward.implementation;\n const references = [...reward.assets,\n ...(\"verifierRef\" in implementation ? [implementation.verifierRef] : []),\n ...(\"rubricRef\" in implementation ? [implementation.rubricRef] : []),\n ...(\"inputContract\" in implementation ? [implementation.inputContract] : []),\n ];\n for (const ref of references) {\n const asset = assets.find(asset => asset.id === ref.id);\n if (!asset || sealLearningContent(asset.asset).contentHash !== sealLearningContent(ref).contentHash) throw new Error(`Starter Reward source is missing or changed: ${ref.id}.`);\n if (ref.visibility === \"policy\") throw new Error(`Starter Reward source must remain private to its evaluator: ${ref.id}.`);\n }\n }\n if (new Set(taskset.tasks.map(task => task.id)).size !== taskset.tasks.length) throw new Error(\"Starter task identities must be unique.\");\n const inputSplits = new Map<string, string>();\n for (const task of taskset.tasks) {\n if (task.policyVisibleContext.instructions !== taskDefinition.instructions) throw new Error(`Starter task does not carry its declared model instructions: ${task.id}.`);\n const inputHash = sealLearningContent({ input: task.input, context: task.policyVisibleContext }).contentHash;\n const priorSplit = inputSplits.get(inputHash);\n if (priorSplit && priorSplit !== task.split) throw new Error(\"Starter policy input appears in multiple splits.\");\n inputSplits.set(inputHash, task.split);\n if (!validateTaskValue(taskDefinition.inputSchema, task.input).valid) throw new Error(`Starter task input does not match its format: ${task.id}.`);\n if (task.expectedOutput !== null && !validateTaskValue(taskDefinition.outputSchema, task.expectedOutput).valid) throw new Error(`Starter expected output does not match its format: ${task.id}.`);\n }\n for (const id of starter.previewTaskIds) {\n const task = taskset.tasks.find(task => task.id === id);\n if (!task || task.split === \"frozen_eval\") throw new Error(`Starter preview task is unavailable: ${id}.`);\n }\n return resolved;\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { validateModelTasksetPackage } from \"./model-taskset-derivation.js\";\nimport { ModelProjectTrainingSetupSchema, type ModelProjectTrainingSetup } from \"./model-projects.js\";\nimport { validateTasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Saved defaults do not authorize execution. The Run review still owns the\n * budget, runtime admission and exact training/evaluation population checks. */\nexport function prepareModelTrainingDefaults(input: {\n setup: ModelProjectTrainingSetup;\n package: unknown;\n}): ModelProjectTrainingSetup {\n const setup = ModelProjectTrainingSetupSchema.parse(input.setup);\n const portable = typeof input.package === \"object\" && input.package !== null\n && \"schemaVersion\" in input.package && input.package.schemaVersion === \"openpond.tasksetPackage.v1\"\n ? validateTasksetPackage(input.package) : null;\n const bound = portable ? null : validateModelTasksetPackage(input.package);\n const source = portable ?? bound!;\n const ref = setup.tasksetRef;\n const selected = ref && ref.revision === source.taskset.revision && (portable\n ? (ref.id === portable.taskset.id && ref.contentHash === portable.taskset.contentHash)\n || (ref.id === portable.taskset.metadata.sourceTasksetId && ref.contentHash === portable.taskset.metadata.sourceTasksetHash)\n : ref.id === source.taskset.id);\n if (!selected) return setup;\n if (!setup.evaluationTasksetRef && source.taskset.tasks.some(task => task.split === \"frozen_eval\" || task.split === \"validation\")) {\n setup.evaluationTasksetRef = setup.tasksetRef;\n }\n const base = setup.baseModel;\n if (setup.method !== \"grpo\" || setup.recipe || !base?.revision\n || !base.tokenizerRevision || !base.chatTemplateHash) return setup;\n const training = source.taskset.tasks.filter(task => task.split === \"train\");\n const graders = portable ? portable.taskset.graders : compileBoundGraders(bound!.rewardBinding, bound!.rewards);\n const grader = graders.find(candidate => candidate.rewardEligible && candidate.weight > 0);\n const environment = portable?.environment ?? bound?.executionResources?.environment ?? bound?.execution?.environment;\n if (!training.length || !grader || !environment) return setup;\n const groupSize = 8;\n const maxSteps = 8;\n return ModelProjectTrainingSetupSchema.parse({\n ...setup,\n recipe: {\n schemaVersion: \"openpond.rftRecipe.v1\", method: \"grpo\", parameterization: \"lora\",\n baseModel: { id: base.modelId, revision: base.revision,\n tokenizerRevision: base.tokenizerRevision, chatTemplateHash: base.chatTemplateHash },\n dataset: { trainSplit: \"train\", validationSplit: source.taskset.tasks.some(task => task.split === \"frozen_eval\") ? \"frozen_eval\" : \"validation\",\n maxPromptTokens: 4_096, maxExamples: Math.min(1_000, training.length), selectionStrategy: \"stable_hash_top_n\" },\n lora: { rank: 2 },\n rollout: { groupSize, concurrency: 4,\n maxTurns: source.taskset.environment.kind === \"text\" ? 1 : 15,\n maxOutputTokens: 1_024, temperature: 0.8, topP: 0.95, seed: 17 },\n optimizer: { learningRate: 0.0001, maxSteps, clipRange: 0.2, iterations: 2,\n microbatchSize: 1, gradientAccumulationSteps: groupSize, advantageEpsilon: 1e-8,\n adamw: { name: \"adamw\", weightDecay: 0, beta1: 0.9, beta2: 0.999, epsilon: 1e-8 } },\n loss: { method: \"grpo\", klBeta: 0.01 },\n reward: { graderId: grader.id, graderHash: contentHash(graders),\n environmentId: environment.id, environmentVersion: String(environment.revision),\n toolContractHash: contentHash(source.taskset.tools), learnedPreference: null },\n resourceLimits: { wallTimeMs: 66 * 60 * 1_000, maxRollouts: maxSteps * groupSize, maxPayloadBytes: 1_000_000 },\n policyOptimization: null,\n },\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["compileBoundGraders", "reward", "task", "contentHash", "compileBoundGraders", "value", "asset"]
|
|
7
|
+
}
|