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.
Files changed (34) hide show
  1. package/MODEL_STARTERS.md +26 -0
  2. package/TRAINING_PROTOCOL.md +18 -0
  3. package/dist/{chunk-LLHE4BOD.js → chunk-25TBEGXB.js} +2 -2
  4. package/dist/{chunk-AZUCY3E5.js → chunk-6LGGLXAM.js} +3 -3
  5. package/dist/chunk-EPJM7VEV.js +177 -0
  6. package/dist/chunk-EPJM7VEV.js.map +7 -0
  7. package/dist/{chunk-IVEXCIHO.js → chunk-EV4PKJWN.js} +10 -10
  8. package/dist/{chunk-IVEXCIHO.js.map → chunk-EV4PKJWN.js.map} +1 -1
  9. package/dist/{chunk-ZPCK222K.js → chunk-NF63YMOL.js} +14 -7
  10. package/dist/{chunk-ZPCK222K.js.map → chunk-NF63YMOL.js.map} +2 -2
  11. package/dist/{chunk-AVW35YOH.js → chunk-ODTLCYUT.js} +151 -126
  12. package/dist/chunk-ODTLCYUT.js.map +7 -0
  13. package/dist/index.js +3 -3
  14. package/dist/learning.js +3 -3
  15. package/dist/model-starter-attempts.js +12 -162
  16. package/dist/model-starter-attempts.js.map +3 -3
  17. package/dist/model-taskset-runs.js +196 -0
  18. package/dist/model-taskset-runs.js.map +7 -0
  19. package/dist/refiner.js +1 -1
  20. package/dist/taskset-drafts.js +4 -4
  21. package/dist/taskset-packages.js +4 -4
  22. package/dist/training.js +3 -1
  23. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +568 -0
  24. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -0
  25. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +722 -0
  26. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -0
  27. package/dist/types/packages/sdk/src/training-grading-plan.d.ts +21 -0
  28. package/dist/types/packages/sdk/src/training-grading-plan.d.ts.map +1 -0
  29. package/dist/types/packages/sdk/src/training.d.ts +1 -0
  30. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  31. package/package.json +7 -3
  32. package/dist/chunk-AVW35YOH.js.map +0 -7
  33. /package/dist/{chunk-LLHE4BOD.js.map → chunk-25TBEGXB.js.map} +0 -0
  34. /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
- var IdSchema = z.string().trim().min(1).max(500);
19
- var HashSchema = z.string().regex(/^[a-f0-9]{64}$/);
20
- var TimestampSchema = z.string().datetime({ offset: true });
21
- var TrainingInputArtifactUploadSchema = z.object({
22
- schemaVersion: z.literal("openpond.trainingInputArtifactUpload.v2"),
23
- kind: z.enum(["portable_training_bundle", "reward_model_dataset"]),
24
- idempotencyKey: z.string().trim().min(1).max(500),
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: z.unknown(),
50
+ payload: z2.unknown(),
27
51
  contentHash: HashSchema
28
52
  }).strict();
