openpond-sdk 0.5.1 → 0.5.2
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/TRAINING_PROTOCOL.md +20 -0
- package/dist/{chunk-65D4C7HP.js → chunk-4IDTRFW2.js} +2 -2
- package/dist/{chunk-747CMU2Y.js → chunk-6QWV5TEJ.js} +3 -3
- package/dist/{chunk-ODTLCYUT.js → chunk-OJERFIEJ.js} +190 -128
- package/dist/chunk-OJERFIEJ.js.map +7 -0
- package/dist/{chunk-6LGGLXAM.js → chunk-PXB6YY36.js} +3 -3
- package/dist/{chunk-EPJM7VEV.js → chunk-SQCACAC7.js} +2 -2
- package/dist/{chunk-5PRP457R.js → chunk-ZNFOVV7B.js} +2 -1
- package/dist/chunk-ZNFOVV7B.js.map +7 -0
- package/dist/model-projects.js +1 -1
- package/dist/model-starter-attempts.js +2 -2
- package/dist/model-starter-catalog.js +3 -3
- package/dist/model-starters.js +3 -3
- package/dist/model-taskset-runs.js +2 -2
- package/dist/taskset-drafts.js +4 -4
- package/dist/taskset-packages.js +4 -4
- package/dist/training.js +10 -2
- package/dist/types/packages/sdk/src/model-projects.d.ts +60 -0
- package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +5 -0
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +15 -0
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-evaluation-source.d.ts +41 -0
- package/dist/types/packages/sdk/src/training-evaluation-source.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training.d.ts +23 -0
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/fixtures/training/v2/policy-optimize.valid.json +13 -2
- package/package.json +1 -1
- package/dist/chunk-5PRP457R.js.map +0 -7
- package/dist/chunk-ODTLCYUT.js.map +0 -7
- /package/dist/{chunk-65D4C7HP.js.map → chunk-4IDTRFW2.js.map} +0 -0
- /package/dist/{chunk-747CMU2Y.js.map → chunk-6QWV5TEJ.js.map} +0 -0
- /package/dist/{chunk-6LGGLXAM.js.map → chunk-PXB6YY36.js.map} +0 -0
- /package/dist/{chunk-EPJM7VEV.js.map → chunk-SQCACAC7.js.map} +0 -0
package/TRAINING_PROTOCOL.md
CHANGED
|
@@ -96,6 +96,26 @@ bundle before provisioning and retain both in receipt inputs when non-null.
|
|
|
96
96
|
Identity validation does not establish that a provider can execute a grader;
|
|
97
97
|
providers must also reject unsupported execution configurations at admission.
|
|
98
98
|
|
|
99
|
+
## Held-out evaluation source
|
|
100
|
+
|
|
101
|
+
Managed policy training carries `evaluation-source.json` inside the verified
|
|
102
|
+
resolved bundle. `TrainingEvaluationSourceSchema` describes its exact Taskset
|
|
103
|
+
revision, complete held-out task records and evaluator-only asset bytes.
|
|
104
|
+
`assertTrainingEvaluationIsolation` rejects train/held-out split violations,
|
|
105
|
+
duplicate task IDs and shared training/evaluation families. The data remains
|
|
106
|
+
private to evaluation and must not become policy-visible context.
|
|
107
|
+
|
|
108
|
+
`trainingEvaluationSourceRef` derives `source.evaluation`: the original Taskset
|
|
109
|
+
reference and the canonical evaluation dataset hash. Providers compare these
|
|
110
|
+
references with the admitted bundle before provisioning and retain both in
|
|
111
|
+
receipt inputs. Changing private answers or assets changes the bundle and
|
|
112
|
+
evaluation dataset identity. Model configuration may select a separate immutable
|
|
113
|
+
`evaluationTasksetRef`; a train-only batch does not need a Comparison Series.
|
|
114
|
+
|
|
115
|
+
The nullable wire field preserves historical records. A provider that requires
|
|
116
|
+
pinned evaluation must reject new policy submissions without it. Artifact
|
|
117
|
+
admission alone does not establish model execution or learning quality.
|
|
118
|
+
|
|
99
119
|
## Conformance
|
|
100
120
|
|
|
101
121
|
Published fixtures live in `fixtures/training/v2`. Providers should:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModelProjectVersionedRefSchema,
|
|
3
3
|
canonicalJson
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZNFOVV7B.js";
|
|
5
5
|
|
|
6
6
|
// src/model-starter-execution.ts
|
|
7
7
|
import { z } from "zod";
|
|
@@ -270,4 +270,4 @@ export {
|
|
|
270
270
|
deriveModelTaskset,
|
|
271
271
|
validateModelTasksetPackage
|
|
272
272
|
};
|
|
273
|
-
//# sourceMappingURL=chunk-
|
|
273
|
+
//# sourceMappingURL=chunk-4IDTRFW2.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModelStarterExecutionSchema,
|
|
3
3
|
validateModelStarterExecution
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4IDTRFW2.js";
|
|
5
5
|
import {
|
|
6
6
|
ModelProjectBaseModelSchema,
|
|
7
7
|
ModelProjectTrainingMethodSchema,
|
|
8
8
|
ModelProjectVersionedRefSchema,
|
|
9
9
|
canonicalSha256
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZNFOVV7B.js";
|
|
11
11
|
|
|
12
12
|
// src/model-starters.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -219,4 +219,4 @@ export {
|
|
|
219
219
|
previewModelStarter,
|
|
220
220
|
validateResolvedModelStarter
|
|
221
221
|
};
|
|
222
|
-
//# sourceMappingURL=chunk-
|
|
222
|
+
//# sourceMappingURL=chunk-6QWV5TEJ.js.map
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
assertCanonicalPayloadSize,
|
|
12
12
|
canonicalSha256,
|
|
13
13
|
parseBoundedJson
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ZNFOVV7B.js";
|
|
15
15
|
|
|
16
16
|
// src/training.ts
|
|
17
|
-
import { z as
|
|
17
|
+
import { z as z3 } from "zod";
|
|
18
18
|
|
|
19
19
|
// src/training-grading-plan.ts
|
|
20
20
|
import { z } from "zod";
|
|
@@ -38,25 +38,79 @@ async function deterministicTrainingRewardSource(input) {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
// src/training-evaluation-source.ts
|
|
42
|
+
import { z as z2 } from "zod";
|
|
43
|
+
var TRAINING_EVALUATION_SOURCE_PATH = "evaluation-source.json";
|
|
44
|
+
var TaskIdentitySchema = z2.object({
|
|
45
|
+
id: z2.string().trim().min(1),
|
|
46
|
+
clusterKey: z2.string().trim().min(1),
|
|
47
|
+
split: z2.enum(["train", "validation", "frozen_eval"])
|
|
48
|
+
}).passthrough();
|
|
49
|
+
var TrainingEvaluationSourceSchema = z2.object({
|
|
50
|
+
schemaVersion: z2.literal("openpond.trainingEvaluationSource.v1"),
|
|
51
|
+
taskset: ModelProjectVersionedRefSchema,
|
|
52
|
+
tasks: z2.array(TaskIdentitySchema).min(1).max(1e4),
|
|
53
|
+
assets: z2.array(z2.object({
|
|
54
|
+
path: z2.string().trim().min(1).max(2e3),
|
|
55
|
+
sha256: z2.string().regex(/^[a-f0-9]{64}$/),
|
|
56
|
+
sizeBytes: z2.number().int().nonnegative(),
|
|
57
|
+
encoding: z2.literal("base64"),
|
|
58
|
+
content: z2.string().max(32 * 1024 * 1024)
|
|
59
|
+
}).strict()).max(1e4)
|
|
60
|
+
}).strict().superRefine((source, context) => {
|
|
61
|
+
const ids = /* @__PURE__ */ new Set();
|
|
62
|
+
source.tasks.forEach((task, index) => {
|
|
63
|
+
if (task.split === "train") context.addIssue({ code: "custom", path: ["tasks", index, "split"], message: "Evaluation sources require held-out tasks." });
|
|
64
|
+
if (ids.has(task.id)) context.addIssue({ code: "custom", path: ["tasks", index, "id"], message: "Evaluation task identities must be unique." });
|
|
65
|
+
ids.add(task.id);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
function assertTrainingEvaluationIsolation(trainingTasks, evaluationTasks) {
|
|
69
|
+
const training = z2.array(TaskIdentitySchema).min(1).max(1e4).parse(trainingTasks);
|
|
70
|
+
const evaluation = z2.array(TaskIdentitySchema).min(1).max(1e4).parse(evaluationTasks);
|
|
71
|
+
const trainIds = /* @__PURE__ */ new Set();
|
|
72
|
+
const trainFamilies = /* @__PURE__ */ new Set();
|
|
73
|
+
for (const task of training) {
|
|
74
|
+
if (task.split !== "train") throw new Error("The training population contains a held-out task.");
|
|
75
|
+
if (trainIds.has(task.id)) throw new Error("Training task identities must be unique.");
|
|
76
|
+
trainIds.add(task.id);
|
|
77
|
+
trainFamilies.add(task.clusterKey);
|
|
78
|
+
}
|
|
79
|
+
const evaluationIds = /* @__PURE__ */ new Set();
|
|
80
|
+
for (const task of evaluation) {
|
|
81
|
+
if (task.split === "train") throw new Error("The evaluation population contains a training task.");
|
|
82
|
+
if (evaluationIds.has(task.id)) throw new Error("Evaluation task identities must be unique.");
|
|
83
|
+
if (trainIds.has(task.id) || trainFamilies.has(task.clusterKey)) {
|
|
84
|
+
throw new Error("Training and evaluation tasks or families overlap.");
|
|
85
|
+
}
|
|
86
|
+
evaluationIds.add(task.id);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function trainingEvaluationSourceRef(input) {
|
|
90
|
+
const source = TrainingEvaluationSourceSchema.parse(input);
|
|
91
|
+
const hash = await canonicalSha256(source);
|
|
92
|
+
return { taskset: source.taskset, dataset: { id: `training-evaluation-${hash.slice(0, 32)}`, contentHash: hash } };
|
|
93
|
+
}
|
|
94
|
+
|
|
41
95
|
// src/training.ts
|
|
42
|
-
var IdSchema =
|
|
43
|
-
var HashSchema =
|
|
44
|
-
var TimestampSchema =
|
|
45
|
-
var TrainingInputArtifactUploadSchema =
|
|
46
|
-
schemaVersion:
|
|
47
|
-
kind:
|
|
48
|
-
idempotencyKey:
|
|
96
|
+
var IdSchema = z3.string().trim().min(1).max(500);
|
|
97
|
+
var HashSchema = z3.string().regex(/^[a-f0-9]{64}$/);
|
|
98
|
+
var TimestampSchema = z3.string().datetime({ offset: true });
|
|
99
|
+
var TrainingInputArtifactUploadSchema = z3.object({
|
|
100
|
+
schemaVersion: z3.literal("openpond.trainingInputArtifactUpload.v2"),
|
|
101
|
+
kind: z3.enum(["portable_training_bundle", "reward_model_dataset"]),
|
|
102
|
+
idempotencyKey: z3.string().trim().min(1).max(500),
|
|
49
103
|
sourceManifest: ModelProjectImmutableRefSchema,
|
|
50
|
-
payload:
|
|
104
|
+
payload: z3.unknown(),
|
|
51
105
|
contentHash: HashSchema
|
|
52
106
|
}).strict();
|
|
53
|
-
var TrainingInputArtifactSchema =
|
|
54
|
-
schemaVersion:
|
|
55
|
-
kind:
|
|
107
|
+
var TrainingInputArtifactSchema = z3.object({
|
|
108
|
+
schemaVersion: z3.literal("openpond.trainingInputArtifact.v2"),
|
|
109
|
+
kind: z3.enum(["portable_training_bundle", "reward_model_dataset"]),
|
|
56
110
|
sourceManifest: ModelProjectImmutableRefSchema,
|
|
57
|
-
artifactRef:
|
|
111
|
+
artifactRef: z3.string().trim().min(1).max(2e3),
|
|
58
112
|
contentHash: HashSchema,
|
|
59
|
-
sizeBytes:
|
|
113
|
+
sizeBytes: z3.number().int().positive(),
|
|
60
114
|
createdAt: TimestampSchema
|
|
61
115
|
}).strict();
|
|
62
116
|
async function trainingInputArtifactUploadHash(upload) {
|
|
@@ -79,11 +133,11 @@ async function parseAndVerifyTrainingInputArtifactUpload(value) {
|
|
|
79
133
|
}
|
|
80
134
|
return parsed;
|
|
81
135
|
}
|
|
82
|
-
var TrainingJobKindSchema =
|
|
136
|
+
var TrainingJobKindSchema = z3.enum([
|
|
83
137
|
"reward_model_train",
|
|
84
138
|
"policy_optimize"
|
|
85
139
|
]);
|
|
86
|
-
var TrainingJobStateSchema =
|
|
140
|
+
var TrainingJobStateSchema = z3.enum([
|
|
87
141
|
"queued",
|
|
88
142
|
"admitting",
|
|
89
143
|
"provisioning",
|
|
@@ -94,87 +148,91 @@ var TrainingJobStateSchema = z2.enum([
|
|
|
94
148
|
"failed",
|
|
95
149
|
"cancelled"
|
|
96
150
|
]);
|
|
97
|
-
var TrainingCapabilityRequirementSchema =
|
|
151
|
+
var TrainingCapabilityRequirementSchema = z3.object({
|
|
98
152
|
id: IdSchema,
|
|
99
|
-
version:
|
|
100
|
-
required:
|
|
153
|
+
version: z3.string().trim().min(1).max(200).nullable().default(null),
|
|
154
|
+
required: z3.boolean().default(true)
|
|
101
155
|
}).strict();
|
|
102
|
-
var TrainingJobSourceSchema =
|
|
103
|
-
modelProject:
|
|
156
|
+
var TrainingJobSourceSchema = z3.object({
|
|
157
|
+
modelProject: z3.object({
|
|
104
158
|
id: IdSchema,
|
|
105
159
|
portableProjectId: IdSchema,
|
|
106
|
-
revision:
|
|
160
|
+
revision: z3.number().int().positive(),
|
|
107
161
|
contentHash: HashSchema
|
|
108
162
|
}).strict(),
|
|
109
163
|
harnessRunManifest: ModelProjectImmutableRefSchema,
|
|
110
164
|
harnessRelease: ModelProjectImmutableRefSchema,
|
|
111
165
|
taskset: ModelProjectVersionedRefSchema,
|
|
112
166
|
tasksetRelease: ModelProjectImmutableRefSchema,
|
|
167
|
+
evaluation: z3.object({
|
|
168
|
+
taskset: ModelProjectVersionedRefSchema,
|
|
169
|
+
dataset: ModelProjectImmutableRefSchema
|
|
170
|
+
}).strict().nullable().optional(),
|
|
113
171
|
dataset: ModelProjectImmutableRefSchema,
|
|
114
|
-
evidenceSets:
|
|
172
|
+
evidenceSets: z3.array(ModelProjectImmutableRefSchema).max(1e4)
|
|
115
173
|
}).strict();
|
|
116
|
-
var RewardModelTrainingRequestSchema =
|
|
117
|
-
kind:
|
|
174
|
+
var RewardModelTrainingRequestSchema = z3.object({
|
|
175
|
+
kind: z3.literal("reward_model_train"),
|
|
118
176
|
baseModel: ModelProjectBaseModelSchema,
|
|
119
177
|
preferenceDatasetRelease: ModelProjectImmutableRefSchema,
|
|
120
178
|
processorRelease: ModelProjectImmutableRefSchema,
|
|
121
|
-
recipe:
|
|
122
|
-
schemaVersion:
|
|
123
|
-
method:
|
|
124
|
-
parameterization:
|
|
125
|
-
}).catchall(
|
|
179
|
+
recipe: z3.object({
|
|
180
|
+
schemaVersion: z3.literal("openpond.rewardModelRecipe.v1"),
|
|
181
|
+
method: z3.literal("reward_model"),
|
|
182
|
+
parameterization: z3.literal("lora_with_scalar_head")
|
|
183
|
+
}).catchall(z3.unknown())
|
|
126
184
|
}).strict();
|
|
127
|
-
var DeterministicRewardSourceSchema =
|
|
128
|
-
kind:
|
|
185
|
+
var DeterministicRewardSourceSchema = z3.object({
|
|
186
|
+
kind: z3.literal("deterministic"),
|
|
129
187
|
grader: ModelProjectImmutableRefSchema,
|
|
130
188
|
composer: ModelProjectImmutableRefSchema.nullable().default(null)
|
|
131
189
|
}).strict();
|
|
132
|
-
var LearnedRewardSourceSchema =
|
|
133
|
-
kind:
|
|
190
|
+
var LearnedRewardSourceSchema = z3.object({
|
|
191
|
+
kind: z3.literal("learned_reward"),
|
|
134
192
|
rewardModelVersion: ModelProjectImmutableRefSchema,
|
|
135
193
|
qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),
|
|
136
|
-
evaluationReferences:
|
|
137
|
-
scorerArtifact:
|
|
138
|
-
artifactRef:
|
|
194
|
+
evaluationReferences: z3.array(ModelProjectImmutableRefSchema).max(1e3).default([]),
|
|
195
|
+
scorerArtifact: z3.object({
|
|
196
|
+
artifactRef: z3.string().trim().min(1).max(2e3),
|
|
139
197
|
contentHash: HashSchema,
|
|
140
198
|
executionReceipt: ModelProjectImmutableRefSchema
|
|
141
199
|
}).strict(),
|
|
142
200
|
processorRelease: ModelProjectImmutableRefSchema,
|
|
143
201
|
rewardComposerRelease: ModelProjectImmutableRefSchema
|
|
144
202
|
}).strict();
|
|
145
|
-
var PolicyOptimizationRequestSchema =
|
|
146
|
-
kind:
|
|
203
|
+
var PolicyOptimizationRequestSchema = z3.object({
|
|
204
|
+
kind: z3.literal("policy_optimize"),
|
|
147
205
|
baseModel: ModelProjectBaseModelSchema,
|
|
148
206
|
recipe: ModelProjectRecipeDocumentSchema,
|
|
149
|
-
rewardSource:
|
|
207
|
+
rewardSource: z3.discriminatedUnion("kind", [
|
|
150
208
|
DeterministicRewardSourceSchema,
|
|
151
209
|
LearnedRewardSourceSchema
|
|
152
210
|
]),
|
|
153
211
|
resumeFrom: ModelProjectImmutableRefSchema.nullable().default(null)
|
|
154
212
|
}).strict();
|
|
155
|
-
var TrainingJobRequestSchema =
|
|
213
|
+
var TrainingJobRequestSchema = z3.discriminatedUnion("kind", [
|
|
156
214
|
RewardModelTrainingRequestSchema,
|
|
157
215
|
PolicyOptimizationRequestSchema
|
|
158
216
|
]);
|
|
159
|
-
var TrainingJobApprovalSchema =
|
|
217
|
+
var TrainingJobApprovalSchema = z3.object({
|
|
160
218
|
approvalHash: HashSchema,
|
|
161
219
|
approvedAt: TimestampSchema,
|
|
162
|
-
exportApproved:
|
|
163
|
-
maximumSpendUsd:
|
|
164
|
-
retentionDays:
|
|
165
|
-
region:
|
|
220
|
+
exportApproved: z3.boolean(),
|
|
221
|
+
maximumSpendUsd: z3.number().nonnegative(),
|
|
222
|
+
retentionDays: z3.number().int().nonnegative().nullable(),
|
|
223
|
+
region: z3.string().trim().min(1).max(200).nullable().default(null)
|
|
166
224
|
}).strict();
|
|
167
|
-
var TrainingJobSubmissionSchema =
|
|
168
|
-
schemaVersion:
|
|
169
|
-
idempotencyKey:
|
|
170
|
-
name:
|
|
225
|
+
var TrainingJobSubmissionSchema = z3.object({
|
|
226
|
+
schemaVersion: z3.literal("openpond.trainingJobSubmission.v2"),
|
|
227
|
+
idempotencyKey: z3.string().trim().min(1).max(500),
|
|
228
|
+
name: z3.string().trim().min(1).max(200),
|
|
171
229
|
source: TrainingJobSourceSchema,
|
|
172
230
|
job: TrainingJobRequestSchema,
|
|
173
|
-
requestedCapabilities:
|
|
174
|
-
placementObjective:
|
|
175
|
-
budget:
|
|
176
|
-
maximumSpendUsd:
|
|
177
|
-
maximumWallSeconds:
|
|
231
|
+
requestedCapabilities: z3.array(TrainingCapabilityRequirementSchema).max(1e3),
|
|
232
|
+
placementObjective: z3.enum(["fast", "balanced", "economical"]),
|
|
233
|
+
budget: z3.object({
|
|
234
|
+
maximumSpendUsd: z3.number().nonnegative(),
|
|
235
|
+
maximumWallSeconds: z3.number().int().positive()
|
|
178
236
|
}).strict(),
|
|
179
237
|
approval: TrainingJobApprovalSchema,
|
|
180
238
|
contentHash: HashSchema
|
|
@@ -207,61 +265,61 @@ async function parseAndVerifyTrainingJobSubmission(value) {
|
|
|
207
265
|
}
|
|
208
266
|
return parsed;
|
|
209
267
|
}
|
|
210
|
-
var TrainingJobSchema =
|
|
211
|
-
schemaVersion:
|
|
268
|
+
var TrainingJobSchema = z3.object({
|
|
269
|
+
schemaVersion: z3.literal("openpond.trainingJob.v2"),
|
|
212
270
|
id: IdSchema,
|
|
213
271
|
teamId: IdSchema,
|
|
214
272
|
kind: TrainingJobKindSchema,
|
|
215
273
|
modelProjectId: IdSchema,
|
|
216
274
|
portableProjectId: IdSchema,
|
|
217
|
-
sourceProjectRevision:
|
|
275
|
+
sourceProjectRevision: z3.number().int().positive(),
|
|
218
276
|
submissionHash: HashSchema,
|
|
219
277
|
state: TrainingJobStateSchema,
|
|
220
|
-
phase:
|
|
221
|
-
version:
|
|
222
|
-
progress:
|
|
223
|
-
rolloutProgress:
|
|
224
|
-
groupsCompleted:
|
|
225
|
-
groupsTarget:
|
|
226
|
-
optimizerUpdatesApplied:
|
|
227
|
-
optimizerUpdatesSkipped:
|
|
278
|
+
phase: z3.string().trim().min(1).max(200),
|
|
279
|
+
version: z3.number().int().nonnegative(),
|
|
280
|
+
progress: z3.number().min(0).max(1),
|
|
281
|
+
rolloutProgress: z3.object({
|
|
282
|
+
groupsCompleted: z3.number().int().nonnegative(),
|
|
283
|
+
groupsTarget: z3.number().int().nonnegative(),
|
|
284
|
+
optimizerUpdatesApplied: z3.number().int().nonnegative(),
|
|
285
|
+
optimizerUpdatesSkipped: z3.number().int().nonnegative()
|
|
228
286
|
}).strict(),
|
|
229
|
-
accruedSpendUsd:
|
|
230
|
-
terminalReason:
|
|
287
|
+
accruedSpendUsd: z3.number().nonnegative(),
|
|
288
|
+
terminalReason: z3.string().trim().min(1).max(5e3).nullable(),
|
|
231
289
|
createdAt: TimestampSchema,
|
|
232
290
|
updatedAt: TimestampSchema,
|
|
233
291
|
completedAt: TimestampSchema.nullable()
|
|
234
292
|
}).strict();
|
|
235
|
-
var TrainingJobPageSchema =
|
|
236
|
-
schemaVersion:
|
|
237
|
-
jobs:
|
|
238
|
-
nextCursor:
|
|
293
|
+
var TrainingJobPageSchema = z3.object({
|
|
294
|
+
schemaVersion: z3.literal("openpond.trainingJobPage.v2"),
|
|
295
|
+
jobs: z3.array(TrainingJobSchema).max(1e3),
|
|
296
|
+
nextCursor: z3.string().trim().min(1).max(2e3).nullable()
|
|
239
297
|
}).strict();
|
|
240
|
-
var TrainingJobEventSchema =
|
|
241
|
-
schemaVersion:
|
|
298
|
+
var TrainingJobEventSchema = z3.object({
|
|
299
|
+
schemaVersion: z3.literal("openpond.trainingJobEvent.v2"),
|
|
242
300
|
id: IdSchema,
|
|
243
301
|
jobId: IdSchema,
|
|
244
|
-
sequence:
|
|
302
|
+
sequence: z3.number().int().nonnegative(),
|
|
245
303
|
type: IdSchema,
|
|
246
|
-
phase:
|
|
247
|
-
message:
|
|
248
|
-
data:
|
|
304
|
+
phase: z3.string().trim().min(1).max(200),
|
|
305
|
+
message: z3.string().trim().min(1).max(5e3).nullable(),
|
|
306
|
+
data: z3.record(z3.string(), z3.unknown()).default({}),
|
|
249
307
|
createdAt: TimestampSchema
|
|
250
308
|
}).strict();
|
|
251
|
-
var TrainingJobLogSchema =
|
|
252
|
-
schemaVersion:
|
|
309
|
+
var TrainingJobLogSchema = z3.object({
|
|
310
|
+
schemaVersion: z3.literal("openpond.trainingJobLog.v2"),
|
|
253
311
|
jobId: IdSchema,
|
|
254
|
-
sequence:
|
|
255
|
-
level:
|
|
256
|
-
message:
|
|
312
|
+
sequence: z3.number().int().nonnegative(),
|
|
313
|
+
level: z3.enum(["debug", "info", "warning", "error"]),
|
|
314
|
+
message: z3.string().max(2e4),
|
|
257
315
|
createdAt: TimestampSchema
|
|
258
316
|
}).strict();
|
|
259
|
-
var TrainingJobControlRequestSchema =
|
|
260
|
-
var TrainingJobOutputSchema =
|
|
261
|
-
schemaVersion:
|
|
317
|
+
var TrainingJobControlRequestSchema = z3.object({ expectedVersion: z3.number().int().nonnegative() }).strict();
|
|
318
|
+
var TrainingJobOutputSchema = z3.object({
|
|
319
|
+
schemaVersion: z3.literal("openpond.trainingJobOutput.v2"),
|
|
262
320
|
id: IdSchema,
|
|
263
321
|
jobId: IdSchema,
|
|
264
|
-
kind:
|
|
322
|
+
kind: z3.enum([
|
|
265
323
|
"checkpoint",
|
|
266
324
|
"adapter",
|
|
267
325
|
"scorer",
|
|
@@ -270,14 +328,14 @@ var TrainingJobOutputSchema = z2.object({
|
|
|
270
328
|
"trace",
|
|
271
329
|
"receipt"
|
|
272
330
|
]),
|
|
273
|
-
artifactRef:
|
|
331
|
+
artifactRef: z3.string().trim().min(1).max(2e3),
|
|
274
332
|
contentHash: HashSchema,
|
|
275
|
-
sizeBytes:
|
|
276
|
-
metadata:
|
|
333
|
+
sizeBytes: z3.number().int().nonnegative(),
|
|
334
|
+
metadata: z3.record(z3.string(), z3.unknown()).default({}),
|
|
277
335
|
createdAt: TimestampSchema
|
|
278
336
|
}).strict();
|
|
279
|
-
var TrainingExecutionReceiptSchema =
|
|
280
|
-
schemaVersion:
|
|
337
|
+
var TrainingExecutionReceiptSchema = z3.object({
|
|
338
|
+
schemaVersion: z3.literal("openpond.trainingExecutionReceipt.v2"),
|
|
281
339
|
id: IdSchema,
|
|
282
340
|
teamId: IdSchema,
|
|
283
341
|
jobId: IdSchema,
|
|
@@ -286,14 +344,14 @@ var TrainingExecutionReceiptSchema = z2.object({
|
|
|
286
344
|
recipeHash: HashSchema,
|
|
287
345
|
capabilityHash: HashSchema,
|
|
288
346
|
runtimeRelease: ModelProjectImmutableRefSchema,
|
|
289
|
-
inputs:
|
|
290
|
-
outputs:
|
|
291
|
-
spendUsd:
|
|
292
|
-
durationSeconds:
|
|
293
|
-
cleanupComplete:
|
|
347
|
+
inputs: z3.array(ModelProjectImmutableRefSchema).max(1e4),
|
|
348
|
+
outputs: z3.array(ModelProjectImmutableRefSchema).max(1e4),
|
|
349
|
+
spendUsd: z3.number().nonnegative(),
|
|
350
|
+
durationSeconds: z3.number().nonnegative(),
|
|
351
|
+
cleanupComplete: z3.boolean(),
|
|
294
352
|
issuer: IdSchema,
|
|
295
353
|
issuedAt: TimestampSchema,
|
|
296
|
-
signature:
|
|
354
|
+
signature: z3.string().trim().min(1).max(1e4).nullable()
|
|
297
355
|
}).strict();
|
|
298
356
|
async function trainingExecutionReceiptHash(receipt) {
|
|
299
357
|
return canonicalSha256(TrainingExecutionReceiptSchema.parse(receipt));
|
|
@@ -329,18 +387,18 @@ async function parseAndVerifyTrainingExecutionReceipt(value, expected) {
|
|
|
329
387
|
}
|
|
330
388
|
return receipt;
|
|
331
389
|
}
|
|
332
|
-
var TrainingJobOutputsSchema =
|
|
333
|
-
schemaVersion:
|
|
334
|
-
outputs:
|
|
390
|
+
var TrainingJobOutputsSchema = z3.object({
|
|
391
|
+
schemaVersion: z3.literal("openpond.trainingJobOutputs.v2"),
|
|
392
|
+
outputs: z3.array(TrainingJobOutputSchema).max(1e4),
|
|
335
393
|
receipt: TrainingExecutionReceiptSchema.nullable()
|
|
336
394
|
}).strict();
|
|
337
|
-
var TrainingApiErrorSchema =
|
|
338
|
-
schemaVersion:
|
|
339
|
-
code:
|
|
340
|
-
message:
|
|
341
|
-
retryable:
|
|
342
|
-
requestId:
|
|
343
|
-
details:
|
|
395
|
+
var TrainingApiErrorSchema = z3.object({
|
|
396
|
+
schemaVersion: z3.literal("openpond.trainingApiError.v2"),
|
|
397
|
+
code: z3.string().trim().min(1).max(200),
|
|
398
|
+
message: z3.string().trim().min(1).max(5e3),
|
|
399
|
+
retryable: z3.boolean().default(false),
|
|
400
|
+
requestId: z3.string().trim().min(1).max(500).nullable().default(null),
|
|
401
|
+
details: z3.record(z3.string(), z3.unknown()).default({})
|
|
344
402
|
}).strict();
|
|
345
403
|
var OpenPondTrainingApiError = class extends Error {
|
|
346
404
|
status;
|
|
@@ -358,23 +416,23 @@ var OpenPondTrainingApiError = class extends Error {
|
|
|
358
416
|
this.details = error.details;
|
|
359
417
|
}
|
|
360
418
|
};
|
|
361
|
-
var TrainingCapabilitiesSchema =
|
|
362
|
-
schemaVersion:
|
|
419
|
+
var TrainingCapabilitiesSchema = z3.object({
|
|
420
|
+
schemaVersion: z3.literal("openpond.trainingCapabilities.v2"),
|
|
363
421
|
capabilityHash: HashSchema,
|
|
364
|
-
jobKinds:
|
|
365
|
-
methods:
|
|
366
|
-
placements:
|
|
367
|
-
|
|
422
|
+
jobKinds: z3.array(TrainingJobKindSchema),
|
|
423
|
+
methods: z3.array(z3.string().trim().min(1).max(200)),
|
|
424
|
+
placements: z3.array(
|
|
425
|
+
z3.enum(["local", "remote", "colocated", "provider_native"])
|
|
368
426
|
),
|
|
369
|
-
controls:
|
|
370
|
-
cancel:
|
|
371
|
-
stopAfterGroup:
|
|
372
|
-
resumeFromCheckpoint:
|
|
427
|
+
controls: z3.object({
|
|
428
|
+
cancel: z3.boolean(),
|
|
429
|
+
stopAfterGroup: z3.boolean(),
|
|
430
|
+
resumeFromCheckpoint: z3.boolean()
|
|
373
431
|
}).strict(),
|
|
374
|
-
limits:
|
|
375
|
-
maximumSpendUsd:
|
|
376
|
-
maximumWallSeconds:
|
|
377
|
-
maximumArtifactBytes:
|
|
432
|
+
limits: z3.object({
|
|
433
|
+
maximumSpendUsd: z3.number().nonnegative(),
|
|
434
|
+
maximumWallSeconds: z3.number().int().positive(),
|
|
435
|
+
maximumArtifactBytes: z3.number().int().positive()
|
|
378
436
|
}).strict(),
|
|
379
437
|
checkedAt: TimestampSchema,
|
|
380
438
|
expiresAt: TimestampSchema
|
|
@@ -465,12 +523,12 @@ function createTrainingClient(input) {
|
|
|
465
523
|
parameters.set("modelProjectId", IdSchema.parse(options.modelProjectId));
|
|
466
524
|
}
|
|
467
525
|
if (options.cursor) {
|
|
468
|
-
parameters.set("cursor",
|
|
526
|
+
parameters.set("cursor", z3.string().trim().min(1).max(2e3).parse(options.cursor));
|
|
469
527
|
}
|
|
470
528
|
if (options.limit !== void 0) {
|
|
471
529
|
parameters.set(
|
|
472
530
|
"limit",
|
|
473
|
-
String(
|
|
531
|
+
String(z3.number().int().min(1).max(1e3).parse(options.limit))
|
|
474
532
|
);
|
|
475
533
|
}
|
|
476
534
|
const query = parameters.size > 0 ? `?${parameters.toString()}` : "";
|
|
@@ -511,7 +569,7 @@ function createTrainingClient(input) {
|
|
|
511
569
|
);
|
|
512
570
|
},
|
|
513
571
|
async events(jobId) {
|
|
514
|
-
return
|
|
572
|
+
return z3.array(TrainingJobEventSchema).parse(
|
|
515
573
|
unwrapObject(
|
|
516
574
|
await request(
|
|
517
575
|
`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`
|
|
@@ -528,7 +586,7 @@ function createTrainingClient(input) {
|
|
|
528
586
|
);
|
|
529
587
|
},
|
|
530
588
|
async logs(jobId) {
|
|
531
|
-
return
|
|
589
|
+
return z3.array(TrainingJobLogSchema).max(1e5).parse(
|
|
532
590
|
unwrapObject(
|
|
533
591
|
await request(
|
|
534
592
|
`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`
|
|
@@ -566,6 +624,10 @@ function trainingApiError(value, status) {
|
|
|
566
624
|
|
|
567
625
|
export {
|
|
568
626
|
deterministicTrainingRewardSource,
|
|
627
|
+
TRAINING_EVALUATION_SOURCE_PATH,
|
|
628
|
+
TrainingEvaluationSourceSchema,
|
|
629
|
+
assertTrainingEvaluationIsolation,
|
|
630
|
+
trainingEvaluationSourceRef,
|
|
569
631
|
TrainingInputArtifactUploadSchema,
|
|
570
632
|
TrainingInputArtifactSchema,
|
|
571
633
|
trainingInputArtifactUploadHash,
|
|
@@ -596,4 +658,4 @@ export {
|
|
|
596
658
|
TrainingCapabilitiesSchema,
|
|
597
659
|
createTrainingClient
|
|
598
660
|
};
|
|
599
|
-
//# sourceMappingURL=chunk-
|
|
661
|
+
//# sourceMappingURL=chunk-OJERFIEJ.js.map
|