openpond-sdk 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MODEL_STARTERS.md +26 -0
- package/TRAINING_PROTOCOL.md +18 -0
- package/dist/{chunk-LLHE4BOD.js → chunk-25TBEGXB.js} +2 -2
- package/dist/{chunk-AZUCY3E5.js → chunk-6LGGLXAM.js} +3 -3
- package/dist/chunk-EPJM7VEV.js +177 -0
- package/dist/chunk-EPJM7VEV.js.map +7 -0
- package/dist/{chunk-IVEXCIHO.js → chunk-EV4PKJWN.js} +10 -10
- package/dist/{chunk-IVEXCIHO.js.map → chunk-EV4PKJWN.js.map} +1 -1
- package/dist/{chunk-ZPCK222K.js → chunk-NF63YMOL.js} +14 -7
- package/dist/{chunk-ZPCK222K.js.map → chunk-NF63YMOL.js.map} +2 -2
- package/dist/{chunk-AVW35YOH.js → chunk-ODTLCYUT.js} +151 -126
- package/dist/chunk-ODTLCYUT.js.map +7 -0
- package/dist/index.js +3 -3
- package/dist/learning.js +3 -3
- package/dist/model-starter-attempts.js +12 -162
- package/dist/model-starter-attempts.js.map +3 -3
- package/dist/model-taskset-runs.js +196 -0
- package/dist/model-taskset-runs.js.map +7 -0
- package/dist/refiner.js +1 -1
- package/dist/taskset-drafts.js +4 -4
- package/dist/taskset-packages.js +4 -4
- package/dist/training.js +3 -1
- package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +568 -0
- package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +722 -0
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-grading-plan.d.ts +21 -0
- package/dist/types/packages/sdk/src/training-grading-plan.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training.d.ts +1 -0
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/package.json +7 -3
- package/dist/chunk-AVW35YOH.js.map +0 -7
- /package/dist/{chunk-LLHE4BOD.js.map → chunk-25TBEGXB.js.map} +0 -0
- /package/dist/{chunk-AZUCY3E5.js.map → chunk-6LGGLXAM.js.map} +0 -0
|
@@ -14,25 +14,49 @@ import {
|
|
|
14
14
|
} from "./chunk-5PRP457R.js";
|
|
15
15
|
|
|
16
16
|
// src/training.ts
|
|
17
|
+
import { z as z2 } from "zod";
|
|
18
|
+
|
|
19
|
+
// src/training-grading-plan.ts
|
|
17
20
|
import { z } from "zod";
|
|
18
|
-
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
import { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema } from "@openpond/evals/rewards";
|
|
22
|
+
var GradersSchema = z.array(z.object({ id: z.string().trim().min(1) }).catchall(z.unknown())).min(1).max(1e3);
|
|
23
|
+
var RewardExecutionSchema = z.object({
|
|
24
|
+
binding: RewardBindingSchema,
|
|
25
|
+
rewards: z.array(RewardReleaseSchema).min(1).max(100)
|
|
26
|
+
}).strict();
|
|
27
|
+
async function deterministicTrainingRewardSource(input) {
|
|
28
|
+
const execution = input.rewardExecution ? RewardExecutionSchema.parse(input.rewardExecution) : null;
|
|
29
|
+
const graders = GradersSchema.parse(execution ? compileBoundGraders(execution.binding, execution.rewards) : input.graders);
|
|
30
|
+
if (new Set(graders.map((grader) => grader.id)).size !== graders.length) {
|
|
31
|
+
throw new Error("Training grader identities must be unique.");
|
|
32
|
+
}
|
|
33
|
+
const hash = await canonicalSha256({ schemaVersion: "openpond.trainingGraderSet.v1", graders });
|
|
34
|
+
return {
|
|
35
|
+
kind: "deterministic",
|
|
36
|
+
grader: { id: `training-graders-${hash.slice(0, 32)}`, contentHash: hash },
|
|
37
|
+
composer: execution ? { id: execution.binding.id, contentHash: execution.binding.contentHash } : null
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// src/training.ts
|
|
42
|
+
var IdSchema = z2.string().trim().min(1).max(500);
|
|
43
|
+
var HashSchema = z2.string().regex(/^[a-f0-9]{64}$/);
|
|
44
|
+
var TimestampSchema = z2.string().datetime({ offset: true });
|
|
45
|
+
var TrainingInputArtifactUploadSchema = z2.object({
|
|
46
|
+
schemaVersion: z2.literal("openpond.trainingInputArtifactUpload.v2"),
|
|
47
|
+
kind: z2.enum(["portable_training_bundle", "reward_model_dataset"]),
|
|
48
|
+
idempotencyKey: z2.string().trim().min(1).max(500),
|
|
25
49
|
sourceManifest: ModelProjectImmutableRefSchema,
|
|
26
|
-
payload:
|
|
50
|
+
payload: z2.unknown(),
|
|
27
51
|
contentHash: HashSchema
|
|
28
52
|
}).strict();
|
|
29
|
-
var TrainingInputArtifactSchema =
|
|
30
|
-
schemaVersion:
|
|
31
|
-
kind:
|
|
53
|
+
var TrainingInputArtifactSchema = z2.object({
|
|
54
|
+
schemaVersion: z2.literal("openpond.trainingInputArtifact.v2"),
|
|
55
|
+
kind: z2.enum(["portable_training_bundle", "reward_model_dataset"]),
|
|
32
56
|
sourceManifest: ModelProjectImmutableRefSchema,
|
|
33
|
-
artifactRef:
|
|
57
|
+
artifactRef: z2.string().trim().min(1).max(2e3),
|
|
34
58
|
contentHash: HashSchema,
|
|
35
|
-
sizeBytes:
|
|
59
|
+
sizeBytes: z2.number().int().positive(),
|
|
36
60
|
createdAt: TimestampSchema
|
|
37
61
|
}).strict();
|
|
38
62
|
async function trainingInputArtifactUploadHash(upload) {
|
|
@@ -55,11 +79,11 @@ async function parseAndVerifyTrainingInputArtifactUpload(value) {
|
|
|
55
79
|
}
|
|
56
80
|
return parsed;
|
|
57
81
|
}
|
|
58
|
-
var TrainingJobKindSchema =
|
|
82
|
+
var TrainingJobKindSchema = z2.enum([
|
|
59
83
|
"reward_model_train",
|
|
60
84
|
"policy_optimize"
|
|
61
85
|
]);
|
|
62
|
-
var TrainingJobStateSchema =
|
|
86
|
+
var TrainingJobStateSchema = z2.enum([
|
|
63
87
|
"queued",
|
|
64
88
|
"admitting",
|
|
65
89
|
"provisioning",
|
|
@@ -70,16 +94,16 @@ var TrainingJobStateSchema = z.enum([
|
|
|
70
94
|
"failed",
|
|
71
95
|
"cancelled"
|
|
72
96
|
]);
|
|
73
|
-
var TrainingCapabilityRequirementSchema =
|
|
97
|
+
var TrainingCapabilityRequirementSchema = z2.object({
|
|
74
98
|
id: IdSchema,
|
|
75
|
-
version:
|
|
76
|
-
required:
|
|
99
|
+
version: z2.string().trim().min(1).max(200).nullable().default(null),
|
|
100
|
+
required: z2.boolean().default(true)
|
|
77
101
|
}).strict();
|
|
78
|
-
var TrainingJobSourceSchema =
|
|
79
|
-
modelProject:
|
|
102
|
+
var TrainingJobSourceSchema = z2.object({
|
|
103
|
+
modelProject: z2.object({
|
|
80
104
|
id: IdSchema,
|
|
81
105
|
portableProjectId: IdSchema,
|
|
82
|
-
revision:
|
|
106
|
+
revision: z2.number().int().positive(),
|
|
83
107
|
contentHash: HashSchema
|
|
84
108
|
}).strict(),
|
|
85
109
|
harnessRunManifest: ModelProjectImmutableRefSchema,
|
|
@@ -87,70 +111,70 @@ var TrainingJobSourceSchema = z.object({
|
|
|
87
111
|
taskset: ModelProjectVersionedRefSchema,
|
|
88
112
|
tasksetRelease: ModelProjectImmutableRefSchema,
|
|
89
113
|
dataset: ModelProjectImmutableRefSchema,
|
|
90
|
-
evidenceSets:
|
|
114
|
+
evidenceSets: z2.array(ModelProjectImmutableRefSchema).max(1e4)
|
|
91
115
|
}).strict();
|
|
92
|
-
var RewardModelTrainingRequestSchema =
|
|
93
|
-
kind:
|
|
116
|
+
var RewardModelTrainingRequestSchema = z2.object({
|
|
117
|
+
kind: z2.literal("reward_model_train"),
|
|
94
118
|
baseModel: ModelProjectBaseModelSchema,
|
|
95
119
|
preferenceDatasetRelease: ModelProjectImmutableRefSchema,
|
|
96
120
|
processorRelease: ModelProjectImmutableRefSchema,
|
|
97
|
-
recipe:
|
|
98
|
-
schemaVersion:
|
|
99
|
-
method:
|
|
100
|
-
parameterization:
|
|
101
|
-
}).catchall(
|
|
121
|
+
recipe: z2.object({
|
|
122
|
+
schemaVersion: z2.literal("openpond.rewardModelRecipe.v1"),
|
|
123
|
+
method: z2.literal("reward_model"),
|
|
124
|
+
parameterization: z2.literal("lora_with_scalar_head")
|
|
125
|
+
}).catchall(z2.unknown())
|
|
102
126
|
}).strict();
|
|
103
|
-
var DeterministicRewardSourceSchema =
|
|
104
|
-
kind:
|
|
127
|
+
var DeterministicRewardSourceSchema = z2.object({
|
|
128
|
+
kind: z2.literal("deterministic"),
|
|
105
129
|
grader: ModelProjectImmutableRefSchema,
|
|
106
130
|
composer: ModelProjectImmutableRefSchema.nullable().default(null)
|
|
107
131
|
}).strict();
|
|
108
|
-
var LearnedRewardSourceSchema =
|
|
109
|
-
kind:
|
|
132
|
+
var LearnedRewardSourceSchema = z2.object({
|
|
133
|
+
kind: z2.literal("learned_reward"),
|
|
110
134
|
rewardModelVersion: ModelProjectImmutableRefSchema,
|
|
111
135
|
qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),
|
|
112
|
-
evaluationReferences:
|
|
113
|
-
scorerArtifact:
|
|
114
|
-
artifactRef:
|
|
136
|
+
evaluationReferences: z2.array(ModelProjectImmutableRefSchema).max(1e3).default([]),
|
|
137
|
+
scorerArtifact: z2.object({
|
|
138
|
+
artifactRef: z2.string().trim().min(1).max(2e3),
|
|
115
139
|
contentHash: HashSchema,
|
|
116
140
|
executionReceipt: ModelProjectImmutableRefSchema
|
|
117
141
|
}).strict(),
|
|
118
142
|
processorRelease: ModelProjectImmutableRefSchema,
|
|
119
143
|
rewardComposerRelease: ModelProjectImmutableRefSchema
|
|
120
144
|
}).strict();
|
|
121
|
-
var PolicyOptimizationRequestSchema =
|
|
122
|
-
kind:
|
|
145
|
+
var PolicyOptimizationRequestSchema = z2.object({
|
|
146
|
+
kind: z2.literal("policy_optimize"),
|
|
123
147
|
baseModel: ModelProjectBaseModelSchema,
|
|
124
148
|
recipe: ModelProjectRecipeDocumentSchema,
|
|
125
|
-
rewardSource:
|
|
149
|
+
rewardSource: z2.discriminatedUnion("kind", [
|
|
126
150
|
DeterministicRewardSourceSchema,
|
|
127
151
|
LearnedRewardSourceSchema
|
|
128
152
|
]),
|
|
129
153
|
resumeFrom: ModelProjectImmutableRefSchema.nullable().default(null)
|
|
130
154
|
}).strict();
|
|
131
|
-
var TrainingJobRequestSchema =
|
|
155
|
+
var TrainingJobRequestSchema = z2.discriminatedUnion("kind", [
|
|
132
156
|
RewardModelTrainingRequestSchema,
|
|
133
157
|
PolicyOptimizationRequestSchema
|
|
134
158
|
]);
|
|
135
|
-
var TrainingJobApprovalSchema =
|
|
159
|
+
var TrainingJobApprovalSchema = z2.object({
|
|
136
160
|
approvalHash: HashSchema,
|
|
137
161
|
approvedAt: TimestampSchema,
|
|
138
|
-
exportApproved:
|
|
139
|
-
maximumSpendUsd:
|
|
140
|
-
retentionDays:
|
|
141
|
-
region:
|
|
162
|
+
exportApproved: z2.boolean(),
|
|
163
|
+
maximumSpendUsd: z2.number().nonnegative(),
|
|
164
|
+
retentionDays: z2.number().int().nonnegative().nullable(),
|
|
165
|
+
region: z2.string().trim().min(1).max(200).nullable().default(null)
|
|
142
166
|
}).strict();
|
|
143
|
-
var TrainingJobSubmissionSchema =
|
|
144
|
-
schemaVersion:
|
|
145
|
-
idempotencyKey:
|
|
146
|
-
name:
|
|
167
|
+
var TrainingJobSubmissionSchema = z2.object({
|
|
168
|
+
schemaVersion: z2.literal("openpond.trainingJobSubmission.v2"),
|
|
169
|
+
idempotencyKey: z2.string().trim().min(1).max(500),
|
|
170
|
+
name: z2.string().trim().min(1).max(200),
|
|
147
171
|
source: TrainingJobSourceSchema,
|
|
148
172
|
job: TrainingJobRequestSchema,
|
|
149
|
-
requestedCapabilities:
|
|
150
|
-
placementObjective:
|
|
151
|
-
budget:
|
|
152
|
-
maximumSpendUsd:
|
|
153
|
-
maximumWallSeconds:
|
|
173
|
+
requestedCapabilities: z2.array(TrainingCapabilityRequirementSchema).max(1e3),
|
|
174
|
+
placementObjective: z2.enum(["fast", "balanced", "economical"]),
|
|
175
|
+
budget: z2.object({
|
|
176
|
+
maximumSpendUsd: z2.number().nonnegative(),
|
|
177
|
+
maximumWallSeconds: z2.number().int().positive()
|
|
154
178
|
}).strict(),
|
|
155
179
|
approval: TrainingJobApprovalSchema,
|
|
156
180
|
contentHash: HashSchema
|
|
@@ -183,61 +207,61 @@ async function parseAndVerifyTrainingJobSubmission(value) {
|
|
|
183
207
|
}
|
|
184
208
|
return parsed;
|
|
185
209
|
}
|
|
186
|
-
var TrainingJobSchema =
|
|
187
|
-
schemaVersion:
|
|
210
|
+
var TrainingJobSchema = z2.object({
|
|
211
|
+
schemaVersion: z2.literal("openpond.trainingJob.v2"),
|
|
188
212
|
id: IdSchema,
|
|
189
213
|
teamId: IdSchema,
|
|
190
214
|
kind: TrainingJobKindSchema,
|
|
191
215
|
modelProjectId: IdSchema,
|
|
192
216
|
portableProjectId: IdSchema,
|
|
193
|
-
sourceProjectRevision:
|
|
217
|
+
sourceProjectRevision: z2.number().int().positive(),
|
|
194
218
|
submissionHash: HashSchema,
|
|
195
219
|
state: TrainingJobStateSchema,
|
|
196
|
-
phase:
|
|
197
|
-
version:
|
|
198
|
-
progress:
|
|
199
|
-
rolloutProgress:
|
|
200
|
-
groupsCompleted:
|
|
201
|
-
groupsTarget:
|
|
202
|
-
optimizerUpdatesApplied:
|
|
203
|
-
optimizerUpdatesSkipped:
|
|
220
|
+
phase: z2.string().trim().min(1).max(200),
|
|
221
|
+
version: z2.number().int().nonnegative(),
|
|
222
|
+
progress: z2.number().min(0).max(1),
|
|
223
|
+
rolloutProgress: z2.object({
|
|
224
|
+
groupsCompleted: z2.number().int().nonnegative(),
|
|
225
|
+
groupsTarget: z2.number().int().nonnegative(),
|
|
226
|
+
optimizerUpdatesApplied: z2.number().int().nonnegative(),
|
|
227
|
+
optimizerUpdatesSkipped: z2.number().int().nonnegative()
|
|
204
228
|
}).strict(),
|
|
205
|
-
accruedSpendUsd:
|
|
206
|
-
terminalReason:
|
|
229
|
+
accruedSpendUsd: z2.number().nonnegative(),
|
|
230
|
+
terminalReason: z2.string().trim().min(1).max(5e3).nullable(),
|
|
207
231
|
createdAt: TimestampSchema,
|
|
208
232
|
updatedAt: TimestampSchema,
|
|
209
233
|
completedAt: TimestampSchema.nullable()
|
|
210
234
|
}).strict();
|
|
211
|
-
var TrainingJobPageSchema =
|
|
212
|
-
schemaVersion:
|
|
213
|
-
jobs:
|
|
214
|
-
nextCursor:
|
|
235
|
+
var TrainingJobPageSchema = z2.object({
|
|
236
|
+
schemaVersion: z2.literal("openpond.trainingJobPage.v2"),
|
|
237
|
+
jobs: z2.array(TrainingJobSchema).max(1e3),
|
|
238
|
+
nextCursor: z2.string().trim().min(1).max(2e3).nullable()
|
|
215
239
|
}).strict();
|
|
216
|
-
var TrainingJobEventSchema =
|
|
217
|
-
schemaVersion:
|
|
240
|
+
var TrainingJobEventSchema = z2.object({
|
|
241
|
+
schemaVersion: z2.literal("openpond.trainingJobEvent.v2"),
|
|
218
242
|
id: IdSchema,
|
|
219
243
|
jobId: IdSchema,
|
|
220
|
-
sequence:
|
|
244
|
+
sequence: z2.number().int().nonnegative(),
|
|
221
245
|
type: IdSchema,
|
|
222
|
-
phase:
|
|
223
|
-
message:
|
|
224
|
-
data:
|
|
246
|
+
phase: z2.string().trim().min(1).max(200),
|
|
247
|
+
message: z2.string().trim().min(1).max(5e3).nullable(),
|
|
248
|
+
data: z2.record(z2.string(), z2.unknown()).default({}),
|
|
225
249
|
createdAt: TimestampSchema
|
|
226
250
|
}).strict();
|
|
227
|
-
var TrainingJobLogSchema =
|
|
228
|
-
schemaVersion:
|
|
251
|
+
var TrainingJobLogSchema = z2.object({
|
|
252
|
+
schemaVersion: z2.literal("openpond.trainingJobLog.v2"),
|
|
229
253
|
jobId: IdSchema,
|
|
230
|
-
sequence:
|
|
231
|
-
level:
|
|
232
|
-
message:
|
|
254
|
+
sequence: z2.number().int().nonnegative(),
|
|
255
|
+
level: z2.enum(["debug", "info", "warning", "error"]),
|
|
256
|
+
message: z2.string().max(2e4),
|
|
233
257
|
createdAt: TimestampSchema
|
|
234
258
|
}).strict();
|
|
235
|
-
var TrainingJobControlRequestSchema =
|
|
236
|
-
var TrainingJobOutputSchema =
|
|
237
|
-
schemaVersion:
|
|
259
|
+
var TrainingJobControlRequestSchema = z2.object({ expectedVersion: z2.number().int().nonnegative() }).strict();
|
|
260
|
+
var TrainingJobOutputSchema = z2.object({
|
|
261
|
+
schemaVersion: z2.literal("openpond.trainingJobOutput.v2"),
|
|
238
262
|
id: IdSchema,
|
|
239
263
|
jobId: IdSchema,
|
|
240
|
-
kind:
|
|
264
|
+
kind: z2.enum([
|
|
241
265
|
"checkpoint",
|
|
242
266
|
"adapter",
|
|
243
267
|
"scorer",
|
|
@@ -246,14 +270,14 @@ var TrainingJobOutputSchema = z.object({
|
|
|
246
270
|
"trace",
|
|
247
271
|
"receipt"
|
|
248
272
|
]),
|
|
249
|
-
artifactRef:
|
|
273
|
+
artifactRef: z2.string().trim().min(1).max(2e3),
|
|
250
274
|
contentHash: HashSchema,
|
|
251
|
-
sizeBytes:
|
|
252
|
-
metadata:
|
|
275
|
+
sizeBytes: z2.number().int().nonnegative(),
|
|
276
|
+
metadata: z2.record(z2.string(), z2.unknown()).default({}),
|
|
253
277
|
createdAt: TimestampSchema
|
|
254
278
|
}).strict();
|
|
255
|
-
var TrainingExecutionReceiptSchema =
|
|
256
|
-
schemaVersion:
|
|
279
|
+
var TrainingExecutionReceiptSchema = z2.object({
|
|
280
|
+
schemaVersion: z2.literal("openpond.trainingExecutionReceipt.v2"),
|
|
257
281
|
id: IdSchema,
|
|
258
282
|
teamId: IdSchema,
|
|
259
283
|
jobId: IdSchema,
|
|
@@ -262,14 +286,14 @@ var TrainingExecutionReceiptSchema = z.object({
|
|
|
262
286
|
recipeHash: HashSchema,
|
|
263
287
|
capabilityHash: HashSchema,
|
|
264
288
|
runtimeRelease: ModelProjectImmutableRefSchema,
|
|
265
|
-
inputs:
|
|
266
|
-
outputs:
|
|
267
|
-
spendUsd:
|
|
268
|
-
durationSeconds:
|
|
269
|
-
cleanupComplete:
|
|
289
|
+
inputs: z2.array(ModelProjectImmutableRefSchema).max(1e4),
|
|
290
|
+
outputs: z2.array(ModelProjectImmutableRefSchema).max(1e4),
|
|
291
|
+
spendUsd: z2.number().nonnegative(),
|
|
292
|
+
durationSeconds: z2.number().nonnegative(),
|
|
293
|
+
cleanupComplete: z2.boolean(),
|
|
270
294
|
issuer: IdSchema,
|
|
271
295
|
issuedAt: TimestampSchema,
|
|
272
|
-
signature:
|
|
296
|
+
signature: z2.string().trim().min(1).max(1e4).nullable()
|
|
273
297
|
}).strict();
|
|
274
298
|
async function trainingExecutionReceiptHash(receipt) {
|
|
275
299
|
return canonicalSha256(TrainingExecutionReceiptSchema.parse(receipt));
|
|
@@ -305,18 +329,18 @@ async function parseAndVerifyTrainingExecutionReceipt(value, expected) {
|
|
|
305
329
|
}
|
|
306
330
|
return receipt;
|
|
307
331
|
}
|
|
308
|
-
var TrainingJobOutputsSchema =
|
|
309
|
-
schemaVersion:
|
|
310
|
-
outputs:
|
|
332
|
+
var TrainingJobOutputsSchema = z2.object({
|
|
333
|
+
schemaVersion: z2.literal("openpond.trainingJobOutputs.v2"),
|
|
334
|
+
outputs: z2.array(TrainingJobOutputSchema).max(1e4),
|
|
311
335
|
receipt: TrainingExecutionReceiptSchema.nullable()
|
|
312
336
|
}).strict();
|
|
313
|
-
var TrainingApiErrorSchema =
|
|
314
|
-
schemaVersion:
|
|
315
|
-
code:
|
|
316
|
-
message:
|
|
317
|
-
retryable:
|
|
318
|
-
requestId:
|
|
319
|
-
details:
|
|
337
|
+
var TrainingApiErrorSchema = z2.object({
|
|
338
|
+
schemaVersion: z2.literal("openpond.trainingApiError.v2"),
|
|
339
|
+
code: z2.string().trim().min(1).max(200),
|
|
340
|
+
message: z2.string().trim().min(1).max(5e3),
|
|
341
|
+
retryable: z2.boolean().default(false),
|
|
342
|
+
requestId: z2.string().trim().min(1).max(500).nullable().default(null),
|
|
343
|
+
details: z2.record(z2.string(), z2.unknown()).default({})
|
|
320
344
|
}).strict();
|
|
321
345
|
var OpenPondTrainingApiError = class extends Error {
|
|
322
346
|
status;
|
|
@@ -334,23 +358,23 @@ var OpenPondTrainingApiError = class extends Error {
|
|
|
334
358
|
this.details = error.details;
|
|
335
359
|
}
|
|
336
360
|
};
|
|
337
|
-
var TrainingCapabilitiesSchema =
|
|
338
|
-
schemaVersion:
|
|
361
|
+
var TrainingCapabilitiesSchema = z2.object({
|
|
362
|
+
schemaVersion: z2.literal("openpond.trainingCapabilities.v2"),
|
|
339
363
|
capabilityHash: HashSchema,
|
|
340
|
-
jobKinds:
|
|
341
|
-
methods:
|
|
342
|
-
placements:
|
|
343
|
-
|
|
364
|
+
jobKinds: z2.array(TrainingJobKindSchema),
|
|
365
|
+
methods: z2.array(z2.string().trim().min(1).max(200)),
|
|
366
|
+
placements: z2.array(
|
|
367
|
+
z2.enum(["local", "remote", "colocated", "provider_native"])
|
|
344
368
|
),
|
|
345
|
-
controls:
|
|
346
|
-
cancel:
|
|
347
|
-
stopAfterGroup:
|
|
348
|
-
resumeFromCheckpoint:
|
|
369
|
+
controls: z2.object({
|
|
370
|
+
cancel: z2.boolean(),
|
|
371
|
+
stopAfterGroup: z2.boolean(),
|
|
372
|
+
resumeFromCheckpoint: z2.boolean()
|
|
349
373
|
}).strict(),
|
|
350
|
-
limits:
|
|
351
|
-
maximumSpendUsd:
|
|
352
|
-
maximumWallSeconds:
|
|
353
|
-
maximumArtifactBytes:
|
|
374
|
+
limits: z2.object({
|
|
375
|
+
maximumSpendUsd: z2.number().nonnegative(),
|
|
376
|
+
maximumWallSeconds: z2.number().int().positive(),
|
|
377
|
+
maximumArtifactBytes: z2.number().int().positive()
|
|
354
378
|
}).strict(),
|
|
355
379
|
checkedAt: TimestampSchema,
|
|
356
380
|
expiresAt: TimestampSchema
|
|
@@ -441,12 +465,12 @@ function createTrainingClient(input) {
|
|
|
441
465
|
parameters.set("modelProjectId", IdSchema.parse(options.modelProjectId));
|
|
442
466
|
}
|
|
443
467
|
if (options.cursor) {
|
|
444
|
-
parameters.set("cursor",
|
|
468
|
+
parameters.set("cursor", z2.string().trim().min(1).max(2e3).parse(options.cursor));
|
|
445
469
|
}
|
|
446
470
|
if (options.limit !== void 0) {
|
|
447
471
|
parameters.set(
|
|
448
472
|
"limit",
|
|
449
|
-
String(
|
|
473
|
+
String(z2.number().int().min(1).max(1e3).parse(options.limit))
|
|
450
474
|
);
|
|
451
475
|
}
|
|
452
476
|
const query = parameters.size > 0 ? `?${parameters.toString()}` : "";
|
|
@@ -487,7 +511,7 @@ function createTrainingClient(input) {
|
|
|
487
511
|
);
|
|
488
512
|
},
|
|
489
513
|
async events(jobId) {
|
|
490
|
-
return
|
|
514
|
+
return z2.array(TrainingJobEventSchema).parse(
|
|
491
515
|
unwrapObject(
|
|
492
516
|
await request(
|
|
493
517
|
`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`
|
|
@@ -504,7 +528,7 @@ function createTrainingClient(input) {
|
|
|
504
528
|
);
|
|
505
529
|
},
|
|
506
530
|
async logs(jobId) {
|
|
507
|
-
return
|
|
531
|
+
return z2.array(TrainingJobLogSchema).max(1e5).parse(
|
|
508
532
|
unwrapObject(
|
|
509
533
|
await request(
|
|
510
534
|
`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`
|
|
@@ -541,6 +565,7 @@ function trainingApiError(value, status) {
|
|
|
541
565
|
}
|
|
542
566
|
|
|
543
567
|
export {
|
|
568
|
+
deterministicTrainingRewardSource,
|
|
544
569
|
TrainingInputArtifactUploadSchema,
|
|
545
570
|
TrainingInputArtifactSchema,
|
|
546
571
|
trainingInputArtifactUploadHash,
|
|
@@ -571,4 +596,4 @@ export {
|
|
|
571
596
|
TrainingCapabilitiesSchema,
|
|
572
597
|
createTrainingClient
|
|
573
598
|
};
|
|
574
|
-
//# sourceMappingURL=chunk-
|
|
599
|
+
//# sourceMappingURL=chunk-ODTLCYUT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/training.ts", "../src/training-grading-plan.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\n\nexport { deterministicTrainingRewardSource } from \"./training-grading-plan.js\";\n\nimport {\n ModelProjectBaseModelSchema,\n ModelProjectImmutableRefSchema,\n ModelProjectRecipeDocumentSchema,\n ModelProjectVersionedRefSchema,\n} from \"./model-projects.js\";\nimport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nexport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n OPENPOND_TRAINING_PROTOCOL_MAJOR,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalJson,\n canonicalJsonByteLength,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\n/**\n * Stages a content-addressed immutable input before Job admission. The payload\n * is deliberately opaque to the transport contract: its declared kind owns\n * the executable schema, while the envelope provides bounded bytes,\n * idempotency, and a stable manifest lookup key.\n */\nexport const TrainingInputArtifactUploadSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifactUpload.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n idempotencyKey: z.string().trim().min(1).max(500),\n sourceManifest: ModelProjectImmutableRefSchema,\n payload: z.unknown(),\n contentHash: HashSchema,\n })\n .strict();\n\nexport const TrainingInputArtifactSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifact.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n sourceManifest: ModelProjectImmutableRefSchema,\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().positive(),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport async function trainingInputArtifactUploadHash(\n upload: Omit<TrainingInputArtifactUpload, \"contentHash\"> | TrainingInputArtifactUpload,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = upload as TrainingInputArtifactUpload;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingInputArtifactUpload(\n value: unknown,\n): Promise<TrainingInputArtifactUpload> {\n assertCanonicalPayloadSize(\n value,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n \"Training input artifact\",\n );\n const parsed = TrainingInputArtifactUploadSchema.parse(value);\n const expectedHash = await trainingInputArtifactUploadHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training input artifact contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobKindSchema = z.enum([\n \"reward_model_train\",\n \"policy_optimize\",\n]);\n\nexport const TrainingJobStateSchema = z.enum([\n \"queued\",\n \"admitting\",\n \"provisioning\",\n \"running\",\n \"stopping\",\n \"cancelling\",\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n]);\n\nexport const TrainingCapabilityRequirementSchema = z\n .object({\n id: IdSchema,\n version: z.string().trim().min(1).max(200).nullable().default(null),\n required: z.boolean().default(true),\n })\n .strict();\n\nexport const TrainingJobSourceSchema = z\n .object({\n modelProject: z\n .object({\n id: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n contentHash: HashSchema,\n })\n .strict(),\n harnessRunManifest: ModelProjectImmutableRefSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n taskset: ModelProjectVersionedRefSchema,\n tasksetRelease: ModelProjectImmutableRefSchema,\n dataset: ModelProjectImmutableRefSchema,\n evidenceSets: z.array(ModelProjectImmutableRefSchema).max(10_000),\n })\n .strict();\n\nexport const RewardModelTrainingRequestSchema = z\n .object({\n kind: z.literal(\"reward_model_train\"),\n baseModel: ModelProjectBaseModelSchema,\n preferenceDatasetRelease: ModelProjectImmutableRefSchema,\n processorRelease: ModelProjectImmutableRefSchema,\n recipe: z\n .object({\n schemaVersion: z.literal(\"openpond.rewardModelRecipe.v1\"),\n method: z.literal(\"reward_model\"),\n parameterization: z.literal(\"lora_with_scalar_head\"),\n })\n .catchall(z.unknown()),\n })\n .strict();\n\nconst DeterministicRewardSourceSchema = z\n .object({\n kind: z.literal(\"deterministic\"),\n grader: ModelProjectImmutableRefSchema,\n composer: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict();\n\nconst LearnedRewardSourceSchema = z\n .object({\n kind: z.literal(\"learned_reward\"),\n rewardModelVersion: ModelProjectImmutableRefSchema,\n qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),\n evaluationReferences: z\n .array(ModelProjectImmutableRefSchema)\n .max(1_000)\n .default([]),\n scorerArtifact: z\n .object({\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n })\n .strict(),\n processorRelease: ModelProjectImmutableRefSchema,\n rewardComposerRelease: ModelProjectImmutableRefSchema,\n })\n .strict();\n\nexport const PolicyOptimizationRequestSchema = z\n .object({\n kind: z.literal(\"policy_optimize\"),\n baseModel: ModelProjectBaseModelSchema,\n recipe: ModelProjectRecipeDocumentSchema,\n rewardSource: z.discriminatedUnion(\"kind\", [\n DeterministicRewardSourceSchema,\n LearnedRewardSourceSchema,\n ]),\n resumeFrom: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict();\n\nexport const TrainingJobRequestSchema = z.discriminatedUnion(\"kind\", [\n RewardModelTrainingRequestSchema,\n PolicyOptimizationRequestSchema,\n]);\n\nexport const TrainingJobApprovalSchema = z\n .object({\n approvalHash: HashSchema,\n approvedAt: TimestampSchema,\n exportApproved: z.boolean(),\n maximumSpendUsd: z.number().nonnegative(),\n retentionDays: z.number().int().nonnegative().nullable(),\n region: z.string().trim().min(1).max(200).nullable().default(null),\n })\n .strict();\n\nexport const TrainingJobSubmissionSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobSubmission.v2\"),\n idempotencyKey: z.string().trim().min(1).max(500),\n name: z.string().trim().min(1).max(200),\n source: TrainingJobSourceSchema,\n job: TrainingJobRequestSchema,\n requestedCapabilities: z\n .array(TrainingCapabilityRequirementSchema)\n .max(1_000),\n placementObjective: z.enum([\"fast\", \"balanced\", \"economical\"]),\n budget: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n })\n .strict(),\n approval: TrainingJobApprovalSchema,\n contentHash: HashSchema,\n })\n .strict()\n .superRefine((submission, context) => {\n if (submission.approval.maximumSpendUsd !== submission.budget.maximumSpendUsd) {\n context.addIssue({\n code: \"custom\",\n path: [\"approval\", \"maximumSpendUsd\"],\n message: \"Approved spend must equal the immutable Job budget.\",\n });\n }\n });\n\nexport async function trainingJobSubmissionHash(\n submission: Omit<TrainingJobSubmission, \"contentHash\"> | TrainingJobSubmission,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = submission as TrainingJobSubmission;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingJobSubmission(\n value: unknown,\n): Promise<TrainingJobSubmission> {\n assertCanonicalPayloadSize(\n value,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n \"Training Job submission\",\n );\n const parsed = TrainingJobSubmissionSchema.parse(value);\n const expectedHash = await trainingJobSubmissionHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training Job contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJob.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n kind: TrainingJobKindSchema,\n modelProjectId: IdSchema,\n portableProjectId: IdSchema,\n sourceProjectRevision: z.number().int().positive(),\n submissionHash: HashSchema,\n state: TrainingJobStateSchema,\n phase: z.string().trim().min(1).max(200),\n version: z.number().int().nonnegative(),\n progress: z.number().min(0).max(1),\n rolloutProgress: z\n .object({\n groupsCompleted: z.number().int().nonnegative(),\n groupsTarget: z.number().int().nonnegative(),\n optimizerUpdatesApplied: z.number().int().nonnegative(),\n optimizerUpdatesSkipped: z.number().int().nonnegative(),\n })\n .strict(),\n accruedSpendUsd: z.number().nonnegative(),\n terminalReason: z.string().trim().min(1).max(5_000).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n completedAt: TimestampSchema.nullable(),\n })\n .strict();\n\nexport const TrainingJobPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobPage.v2\"),\n jobs: z.array(TrainingJobSchema).max(1_000),\n nextCursor: z.string().trim().min(1).max(2_000).nullable(),\n })\n .strict();\n\nexport const TrainingJobEventSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobEvent.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n type: IdSchema,\n phase: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000).nullable(),\n data: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobLogSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobLog.v2\"),\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n level: z.enum([\"debug\", \"info\", \"warning\", \"error\"]),\n message: z.string().max(20_000),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobControlRequestSchema = z\n .object({ expectedVersion: z.number().int().nonnegative() })\n .strict();\n\nexport const TrainingJobOutputSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutput.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n kind: z.enum([\n \"checkpoint\",\n \"adapter\",\n \"scorer\",\n \"metrics\",\n \"evaluation\",\n \"trace\",\n \"receipt\",\n ]),\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().nonnegative(),\n metadata: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingExecutionReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionReceipt.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n jobId: IdSchema,\n submissionHash: HashSchema,\n manifestHash: HashSchema,\n recipeHash: HashSchema,\n capabilityHash: HashSchema,\n runtimeRelease: ModelProjectImmutableRefSchema,\n inputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n outputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n spendUsd: z.number().nonnegative(),\n durationSeconds: z.number().nonnegative(),\n cleanupComplete: z.boolean(),\n issuer: IdSchema,\n issuedAt: TimestampSchema,\n signature: z.string().trim().min(1).max(10_000).nullable(),\n })\n .strict();\n\nexport async function trainingExecutionReceiptHash(\n receipt: TrainingExecutionReceipt,\n): Promise<string> {\n return canonicalSha256(TrainingExecutionReceiptSchema.parse(receipt));\n}\n\nexport async function parseAndVerifyTrainingExecutionReceipt(\n value: unknown,\n expected: {\n id: string;\n contentHash: string;\n teamId?: string;\n jobId?: string;\n requireCleanup?: boolean;\n },\n): Promise<TrainingExecutionReceipt> {\n const receipt = TrainingExecutionReceiptSchema.parse(value);\n const expectedId = IdSchema.parse(expected.id);\n const expectedHash = HashSchema.parse(expected.contentHash);\n const actualHash = await trainingExecutionReceiptHash(receipt);\n if (receipt.id !== expectedId || actualHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"execution_receipt_mismatch\",\n \"The execution receipt identity or canonical content hash did not match.\",\n );\n }\n if (expected.teamId !== undefined && receipt.teamId !== IdSchema.parse(expected.teamId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_team_mismatch\",\n \"The execution receipt belongs to a different team.\",\n );\n }\n if (expected.jobId !== undefined && receipt.jobId !== IdSchema.parse(expected.jobId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_job_mismatch\",\n \"The execution receipt belongs to a different Training Job.\",\n );\n }\n if ((expected.requireCleanup ?? true) && !receipt.cleanupComplete) {\n throw new OpenPondProtocolError(\n \"execution_cleanup_incomplete\",\n \"The execution receipt does not attest complete terminal cleanup.\",\n );\n }\n return receipt;\n}\n\nexport const TrainingJobOutputsSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutputs.v2\"),\n outputs: z.array(TrainingJobOutputSchema).max(10_000),\n receipt: TrainingExecutionReceiptSchema.nullable(),\n })\n .strict();\n\nexport const TrainingApiErrorSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingApiError.v2\"),\n code: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000),\n retryable: z.boolean().default(false),\n requestId: z.string().trim().min(1).max(500).nullable().default(null),\n details: z.record(z.string(), z.unknown()).default({}),\n })\n .strict();\n\nexport class OpenPondTrainingApiError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly requestId: string | null;\n readonly details: Record<string, unknown>;\n\n constructor(status: number, error: z.infer<typeof TrainingApiErrorSchema>) {\n super(error.message);\n this.name = \"OpenPondTrainingApiError\";\n this.status = status;\n this.code = error.code;\n this.retryable = error.retryable;\n this.requestId = error.requestId;\n this.details = error.details;\n }\n}\n\nexport const TrainingCapabilitiesSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingCapabilities.v2\"),\n capabilityHash: HashSchema,\n jobKinds: z.array(TrainingJobKindSchema),\n methods: z.array(z.string().trim().min(1).max(200)),\n placements: z.array(\n z.enum([\"local\", \"remote\", \"colocated\", \"provider_native\"]),\n ),\n controls: z\n .object({\n cancel: z.boolean(),\n stopAfterGroup: z.boolean(),\n resumeFromCheckpoint: z.boolean(),\n })\n .strict(),\n limits: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n maximumArtifactBytes: z.number().int().positive(),\n })\n .strict(),\n checkedAt: TimestampSchema,\n expiresAt: TimestampSchema,\n })\n .strict();\n\nexport type TrainingJobSubmission = z.infer<\n typeof TrainingJobSubmissionSchema\n>;\nexport type TrainingInputArtifactUpload = z.infer<\n typeof TrainingInputArtifactUploadSchema\n>;\nexport type TrainingInputArtifact = z.infer<typeof TrainingInputArtifactSchema>;\nexport type TrainingJob = z.infer<typeof TrainingJobSchema>;\nexport type TrainingJobPage = z.infer<typeof TrainingJobPageSchema>;\nexport type TrainingJobEvent = z.infer<typeof TrainingJobEventSchema>;\nexport type TrainingJobLog = z.infer<typeof TrainingJobLogSchema>;\nexport type TrainingJobOutput = z.infer<typeof TrainingJobOutputSchema>;\nexport type TrainingJobOutputs = z.infer<typeof TrainingJobOutputsSchema>;\nexport type TrainingExecutionReceipt = z.infer<\n typeof TrainingExecutionReceiptSchema\n>;\nexport type TrainingCapabilities = z.infer<typeof TrainingCapabilitiesSchema>;\n\nfunction headersRecord(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n new Headers(headers).forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\n\nexport function createTrainingClient(input: {\n baseUrl: string;\n fetch?: typeof fetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const fetchImpl = input.fetch ?? fetch;\n const baseUrl = input.baseUrl.replace(/\\/$/, \"\");\n\n async function request(pathname: string, init?: RequestInit): Promise<unknown> {\n const readOnly = init?.method === undefined || init.method.toUpperCase() === \"GET\";\n const maximumAttempts = readOnly ? 3 : 1;\n for (let attempt = 1; attempt <= maximumAttempts; attempt += 1) {\n let response: Response;\n try {\n const configuredHeaders =\n typeof input.headers === \"function\"\n ? await input.headers()\n : (input.headers ?? {});\n response = await fetchImpl(`${baseUrl}${pathname}`, {\n ...init,\n headers: {\n accept: OPENPOND_TRAINING_MEDIA_TYPE,\n ...(init?.body ? { \"content-type\": OPENPOND_TRAINING_MEDIA_TYPE } : {}),\n ...headersRecord(configuredHeaders),\n ...headersRecord(init?.headers),\n },\n });\n } catch (error) {\n if (\n attempt === maximumAttempts ||\n init?.signal?.aborted ||\n !trainingReadFailureIsRetryable(null, error)\n ) {\n throw error;\n }\n await new Promise((resolve) => setTimeout(resolve, 250 * 2 ** (attempt - 1)));\n continue;\n }\n const body = parseBoundedJson(\n await response.text(),\n TRAINING_API_RESPONSE_MAX_BYTES,\n \"Training API response\",\n );\n if (response.ok) return body;\n const error = trainingApiError(body, response.status);\n if (\n attempt === maximumAttempts ||\n !trainingReadFailureIsRetryable(response.status, error)\n ) {\n throw error;\n }\n await new Promise((resolve) => setTimeout(resolve, 250 * 2 ** (attempt - 1)));\n }\n throw new OpenPondProtocolError(\n \"training_read_retry_exhausted\",\n \"Training read retry loop exhausted without a response.\",\n );\n }\n\n return {\n async capabilities() {\n return TrainingCapabilitiesSchema.parse(\n unwrapObject(await request(\"/v1/training/capabilities\"), \"capabilities\"),\n );\n },\n async stageArtifact(upload: TrainingInputArtifactUpload) {\n const parsed = await parseAndVerifyTrainingInputArtifactUpload(upload);\n return TrainingInputArtifactSchema.parse(\n unwrapObject(\n await request(\"/v1/training/artifacts\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"artifact\",\n ),\n );\n },\n async createJob(submission: TrainingJobSubmission) {\n const parsed = await parseAndVerifyTrainingJobSubmission(submission);\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\"/v1/training/jobs\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"job\",\n ),\n );\n },\n async listJobs(options: {\n modelProjectId?: string;\n cursor?: string;\n limit?: number;\n } = {}) {\n const parameters = new URLSearchParams();\n if (options.modelProjectId) {\n parameters.set(\"modelProjectId\", IdSchema.parse(options.modelProjectId));\n }\n if (options.cursor) {\n parameters.set(\"cursor\", z.string().trim().min(1).max(2_000).parse(options.cursor));\n }\n if (options.limit !== undefined) {\n parameters.set(\n \"limit\",\n String(z.number().int().min(1).max(1_000).parse(options.limit)),\n );\n }\n const query = parameters.size > 0 ? `?${parameters.toString()}` : \"\";\n return TrainingJobPageSchema.parse(\n await request(`/v1/training/jobs${query}`),\n );\n },\n async getJob(jobId: string) {\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}`),\n \"job\",\n ),\n );\n },\n async cancelJob(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/cancel`,\n { method: \"POST\", body: JSON.stringify(control) },\n ),\n \"job\",\n ),\n );\n },\n async stopAfterGroup(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/stop-after-group`,\n { method: \"POST\", body: JSON.stringify(control) },\n ),\n \"job\",\n ),\n );\n },\n async events(jobId: string) {\n return z\n .array(TrainingJobEventSchema)\n .parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`,\n ),\n \"events\",\n ),\n );\n },\n async outputs(jobId: string) {\n return TrainingJobOutputsSchema.parse(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/outputs`,\n ),\n );\n },\n async logs(jobId: string) {\n return z.array(TrainingJobLogSchema).max(100_000).parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`,\n ),\n \"logs\",\n ),\n );\n },\n };\n}\n\nfunction trainingReadFailureIsRetryable(status: number | null, error: unknown): boolean {\n if (status !== null) {\n return status === 408 || status === 429 || status >= 500;\n }\n if (error instanceof OpenPondTrainingApiError) return error.retryable;\n if (error instanceof OpenPondProtocolError) {\n return error.code === \"invalid_error_response\";\n }\n return error instanceof TypeError;\n}\n\nfunction unwrapObject(value: unknown, key: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n return key in value ? (value as Record<string, unknown>)[key] : value;\n}\n\nfunction trainingApiError(value: unknown, status: number): Error {\n const parsed = TrainingApiErrorSchema.safeParse(value);\n if (parsed.success) {\n return new OpenPondTrainingApiError(status, parsed.data);\n }\n return new OpenPondProtocolError(\n \"invalid_error_response\",\n `Training request failed with HTTP ${status} and an invalid error envelope.`,\n );\n}\n", "import { z } from \"zod\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema } from \"@openpond/evals/rewards\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nconst GradersSchema = z.array(z.object({ id: z.string().trim().min(1) }).catchall(z.unknown())).min(1).max(1_000);\nconst RewardExecutionSchema = z.object({\n binding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n}).strict();\n\n/**\n * The grader reference identifies the entire executed set, including order and\n * configuration. A bound plan additionally identifies its immutable composer,\n * whose sources pin roles, normalization, gates and required-score semantics.\n * Callers must obtain these inputs from their verified immutable bundle.\n */\nexport async function deterministicTrainingRewardSource(input: {\n graders: unknown;\n rewardExecution?: unknown;\n}) {\n const execution = input.rewardExecution ? RewardExecutionSchema.parse(input.rewardExecution) : null;\n const graders = GradersSchema.parse(execution\n ? compileBoundGraders(execution.binding, execution.rewards)\n : input.graders);\n if (new Set(graders.map(grader => grader.id)).size !== graders.length) {\n throw new Error(\"Training grader identities must be unique.\");\n }\n const hash = await canonicalSha256({ schemaVersion: \"openpond.trainingGraderSet.v1\", graders });\n return {\n kind: \"deterministic\" as const,\n grader: { id: `training-graders-${hash.slice(0, 32)}`, contentHash: hash },\n composer: execution ? { id: execution.binding.id, contentHash: execution.binding.contentHash } : null,\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "z", "error"]
|
|
7
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OpenPondLearningClient,
|
|
3
3
|
OpenPondLearningError
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-25TBEGXB.js";
|
|
5
|
+
import "./chunk-EV4PKJWN.js";
|
|
6
6
|
import {
|
|
7
7
|
OpenPondProjectActionsClient
|
|
8
8
|
} from "./chunk-27ETSPHQ.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
defineReviewProfile,
|
|
31
31
|
refinerProfilePrompt,
|
|
32
32
|
serializeReviewProfile
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-NF63YMOL.js";
|
|
34
34
|
|
|
35
35
|
// ../cloud/dist/sandbox/client-handles.js
|
|
36
36
|
function createSandboxRuntimeNamespace(client) {
|
package/dist/learning.js
CHANGED
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
OpenPondLearningError,
|
|
13
13
|
assertLearningCredentialExpiry,
|
|
14
14
|
createSourceCredentialRequest
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-25TBEGXB.js";
|
|
16
|
+
import "./chunk-EV4PKJWN.js";
|
|
17
|
+
import "./chunk-NF63YMOL.js";
|
|
18
18
|
|
|
19
19
|
// src/learning.ts
|
|
20
20
|
export * from "@openpond/evals/learning";
|