29
- var TrainingInputArtifactSchema = z.object({
30
- schemaVersion: z.literal("openpond.trainingInputArtifact.v2"),
31
- kind: z.enum(["portable_training_bundle", "reward_model_dataset"]),
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: z.string().trim().min(1).max(2e3),
57
+ artifactRef: z2.string().trim().min(1).max(2e3),
34
58
  contentHash: HashSchema,
35
- sizeBytes: z.number().int().positive(),
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 = z.enum([
82
+ var TrainingJobKindSchema = z2.enum([
59
83
  "reward_model_train",
60
84
  "policy_optimize"
61
85
  ]);
62
- var TrainingJobStateSchema = z.enum([
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 = z.object({
97
+ var TrainingCapabilityRequirementSchema = z2.object({
74
98
  id: IdSchema,
75
- version: z.string().trim().min(1).max(200).nullable().default(null),
76
- required: z.boolean().default(true)
99
+ version: z2.string().trim().min(1).max(200).nullable().default(null),
100
+ required: z2.boolean().default(true)
77
101
  }).strict();
78
- var TrainingJobSourceSchema = z.object({
79
- modelProject: z.object({
102
+ var TrainingJobSourceSchema = z2.object({
103
+ modelProject: z2.object({
80
104
  id: IdSchema,
81
105
  portableProjectId: IdSchema,
82
- revision: z.number().int().positive(),
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: z.array(ModelProjectImmutableRefSchema).max(1e4)
114
+ evidenceSets: z2.array(ModelProjectImmutableRefSchema).max(1e4)
91
115
  }).strict();
92
- var RewardModelTrainingRequestSchema = z.object({
93
- kind: z.literal("reward_model_train"),
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: z.object({
98
- schemaVersion: z.literal("openpond.rewardModelRecipe.v1"),
99
- method: z.literal("reward_model"),
100
- parameterization: z.literal("lora_with_scalar_head")
101
- }).catchall(z.unknown())
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 = z.object({
104
- kind: z.literal("deterministic"),
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 = z.object({
109
- kind: z.literal("learned_reward"),
132
+ var LearnedRewardSourceSchema = z2.object({
133
+ kind: z2.literal("learned_reward"),
110
134
  rewardModelVersion: ModelProjectImmutableRefSchema,
111
135
  qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),
112
- evaluationReferences: z.array(ModelProjectImmutableRefSchema).max(1e3).default([]),
113
- scorerArtifact: z.object({
114
- artifactRef: z.string().trim().min(1).max(2e3),
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 = z.object({
122
- kind: z.literal("policy_optimize"),
145
+ var PolicyOptimizationRequestSchema = z2.object({
146
+ kind: z2.literal("policy_optimize"),
123
147
  baseModel: ModelProjectBaseModelSchema,
124
148
  recipe: ModelProjectRecipeDocumentSchema,
125
- rewardSource: z.discriminatedUnion("kind", [
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 = z.discriminatedUnion("kind", [
155
+ var TrainingJobRequestSchema = z2.discriminatedUnion("kind", [
132
156
  RewardModelTrainingRequestSchema,
133
157
  PolicyOptimizationRequestSchema
134
158
  ]);
135
- var TrainingJobApprovalSchema = z.object({
159
+ var TrainingJobApprovalSchema = z2.object({
136
160
  approvalHash: HashSchema,
137
161
  approvedAt: TimestampSchema,
138
- exportApproved: z.boolean(),
139
- maximumSpendUsd: z.number().nonnegative(),
140
- retentionDays: z.number().int().nonnegative().nullable(),
141
- region: z.string().trim().min(1).max(200).nullable().default(null)
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 = z.object({
144
- schemaVersion: z.literal("openpond.trainingJobSubmission.v2"),
145
- idempotencyKey: z.string().trim().min(1).max(500),
146
- name: z.string().trim().min(1).max(200),
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: z.array(TrainingCapabilityRequirementSchema).max(1e3),
150
- placementObjective: z.enum(["fast", "balanced", "economical"]),
151
- budget: z.object({
152
- maximumSpendUsd: z.number().nonnegative(),
153
- maximumWallSeconds: z.number().int().positive()
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 = z.object({
187
- schemaVersion: z.literal("openpond.trainingJob.v2"),
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: z.number().int().positive(),
217
+ sourceProjectRevision: z2.number().int().positive(),
194
218
  submissionHash: HashSchema,
195
219
  state: TrainingJobStateSchema,
196
- phase: z.string().trim().min(1).max(200),
197
- version: z.number().int().nonnegative(),
198
- progress: z.number().min(0).max(1),
199
- rolloutProgress: z.object({
200
- groupsCompleted: z.number().int().nonnegative(),
201
- groupsTarget: z.number().int().nonnegative(),
202
- optimizerUpdatesApplied: z.number().int().nonnegative(),
203
- optimizerUpdatesSkipped: z.number().int().nonnegative()
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: z.number().nonnegative(),
206
- terminalReason: z.string().trim().min(1).max(5e3).nullable(),
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 = z.object({
212
- schemaVersion: z.literal("openpond.trainingJobPage.v2"),
213
- jobs: z.array(TrainingJobSchema).max(1e3),
214
- nextCursor: z.string().trim().min(1).max(2e3).nullable()
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 = z.object({
217
- schemaVersion: z.literal("openpond.trainingJobEvent.v2"),
240
+ var TrainingJobEventSchema = z2.object({
241
+ schemaVersion: z2.literal("openpond.trainingJobEvent.v2"),
218
242
  id: IdSchema,
219
243
  jobId: IdSchema,
220
- sequence: z.number().int().nonnegative(),
244
+ sequence: z2.number().int().nonnegative(),
221
245
  type: IdSchema,
222
- phase: z.string().trim().min(1).max(200),
223
- message: z.string().trim().min(1).max(5e3).nullable(),
224
- data: z.record(z.string(), z.unknown()).default({}),
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 = z.object({
228
- schemaVersion: z.literal("openpond.trainingJobLog.v2"),
251
+ var TrainingJobLogSchema = z2.object({
252
+ schemaVersion: z2.literal("openpond.trainingJobLog.v2"),
229
253
  jobId: IdSchema,
230
- sequence: z.number().int().nonnegative(),
231
- level: z.enum(["debug", "info", "warning", "error"]),
232
- message: z.string().max(2e4),
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 = z.object({ expectedVersion: z.number().int().nonnegative() }).strict();
236
- var TrainingJobOutputSchema = z.object({
237
- schemaVersion: z.literal("openpond.trainingJobOutput.v2"),
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: z.enum([
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: z.string().trim().min(1).max(2e3),
273
+ artifactRef: z2.string().trim().min(1).max(2e3),
250
274
  contentHash: HashSchema,
251
- sizeBytes: z.number().int().nonnegative(),
252
- metadata: z.record(z.string(), z.unknown()).default({}),
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 = z.object({
256
- schemaVersion: z.literal("openpond.trainingExecutionReceipt.v2"),
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: z.array(ModelProjectImmutableRefSchema).max(1e4),
266
- outputs: z.array(ModelProjectImmutableRefSchema).max(1e4),
267
- spendUsd: z.number().nonnegative(),
268
- durationSeconds: z.number().nonnegative(),
269
- cleanupComplete: z.boolean(),
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: z.string().trim().min(1).max(1e4).nullable()
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 = z.object({
309
- schemaVersion: z.literal("openpond.trainingJobOutputs.v2"),
310
- outputs: z.array(TrainingJobOutputSchema).max(1e4),
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 = z.object({
314
- schemaVersion: z.literal("openpond.trainingApiError.v2"),
315
- code: z.string().trim().min(1).max(200),
316
- message: z.string().trim().min(1).max(5e3),
317
- retryable: z.boolean().default(false),
318
- requestId: z.string().trim().min(1).max(500).nullable().default(null),
319
- details: z.record(z.string(), z.unknown()).default({})
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 = z.object({
338
- schemaVersion: z.literal("openpond.trainingCapabilities.v2"),
361
+ var TrainingCapabilitiesSchema = z2.object({
362
+ schemaVersion: z2.literal("openpond.trainingCapabilities.v2"),
339
363
  capabilityHash: HashSchema,
340
- jobKinds: z.array(TrainingJobKindSchema),
341
- methods: z.array(z.string().trim().min(1).max(200)),
342
- placements: z.array(
343
- z.enum(["local", "remote", "colocated", "provider_native"])
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: z.object({
346
- cancel: z.boolean(),
347
- stopAfterGroup: z.boolean(),
348
- resumeFromCheckpoint: z.boolean()
369
+ controls: z2.object({
370
+ cancel: z2.boolean(),
371
+ stopAfterGroup: z2.boolean(),
372
+ resumeFromCheckpoint: z2.boolean()
349
373
  }).strict(),
350
- limits: z.object({
351
- maximumSpendUsd: z.number().nonnegative(),
352
- maximumWallSeconds: z.number().int().positive(),
353
- maximumArtifactBytes: z.number().int().positive()
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", z.string().trim().min(1).max(2e3).parse(options.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(z.number().int().min(1).max(1e3).parse(options.limit))
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 z.array(TrainingJobEventSchema).parse(
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 z.array(TrainingJobLogSchema).max(1e5).parse(
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-AVW35YOH.js.map
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-LLHE4BOD.js";
5
- import "./chunk-IVEXCIHO.js";
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-ZPCK222K.js";
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-LLHE4BOD.js";
16
- import "./chunk-IVEXCIHO.js";
17
- import "./chunk-ZPCK222K.js";
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";