openpond-sdk 0.12.5 → 0.12.7
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/TASKSETS.md +13 -0
- package/TRAINING_PROTOCOL.md +25 -0
- package/dist/advanced-refiner-evaluations.js +7 -7
- package/dist/candidate-evaluations.js +6 -6
- package/dist/{chunk-EJZ7HOIS.js → chunk-2XLKMZH5.js} +485 -251
- package/dist/chunk-2XLKMZH5.js.map +1 -0
- package/dist/{chunk-CAMLCKSF.js → chunk-3SIGXGAE.js} +132 -87
- package/dist/chunk-3SIGXGAE.js.map +1 -0
- package/dist/{chunk-T3MFWGMX.js → chunk-3VGTVZHL.js} +3 -3
- package/dist/{chunk-O54KGALH.js → chunk-5T76GARR.js} +2 -2
- package/dist/{chunk-WQFU635Q.js → chunk-ATVQQCYN.js} +8 -4
- package/dist/chunk-ATVQQCYN.js.map +1 -0
- package/dist/{chunk-MJELLVQP.js → chunk-B2MKB7NB.js} +2 -2
- package/dist/{chunk-H4NTJFEE.js → chunk-D3WOJTUY.js} +3 -2
- package/dist/{chunk-H4NTJFEE.js.map → chunk-D3WOJTUY.js.map} +1 -1
- package/dist/{chunk-F4GITADW.js → chunk-ETFWUMEJ.js} +2 -2
- package/dist/{chunk-6KKM2XRR.js → chunk-FPA3AVCP.js} +35 -6
- package/dist/chunk-FPA3AVCP.js.map +1 -0
- package/dist/{chunk-QFBSNSUL.js → chunk-HRJKDHHG.js} +6 -4
- package/dist/chunk-HRJKDHHG.js.map +1 -0
- package/dist/{chunk-6GQ3GIAP.js → chunk-HRZLFJXX.js} +3 -3
- package/dist/{chunk-BJ5MKLWH.js → chunk-KD6MM67B.js} +6 -6
- package/dist/{chunk-RE426Q7Y.js → chunk-LIMTJR3A.js} +3 -3
- package/dist/{chunk-ZFYI4P6C.js → chunk-ONGOAEY6.js} +14 -2
- package/dist/chunk-ONGOAEY6.js.map +1 -0
- package/dist/{chunk-FLNWE5ZA.js → chunk-QDYHSJT5.js} +22 -8
- package/dist/chunk-QDYHSJT5.js.map +1 -0
- package/dist/{chunk-GWGDWZVN.js → chunk-RDL6QIQO.js} +2 -2
- package/dist/{chunk-BGNPKYBJ.js → chunk-S2IASCGW.js} +3 -3
- package/dist/{chunk-KKL6OICH.js → chunk-SER76PQ7.js} +2 -2
- package/dist/{chunk-6MFFKAU6.js → chunk-SMHZT6RM.js} +2 -2
- package/dist/{chunk-BYNVSWIQ.js → chunk-SQBYHWZU.js} +2 -2
- package/dist/{chunk-6Y67YHVH.js → chunk-VBVFE33M.js} +5 -5
- package/dist/{chunk-DBKCSQVH.js → chunk-VQGTYGZH.js} +2 -2
- package/dist/{chunk-25L5IXHA.js → chunk-VTAGUWXH.js} +2 -2
- package/dist/{chunk-HOOHJCE7.js → chunk-XF3JR72U.js} +3 -3
- package/dist/{chunk-VZPNRPXL.js → chunk-Y3I7SN5W.js} +61 -35
- package/dist/chunk-Y3I7SN5W.js.map +1 -0
- package/dist/{chunk-XACJ63U4.js → chunk-Z4XGSEKC.js} +577 -249
- package/dist/chunk-Z4XGSEKC.js.map +1 -0
- package/dist/{chunk-AUNNXJQE.js → chunk-ZGZLN4LH.js} +2 -2
- package/dist/connected-evidence.js +14 -14
- package/dist/dataset-workspaces.js +14 -14
- package/dist/experiment-evaluation-schedules.js +18 -18
- package/dist/experiment-improvements.js +7 -7
- package/dist/experiments.js +17 -17
- package/dist/index.js +34 -33
- package/dist/index.js.map +1 -1
- package/dist/learning.js +113 -9
- package/dist/learning.js.map +1 -1
- package/dist/model-projects.js +1 -1
- package/dist/model-starter-attempts.js +2 -2
- package/dist/model-starter-catalog.js +9 -9
- package/dist/model-starters.js +13 -9
- package/dist/model-taskset-runs.js +3 -3
- package/dist/post-training.js +6 -6
- package/dist/taskset-drafts.js +12 -12
- package/dist/taskset-packages.js +15 -15
- package/dist/training-bundle.js +81 -19
- package/dist/training-bundle.js.map +1 -1
- package/dist/training.js +39 -7
- package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts.map +1 -1
- package/dist/types/packages/cloud/src/sandbox/url.d.ts +3 -1
- package/dist/types/packages/cloud/src/sandbox/url.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +4 -0
- package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +2 -0
- package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +14 -0
- package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +4 -0
- package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +4 -0
- package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/learning-client.d.ts +1 -0
- package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts +358 -0
- package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/learning.d.ts +1 -0
- package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +24 -0
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-learning-policy.d.ts +16 -0
- package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-projects.d.ts +172 -0
- package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starters.d.ts +84 -1
- package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +28 -28
- package/dist/types/packages/sdk/src/model-training-defaults.d.ts +14 -0
- package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/post-training.d.ts +46 -0
- package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +141 -120
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +4 -0
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +51 -0
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-compute-selection.d.ts +52 -0
- package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-estimates.d.ts +1069 -0
- package/dist/types/packages/sdk/src/training-estimates.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-learning-batch.d.ts +40 -40
- package/dist/types/packages/sdk/src/training-physical-placement.d.ts +16 -0
- package/dist/types/packages/sdk/src/training-physical-placement.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-preparations.d.ts +248 -0
- package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +20 -0
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-queue.d.ts +24 -0
- package/dist/types/packages/sdk/src/training-queue.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-recipe-binding.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-recovery.d.ts +85 -0
- package/dist/types/packages/sdk/src/training-recovery.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-verifier-assets.d.ts +7 -0
- package/dist/types/packages/sdk/src/training-verifier-assets.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training.d.ts +599 -0
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-6KKM2XRR.js.map +0 -1
- package/dist/chunk-CAMLCKSF.js.map +0 -1
- package/dist/chunk-EJZ7HOIS.js.map +0 -1
- package/dist/chunk-FLNWE5ZA.js.map +0 -1
- package/dist/chunk-QFBSNSUL.js.map +0 -1
- package/dist/chunk-VZPNRPXL.js.map +0 -1
- package/dist/chunk-WQFU635Q.js.map +0 -1
- package/dist/chunk-XACJ63U4.js.map +0 -1
- package/dist/chunk-ZFYI4P6C.js.map +0 -1
- /package/dist/{chunk-T3MFWGMX.js.map → chunk-3VGTVZHL.js.map} +0 -0
- /package/dist/{chunk-O54KGALH.js.map → chunk-5T76GARR.js.map} +0 -0
- /package/dist/{chunk-MJELLVQP.js.map → chunk-B2MKB7NB.js.map} +0 -0
- /package/dist/{chunk-F4GITADW.js.map → chunk-ETFWUMEJ.js.map} +0 -0
- /package/dist/{chunk-6GQ3GIAP.js.map → chunk-HRZLFJXX.js.map} +0 -0
- /package/dist/{chunk-BJ5MKLWH.js.map → chunk-KD6MM67B.js.map} +0 -0
- /package/dist/{chunk-RE426Q7Y.js.map → chunk-LIMTJR3A.js.map} +0 -0
- /package/dist/{chunk-GWGDWZVN.js.map → chunk-RDL6QIQO.js.map} +0 -0
- /package/dist/{chunk-BGNPKYBJ.js.map → chunk-S2IASCGW.js.map} +0 -0
- /package/dist/{chunk-KKL6OICH.js.map → chunk-SER76PQ7.js.map} +0 -0
- /package/dist/{chunk-6MFFKAU6.js.map → chunk-SMHZT6RM.js.map} +0 -0
- /package/dist/{chunk-BYNVSWIQ.js.map → chunk-SQBYHWZU.js.map} +0 -0
- /package/dist/{chunk-6Y67YHVH.js.map → chunk-VBVFE33M.js.map} +0 -0
- /package/dist/{chunk-DBKCSQVH.js.map → chunk-VQGTYGZH.js.map} +0 -0
- /package/dist/{chunk-25L5IXHA.js.map → chunk-VTAGUWXH.js.map} +0 -0
- /package/dist/{chunk-HOOHJCE7.js.map → chunk-XF3JR72U.js.map} +0 -0
- /package/dist/{chunk-AUNNXJQE.js.map → chunk-ZGZLN4LH.js.map} +0 -0
package/dist/learning.js
CHANGED
|
@@ -11,8 +11,9 @@ import {
|
|
|
11
11
|
OpenPondLearningClient,
|
|
12
12
|
OpenPondLearningError,
|
|
13
13
|
assertLearningCredentialExpiry,
|
|
14
|
-
createSourceCredentialRequest
|
|
15
|
-
|
|
14
|
+
createSourceCredentialRequest,
|
|
15
|
+
readBoundedLearningResponse
|
|
16
|
+
} from "./chunk-D3WOJTUY.js";
|
|
16
17
|
import {
|
|
17
18
|
ModelInitialLearningSchema
|
|
18
19
|
} from "./chunk-CL3IOOVL.js";
|
|
@@ -174,16 +175,16 @@ var OpenPondGraderInspectionClient = class {
|
|
|
174
175
|
if (page.teamId !== this.options.teamId || page.items.length > query.limit || new Set(page.items.map((item) => item.reward.id)).size !== page.items.length) throw new Error("Grader catalog differs from its requested workspace or bounds.");
|
|
175
176
|
return page;
|
|
176
177
|
}
|
|
177
|
-
async versions(
|
|
178
|
+
async versions(id2, query = {}, signal) {
|
|
178
179
|
const options = z.object({ beforeRevision: z.number().int().positive().optional(), limit: z.number().int().min(1).max(100).default(25) }).strict().parse(query);
|
|
179
|
-
const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(
|
|
180
|
-
if (page.teamId !== this.options.teamId || page.id !==
|
|
180
|
+
const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id2))}/versions`, options, signal));
|
|
181
|
+
if (page.teamId !== this.options.teamId || page.id !== id2 || page.items.length > options.limit || page.items.some((item, index) => item.id !== id2 || options.beforeRevision && item.revision >= options.beforeRevision || index > 0 && item.revision >= page.items[index - 1].revision)) throw new Error("Grader versions differ from their requested identity or revision order.");
|
|
181
182
|
return page;
|
|
182
183
|
}
|
|
183
|
-
async usage(
|
|
184
|
+
async usage(id2, value, signal) {
|
|
184
185
|
const query = GraderUsageQuerySchema.parse(value);
|
|
185
|
-
const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(
|
|
186
|
-
if (page.teamId !== this.options.teamId || page.id !==
|
|
186
|
+
const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id2))}/usage`, query, signal));
|
|
187
|
+
if (page.teamId !== this.options.teamId || page.id !== id2 || page.section !== query.section || page.items.length > query.limit) throw new Error("Grader usage differs from its requested workspace, identity or bounds.");
|
|
187
188
|
return page;
|
|
188
189
|
}
|
|
189
190
|
async read(path, query, signal) {
|
|
@@ -201,7 +202,108 @@ function graderFeedbackKeyFromName(name, rewardId) {
|
|
|
201
202
|
const prefix = /^[a-z]/.test(slug) ? slug : `grader_${slug}`;
|
|
202
203
|
return `${(prefix || "grader").slice(0, 55).replace(/_+$/g, "")}_${contentHash(rewardId).slice(0, 24)}`;
|
|
203
204
|
}
|
|
205
|
+
|
|
206
|
+
// src/learning-correction-metrics.ts
|
|
207
|
+
import { z as z2 } from "zod";
|
|
208
|
+
import { CorrectionVerificationPlanContentSchema, CorrectionVerificationPlanSchema, CorrectionOpportunitySchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema, assertLearningRequestJson } from "@openpond/evals/learning";
|
|
209
|
+
import { CorrectionVerificationPlanSchema as CorrectionVerificationPlanSchema2, CorrectionMetricSummarySchema as CorrectionMetricSummarySchema2, CorrectionMetricObservationSchema as CorrectionMetricObservationSchema2 } from "@openpond/evals/learning";
|
|
210
|
+
var id = z2.string().trim().min(1).max(500);
|
|
211
|
+
var ref = z2.object({ id, contentHash: z2.string().regex(/^[a-f0-9]{64}$/) }).strict();
|
|
212
|
+
var CorrectionMetricsReadSchema = z2.object({ teamId: id, modelId: id, runId: id.optional(), from: z2.string().datetime().optional(), to: z2.string().datetime().optional() }).strict();
|
|
213
|
+
var CorrectionMetricsCommandSchema = z2.discriminatedUnion("action", [
|
|
214
|
+
z2.object({
|
|
215
|
+
action: z2.literal("declare_verification"),
|
|
216
|
+
teamId: id,
|
|
217
|
+
operationId: id,
|
|
218
|
+
plan: z2.object({
|
|
219
|
+
modelId: CorrectionVerificationPlanContentSchema.shape.modelId,
|
|
220
|
+
classification: CorrectionVerificationPlanContentSchema.shape.classification,
|
|
221
|
+
feedback: CorrectionVerificationPlanContentSchema.shape.feedback,
|
|
222
|
+
evidence: CorrectionVerificationPlanContentSchema.shape.evidence,
|
|
223
|
+
trainingJobId: CorrectionVerificationPlanContentSchema.shape.trainingJobId,
|
|
224
|
+
checkpoint: CorrectionVerificationPlanContentSchema.shape.checkpoint,
|
|
225
|
+
artifact: CorrectionVerificationPlanContentSchema.shape.artifact,
|
|
226
|
+
taskset: CorrectionVerificationPlanContentSchema.shape.taskset,
|
|
227
|
+
checks: CorrectionVerificationPlanContentSchema.shape.checks,
|
|
228
|
+
baselineOperationId: CorrectionVerificationPlanContentSchema.shape.baselineOperationId,
|
|
229
|
+
candidateOperationId: CorrectionVerificationPlanContentSchema.shape.candidateOperationId,
|
|
230
|
+
criterion: CorrectionVerificationPlanContentSchema.shape.criterion
|
|
231
|
+
}).strict()
|
|
232
|
+
}).strict(),
|
|
233
|
+
z2.object({
|
|
234
|
+
action: z2.literal("link_live_opportunity"),
|
|
235
|
+
teamId: id,
|
|
236
|
+
operationId: id,
|
|
237
|
+
correction: ref,
|
|
238
|
+
inferenceRequestId: id,
|
|
239
|
+
grade: z2.object({ id, revision: z2.number().int().positive() }).strict(),
|
|
240
|
+
checkIds: z2.array(id).min(1).max(1e3)
|
|
241
|
+
}).strict()
|
|
242
|
+
]);
|
|
243
|
+
var CorrectionMetricsDetailSchema = z2.object({ summary: CorrectionMetricSummarySchema.nullable(), observations: z2.array(CorrectionMetricObservationSchema).max(1e3) }).strict();
|
|
244
|
+
var OpenPondCorrectionMetricsClient = class {
|
|
245
|
+
options;
|
|
246
|
+
constructor(options) {
|
|
247
|
+
if (!options.apiKey.trim()) throw new Error("Learning API key is required.");
|
|
248
|
+
const url = new URL(options.baseUrl);
|
|
249
|
+
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash)
|
|
250
|
+
throw new Error("Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.");
|
|
251
|
+
this.options = { ...options, baseUrl: url.toString().replace(/\/+$/, "") };
|
|
252
|
+
}
|
|
253
|
+
async request(path, teamId, init) {
|
|
254
|
+
const response = await (this.options.fetch ?? globalThis.fetch)(`${this.options.baseUrl}${path}`, {
|
|
255
|
+
...init,
|
|
256
|
+
redirect: "error",
|
|
257
|
+
headers: { Authorization: `Bearer ${this.options.apiKey}`, "Content-Type": "application/json", Accept: "application/json", "X-OpenPond-Team-Id": teamId }
|
|
258
|
+
});
|
|
259
|
+
let payload;
|
|
260
|
+
try {
|
|
261
|
+
payload = await readBoundedLearningResponse(response);
|
|
262
|
+
} catch (error) {
|
|
263
|
+
if (error instanceof OpenPondLearningError) throw error;
|
|
264
|
+
throw new OpenPondLearningError(response.ok ? 502 : response.status, "invalid_response", "Correction metrics returned an invalid response.", null);
|
|
265
|
+
}
|
|
266
|
+
if (!response.ok) {
|
|
267
|
+
const error = z2.object({ code: z2.string().optional(), error: z2.string().optional() }).passthrough().safeParse(payload);
|
|
268
|
+
throw new OpenPondLearningError(
|
|
269
|
+
response.status,
|
|
270
|
+
error.success ? error.data.code ?? "correction_request_failed" : "correction_request_failed",
|
|
271
|
+
error.success ? error.data.error ?? `Correction metrics request failed (${response.status}).` : `Correction metrics request failed (${response.status}).`,
|
|
272
|
+
payload
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
return payload;
|
|
276
|
+
}
|
|
277
|
+
async read(input, options = {}) {
|
|
278
|
+
const query = CorrectionMetricsReadSchema.parse(input);
|
|
279
|
+
const result = CorrectionMetricsDetailSchema.parse(await this.request(`/v1/learning/corrections?query=${encodeURIComponent(JSON.stringify(query))}`, query.teamId, { method: "GET", signal: options.signal }));
|
|
280
|
+
if (result.summary && (result.summary.scope.teamId !== query.teamId || result.summary.scope.modelId !== query.modelId || query.runId && result.summary.scope.runId !== query.runId) || result.observations.some((observation) => observation.modelId !== query.modelId || query.runId && observation.trainingJobId !== query.runId))
|
|
281
|
+
throw new OpenPondLearningError(502, "correction_scope_mismatch", "Correction metrics did not match the requested workspace, Model or run.", null);
|
|
282
|
+
return result;
|
|
283
|
+
}
|
|
284
|
+
async command(input, options = {}) {
|
|
285
|
+
const command = CorrectionMetricsCommandSchema.parse(input);
|
|
286
|
+
assertLearningRequestJson(command);
|
|
287
|
+
const payload = await this.request("/v1/learning/corrections", command.teamId, { method: "POST", body: JSON.stringify(command), signal: options.signal });
|
|
288
|
+
if (command.action === "declare_verification") {
|
|
289
|
+
const result2 = CorrectionVerificationPlanSchema.parse(payload);
|
|
290
|
+
if (result2.teamId !== command.teamId || result2.modelId !== command.plan.modelId || result2.trainingJobId !== command.plan.trainingJobId)
|
|
291
|
+
throw new OpenPondLearningError(502, "correction_scope_mismatch", "Correction declaration did not match the requested workspace, Model or run.", null);
|
|
292
|
+
return result2;
|
|
293
|
+
}
|
|
294
|
+
const result = CorrectionOpportunitySchema.parse(payload);
|
|
295
|
+
if (result.correction.id !== command.correction.id || result.correction.contentHash !== command.correction.contentHash || result.attempt.id !== command.inferenceRequestId)
|
|
296
|
+
throw new OpenPondLearningError(502, "correction_scope_mismatch", "Correction opportunity did not match the declared correction and serving request.", null);
|
|
297
|
+
return result;
|
|
298
|
+
}
|
|
299
|
+
};
|
|
204
300
|
export {
|
|
301
|
+
CorrectionMetricObservationSchema2 as CorrectionMetricObservationSchema,
|
|
302
|
+
CorrectionMetricSummarySchema2 as CorrectionMetricSummarySchema,
|
|
303
|
+
CorrectionMetricsCommandSchema,
|
|
304
|
+
CorrectionMetricsDetailSchema,
|
|
305
|
+
CorrectionMetricsReadSchema,
|
|
306
|
+
CorrectionVerificationPlanSchema2 as CorrectionVerificationPlanSchema,
|
|
205
307
|
GraderCatalogPageSchema,
|
|
206
308
|
GraderCatalogQuerySchema,
|
|
207
309
|
GraderUsagePageSchema,
|
|
@@ -216,6 +318,7 @@ export {
|
|
|
216
318
|
LearningSourceCredentialRequestSchema,
|
|
217
319
|
LearningSourceCredentialSchema,
|
|
218
320
|
LearningSourceCredentialSecretSchema,
|
|
321
|
+
OpenPondCorrectionMetricsClient,
|
|
219
322
|
OpenPondGraderInspectionClient,
|
|
220
323
|
OpenPondLearningClient,
|
|
221
324
|
OpenPondLearningError,
|
|
@@ -225,6 +328,7 @@ export {
|
|
|
225
328
|
graderFeedbackKeyFromName,
|
|
226
329
|
hostedLearningPolicyDefaults,
|
|
227
330
|
hostedLearningPolicyReferences,
|
|
228
|
-
initialHostedModelLearning
|
|
331
|
+
initialHostedModelLearning,
|
|
332
|
+
readBoundedLearningResponse
|
|
229
333
|
};
|
|
230
334
|
//# sourceMappingURL=learning.js.map
|
package/dist/learning.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/learning.ts","../src/model-learning-policy.ts","../src/grader-inspection.ts","../src/grader-feedback-key.ts"],"sourcesContent":["export * from \"@openpond/evals/learning\";\nexport * from \"@openpond/evals/rewards\";\nexport * from \"./learning-credentials.js\";\nexport * from \"./learning-client.js\";\nexport * from \"./model-learning-policy.js\";\n\nexport * from \"./grader-inspection.js\";\n\nexport * from \"./grader-feedback-key.js\";\n","import { LearningDomainError, LearningPolicyContentSchema, LearningSourceContentSchema, learningRef, sameLearningRef, sealLearningContent, type TaskDefinition, type LearningPolicy, type LearningRevisionRef } from \"@openpond/evals/learning\";\nimport { contentHash } from \"@openpond/harness\";\n\nimport type { HostedModelProjectSummary } from \"./model-projects.js\";\nimport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\n\n/** Compile the simple creation choice into exact source and policy releases.\n * Hosts commit these with the new Model and its idempotency receipt. */\nexport function initialHostedModelLearning(input: { project: HostedModelProjectSummary; definition: TaskDefinition; learning: ModelInitialLearning }) {\n const learning = ModelInitialLearningSchema.parse(input.learning);\n const { project, definition } = input;\n if (!project.trainingSetup.rewardBindingRef || !sameLearningRef(definition.rewardBinding, project.trainingSetup.rewardBindingRef)) throw new LearningDomainError(\"learning_policy_binding_mismatch\", 422, \"The task format must use the Model's selected grader.\");\n const source = LearningSourceContentSchema.parse({ schemaVersion: \"openpond.learningSource.v1\", id: `model-source-${contentHash([project.portableProjectId, learningRef(definition)])}`,\n revision: 1, name: `${project.name} tasks`, kind: \"direct\", taskDefinition: learningRef(definition), enabled: true,\n allowedSplits: [\"train\", \"validation\", \"test\", \"frozen_eval\"], mapping: null, adapterVersion: null });\n const policy = createHostedLearningPolicyContent({ project, previous: null, policyId: `model-policy-${contentHash(project.portableProjectId)}`,\n applyModelConfiguration: true, sources: [learningRef(sealLearningContent(source))], taskDefinition: learningRef(definition),\n settings: { ...hostedLearningPolicyDefaults(project, null), enabled: true, scheduled: true,\n trigger: learning.mode === \"nightly\" ? { kind: \"nightly\", localTime: learning.localTime, timeZone: learning.timeZone } : { kind: \"approved_count\" },\n minimumApprovedExamples: learning.minimumTasks, maxBatchExamples: learning.minimumTasks,\n maxIterationSpendUsd: learning.maximumSpendUsd, maxDailySpendUsd: learning.maximumDailySpendUsd,\n cooldownSeconds: 0, maxBacklogExamples: Math.max(1_000, learning.minimumTasks * 10),\n } });\n return { source, policy };\n}\n\n/** Shared starting values for both Model clients. Existing policies retain\n * their exact limits; opening settings must never silently increase spending. */\nexport function hostedLearningPolicyDefaults(project: HostedModelProjectSummary, policy: LearningPolicy | null) {\n const maximumSpend = policy?.limits.maxIterationSpendUsd ?? project.trainingSetup.preferredMaximumSpendUsd ?? 1;\n return {\n enabled: policy?.enabled ?? false,\n scheduled: Boolean(policy && [\"schedule\", \"nightly\", \"approved_count\"].includes(policy.trigger.kind)),\n intervalSeconds: policy?.trigger.kind === \"schedule\" ? policy.trigger.intervalSeconds : 86_400,\n humanReviewRequired: policy?.admission.mode !== \"qualified_automatic\",\n minimumApprovedExamples: policy?.admission.minimumApprovedExamples ?? 10,\n maxBatchExamples: policy?.limits.maxBatchExamples ?? 10,\n maxIterationSpendUsd: maximumSpend,\n maxDailySpendUsd: policy?.limits.maxDailySpendUsd ?? maximumSpend,\n cooldownSeconds: policy?.limits.cooldownSeconds ?? 3_600,\n maxRetries: policy?.limits.maxRetries ?? 0,\n maxBacklogExamples: policy?.limits.maxBacklogExamples ?? 1_000,\n };\n}\n\nexport interface HostedLearningPolicySettings {\n enabled: boolean;\n scheduled: boolean;\n intervalSeconds: number;\n trigger?: Exclude<LearningPolicy[\"trigger\"], { kind: \"upstream_accepted\" }>;\n humanReviewRequired: boolean;\n minimumApprovedExamples: number;\n maxBatchExamples: number;\n maxIterationSpendUsd: number;\n maxDailySpendUsd: number;\n cooldownSeconds: number;\n maxRetries: number;\n maxBacklogExamples: number;\n}\n\n/** Compile reviewed settings without following mutable Model configuration\n * unless the caller explicitly chooses to apply it. Publication still owns\n * authorization, revision comparison and source/qualification validation. */\nexport function createHostedLearningPolicyContent(input: {\n project: HostedModelProjectSummary;\n previous: LearningPolicy | null;\n policyId: string;\n applyModelConfiguration: boolean;\n sources: LearningRevisionRef[];\n taskDefinition: LearningRevisionRef;\n settings: HostedLearningPolicySettings;\n}) {\n const { project, previous, settings } = input;\n if (previous && (previous.id !== input.policyId || previous.modelProjectId !== project.portableProjectId || previous.executionOwner !== \"hosted\")) {\n throw new LearningDomainError(\"learning_policy_model_mismatch\", 422, \"Learning settings must belong to this hosted Model.\");\n }\n const applyModel = input.applyModelConfiguration || !previous;\n const refs = applyModel ? hostedLearningPolicyReferences(project) : null;\n const method = applyModel ? project.trainingSetup.recipe?.method : previous?.training.method;\n const trigger = settings.trigger ?? (settings.scheduled ? { kind: \"schedule\" as const, intervalSeconds: settings.intervalSeconds } : { kind: \"manual\" as const });\n if (settings.enabled && method !== \"grpo\") {\n throw new LearningDomainError(\"learning_training_method_unsupported\", 422, \"Hosted continual learning currently supports GRPO.\");\n }\n return LearningPolicyContentSchema.parse({\n schemaVersion: \"openpond.learningPolicy.v1\", id: input.policyId, revision: (previous?.revision ?? 0) + 1,\n modelProjectId: project.portableProjectId, executionOwner: \"hosted\", enabled: settings.enabled,\n sources: input.sources, taskDefinition: input.taskDefinition,\n rewardBinding: applyModel ? project.trainingSetup.rewardBindingRef : previous?.rewardBinding,\n admission: { mode: settings.humanReviewRequired ? \"human\" : \"qualified_automatic\",\n qualification: settings.humanReviewRequired ? null : previous?.admission.qualification ?? null,\n minimumApprovedExamples: settings.minimumApprovedExamples },\n trigger,\n trainingParent: refs?.trainingParent ?? previous?.trainingParent,\n teacher: previous?.teacher ?? null,\n training: { method, recipe: refs?.recipe ?? previous?.training.recipe,\n retentionEvaluation: refs?.retentionEvaluation ?? previous?.training.retentionEvaluation,\n replayBatches: previous?.training.replayBatches ?? [] },\n limits: { maxIterationSpendUsd: settings.maxIterationSpendUsd, maxDailySpendUsd: settings.maxDailySpendUsd,\n cooldownSeconds: settings.cooldownSeconds, maxRetries: settings.maxRetries,\n maxBatchExamples: settings.maxBatchExamples, maxBacklogExamples: settings.maxBacklogExamples },\n automation: { collect: false, train: trigger.kind !== \"manual\", accept: false, serve: false },\n acceptance: previous?.acceptance ?? { minimumScore: 0, maximumRetentionRegression: 0, requireImprovement: true, rollbackVersion: null },\n });\n}\n\n/** Bind a reviewed hosted Model configuration before asynchronous preparation.\n * Keep the established recipe identity: its id binds the whole Model revision,\n * including Harness and retention selections, while its hash binds the recipe.\n * Callers must obtain the summary from the authenticated Model API. */\nexport function hostedLearningPolicyReferences(project: HostedModelProjectSummary) {\n const setup = project.trainingSetup;\n const base = setup.baseModel ?? project.defaultBaseModel;\n if (!setup.recipe || !base || !setup.evaluationTasksetRef) {\n throw new LearningDomainError(\"learning_model_configuration_incomplete\", 422,\n \"Select a training recipe, starting model and retained evaluation before enabling hosted learning.\");\n }\n return {\n recipe: { id: `model-recipe-${project.etag}`, contentHash: contentHash(setup.recipe) },\n trainingParent: { id: base.modelId, contentHash: contentHash(base) },\n retentionEvaluation: { id: setup.evaluationTasksetRef.id, contentHash: setup.evaluationTasksetRef.contentHash },\n };\n}\n","import { z } from \"zod\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nconst Id = z.string().trim().min(1).max(240);\nexport const GraderCatalogQuerySchema = z.object({ projectId: Id.optional(), search: z.string().max(300).optional(), kind: z.string().max(100).optional(), sort: z.enum([\"name\", \"type\", \"version\", \"projects\", \"datasets\", \"runs\"]).optional(), direction: z.enum([\"asc\", \"desc\"]).optional(), after: z.string().max(3000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport const GraderCatalogPageSchema = z.object({ teamId: Id, items: z.array(z.object({ reward: RewardReleaseSchema, projects: z.number().int().nonnegative(), datasets: z.number().int().nonnegative(), runs: z.number().int().nonnegative() }).strict()).max(100), nextCursor: z.string().nullable() }).strict();\nexport const GraderVersionsPageSchema = z.object({ teamId: Id, id: Id, items: z.array(RewardReleaseSchema).max(100), nextRevision: z.number().int().positive().nullable() }).strict();\nexport const GraderUsageQuerySchema = z.object({ section: z.enum([\"projects\", \"datasets\", \"runs\"]), after: Id.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const GraderUsagePageSchema = z.object({ teamId: Id, id: Id, section: GraderUsageQuerySchema.shape.section, items: z.array(z.union([\n z.object({ id: Id, name: z.string(), graderRevisions: z.array(z.number().int().positive()), archived: z.boolean() }).strict(),\n z.object({ id: Id, name: z.string(), revision: z.number().int().positive(), graderRevisions: z.array(z.number().int().positive()) }).strict(),\n z.object({ id: Id, name: z.string(), status: z.string() }).strict(),\n])).max(100), nextCursor: Id.nullable() }).strict();\nexport class OpenPondGraderInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async catalog(value: z.input<typeof GraderCatalogQuerySchema> = {}, signal?: AbortSignal) {\n const query = GraderCatalogQuerySchema.parse(value);\n const page = GraderCatalogPageSchema.parse(await this.read(\"\", query, signal));\n if (page.teamId !== this.options.teamId || page.items.length > query.limit || new Set(page.items.map(item => item.reward.id)).size !== page.items.length) throw new Error(\"Grader catalog differs from its requested workspace or bounds.\");\n return page;\n }\n async versions(id: string, query: { beforeRevision?: number; limit?: number } = {}, signal?: AbortSignal) {\n const options = z.object({ beforeRevision: z.number().int().positive().optional(), limit: z.number().int().min(1).max(100).default(25) }).strict().parse(query);\n const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/versions`, options, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.items.length > options.limit || page.items.some((item, index) => item.id !== id || options.beforeRevision && item.revision >= options.beforeRevision || index > 0 && item.revision >= page.items[index - 1]!.revision)) throw new Error(\"Grader versions differ from their requested identity or revision order.\");\n return page;\n }\n async usage(id: string, value: z.input<typeof GraderUsageQuerySchema>, signal?: AbortSignal) {\n const query = GraderUsageQuerySchema.parse(value);\n const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/usage`, query, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.section !== query.section || page.items.length > query.limit) throw new Error(\"Grader usage differs from its requested workspace, identity or bounds.\");\n return page;\n }\n private async read(path: string, query: Record<string, unknown>, signal?: AbortSignal) {\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/learning/read/graders${path}?${params}`, { signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ error: z.string() }).parse(value).error);\n return value;\n }\n}\n","import { contentHash } from \"@openpond/harness\";\n\n/** Draft presentation default. Published keys must retain their released value. */\nexport function graderFeedbackKeyFromName(name: string, rewardId: string): string {\n const slug = name.normalize(\"NFKD\").toLowerCase().replace(/[^a-z0-9]+/g, \"_\").replace(/^_+|_+$/g, \"\");\n const prefix = /^[a-z]/.test(slug) ? slug : `grader_${slug}`;\n return `${(prefix || \"grader\").slice(0, 55).replace(/_+$/g, \"\")}_${contentHash(rewardId).slice(0, 24)}`;\n}\n"],"mappings":"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","names":["value"]}
|
|
1
|
+
{"version":3,"sources":["../src/learning.ts","../src/model-learning-policy.ts","../src/grader-inspection.ts","../src/grader-feedback-key.ts","../src/learning-correction-metrics.ts"],"sourcesContent":["export * from \"@openpond/evals/learning\";\nexport * from \"@openpond/evals/rewards\";\nexport * from \"./learning-credentials.js\";\nexport * from \"./learning-client.js\";\nexport * from \"./model-learning-policy.js\";\n\nexport * from \"./grader-inspection.js\";\n\nexport * from \"./grader-feedback-key.js\";\nexport * from \"./learning-correction-metrics.js\";\n","import { LearningDomainError, LearningPolicyContentSchema, LearningSourceContentSchema, learningRef, sameLearningRef, sealLearningContent, type TaskDefinition, type LearningPolicy, type LearningRevisionRef } from \"@openpond/evals/learning\";\nimport { contentHash } from \"@openpond/harness\";\n\nimport type { HostedModelProjectSummary } from \"./model-projects.js\";\nimport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\n\n/** Compile the simple creation choice into exact source and policy releases.\n * Hosts commit these with the new Model and its idempotency receipt. */\nexport function initialHostedModelLearning(input: { project: HostedModelProjectSummary; definition: TaskDefinition; learning: ModelInitialLearning }) {\n const learning = ModelInitialLearningSchema.parse(input.learning);\n const { project, definition } = input;\n if (!project.trainingSetup.rewardBindingRef || !sameLearningRef(definition.rewardBinding, project.trainingSetup.rewardBindingRef)) throw new LearningDomainError(\"learning_policy_binding_mismatch\", 422, \"The task format must use the Model's selected grader.\");\n const source = LearningSourceContentSchema.parse({ schemaVersion: \"openpond.learningSource.v1\", id: `model-source-${contentHash([project.portableProjectId, learningRef(definition)])}`,\n revision: 1, name: `${project.name} tasks`, kind: \"direct\", taskDefinition: learningRef(definition), enabled: true,\n allowedSplits: [\"train\", \"validation\", \"test\", \"frozen_eval\"], mapping: null, adapterVersion: null });\n const policy = createHostedLearningPolicyContent({ project, previous: null, policyId: `model-policy-${contentHash(project.portableProjectId)}`,\n applyModelConfiguration: true, sources: [learningRef(sealLearningContent(source))], taskDefinition: learningRef(definition),\n settings: { ...hostedLearningPolicyDefaults(project, null), enabled: true, scheduled: true,\n trigger: learning.mode === \"nightly\" ? { kind: \"nightly\", localTime: learning.localTime, timeZone: learning.timeZone } : { kind: \"approved_count\" },\n minimumApprovedExamples: learning.minimumTasks, maxBatchExamples: learning.minimumTasks,\n maxIterationSpendUsd: learning.maximumSpendUsd, maxDailySpendUsd: learning.maximumDailySpendUsd,\n cooldownSeconds: 0, maxBacklogExamples: Math.max(1_000, learning.minimumTasks * 10),\n } });\n return { source, policy };\n}\n\n/** Shared starting values for both Model clients. Existing policies retain\n * their exact limits; opening settings must never silently increase spending. */\nexport function hostedLearningPolicyDefaults(project: HostedModelProjectSummary, policy: LearningPolicy | null) {\n const maximumSpend = policy?.limits.maxIterationSpendUsd ?? project.trainingSetup.preferredMaximumSpendUsd ?? 1;\n return {\n enabled: policy?.enabled ?? false,\n scheduled: Boolean(policy && [\"schedule\", \"nightly\", \"approved_count\"].includes(policy.trigger.kind)),\n intervalSeconds: policy?.trigger.kind === \"schedule\" ? policy.trigger.intervalSeconds : 86_400,\n humanReviewRequired: policy?.admission.mode !== \"qualified_automatic\",\n minimumApprovedExamples: policy?.admission.minimumApprovedExamples ?? 10,\n maxBatchExamples: policy?.limits.maxBatchExamples ?? 10,\n maxIterationSpendUsd: maximumSpend,\n maxDailySpendUsd: policy?.limits.maxDailySpendUsd ?? maximumSpend,\n cooldownSeconds: policy?.limits.cooldownSeconds ?? 3_600,\n maxRetries: policy?.limits.maxRetries ?? 0,\n maxBacklogExamples: policy?.limits.maxBacklogExamples ?? 1_000,\n };\n}\n\nexport interface HostedLearningPolicySettings {\n enabled: boolean;\n scheduled: boolean;\n intervalSeconds: number;\n trigger?: Exclude<LearningPolicy[\"trigger\"], { kind: \"upstream_accepted\" }>;\n humanReviewRequired: boolean;\n minimumApprovedExamples: number;\n maxBatchExamples: number;\n maxIterationSpendUsd: number;\n maxDailySpendUsd: number;\n cooldownSeconds: number;\n maxRetries: number;\n maxBacklogExamples: number;\n}\n\n/** Compile reviewed settings without following mutable Model configuration\n * unless the caller explicitly chooses to apply it. Publication still owns\n * authorization, revision comparison and source/qualification validation. */\nexport function createHostedLearningPolicyContent(input: {\n project: HostedModelProjectSummary;\n previous: LearningPolicy | null;\n policyId: string;\n applyModelConfiguration: boolean;\n sources: LearningRevisionRef[];\n taskDefinition: LearningRevisionRef;\n settings: HostedLearningPolicySettings;\n}) {\n const { project, previous, settings } = input;\n if (previous && (previous.id !== input.policyId || previous.modelProjectId !== project.portableProjectId || previous.executionOwner !== \"hosted\")) {\n throw new LearningDomainError(\"learning_policy_model_mismatch\", 422, \"Learning settings must belong to this hosted Model.\");\n }\n const applyModel = input.applyModelConfiguration || !previous;\n const refs = applyModel ? hostedLearningPolicyReferences(project) : null;\n const method = applyModel ? project.trainingSetup.recipe?.method : previous?.training.method;\n const trigger = settings.trigger ?? (settings.scheduled ? { kind: \"schedule\" as const, intervalSeconds: settings.intervalSeconds } : { kind: \"manual\" as const });\n if (settings.enabled && method !== \"grpo\") {\n throw new LearningDomainError(\"learning_training_method_unsupported\", 422, \"Hosted continual learning currently supports GRPO.\");\n }\n return LearningPolicyContentSchema.parse({\n schemaVersion: \"openpond.learningPolicy.v1\", id: input.policyId, revision: (previous?.revision ?? 0) + 1,\n modelProjectId: project.portableProjectId, executionOwner: \"hosted\", enabled: settings.enabled,\n sources: input.sources, taskDefinition: input.taskDefinition,\n rewardBinding: applyModel ? project.trainingSetup.rewardBindingRef : previous?.rewardBinding,\n admission: { mode: settings.humanReviewRequired ? \"human\" : \"qualified_automatic\",\n qualification: settings.humanReviewRequired ? null : previous?.admission.qualification ?? null,\n minimumApprovedExamples: settings.minimumApprovedExamples },\n trigger,\n trainingParent: refs?.trainingParent ?? previous?.trainingParent,\n teacher: previous?.teacher ?? null,\n training: { method, recipe: refs?.recipe ?? previous?.training.recipe,\n retentionEvaluation: refs?.retentionEvaluation ?? previous?.training.retentionEvaluation,\n replayBatches: previous?.training.replayBatches ?? [] },\n limits: { maxIterationSpendUsd: settings.maxIterationSpendUsd, maxDailySpendUsd: settings.maxDailySpendUsd,\n cooldownSeconds: settings.cooldownSeconds, maxRetries: settings.maxRetries,\n maxBatchExamples: settings.maxBatchExamples, maxBacklogExamples: settings.maxBacklogExamples },\n automation: { collect: false, train: trigger.kind !== \"manual\", accept: false, serve: false },\n acceptance: previous?.acceptance ?? { minimumScore: 0, maximumRetentionRegression: 0, requireImprovement: true, rollbackVersion: null },\n });\n}\n\n/** Bind a reviewed hosted Model configuration before asynchronous preparation.\n * Keep the established recipe identity: its id binds the whole Model revision,\n * including Harness and retention selections, while its hash binds the recipe.\n * Callers must obtain the summary from the authenticated Model API. */\nexport function hostedLearningPolicyReferences(project: HostedModelProjectSummary) {\n const setup = project.trainingSetup;\n const base = setup.baseModel ?? project.defaultBaseModel;\n if (!setup.recipe || !base || !setup.evaluationTasksetRef) {\n throw new LearningDomainError(\"learning_model_configuration_incomplete\", 422,\n \"Select a training recipe, starting model and retained evaluation before enabling hosted learning.\");\n }\n return {\n recipe: { id: `model-recipe-${project.etag}`, contentHash: contentHash(setup.recipe) },\n trainingParent: { id: base.modelId, contentHash: contentHash(base) },\n retentionEvaluation: { id: setup.evaluationTasksetRef.id, contentHash: setup.evaluationTasksetRef.contentHash },\n };\n}\n","import { z } from \"zod\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nconst Id = z.string().trim().min(1).max(240);\nexport const GraderCatalogQuerySchema = z.object({ projectId: Id.optional(), search: z.string().max(300).optional(), kind: z.string().max(100).optional(), sort: z.enum([\"name\", \"type\", \"version\", \"projects\", \"datasets\", \"runs\"]).optional(), direction: z.enum([\"asc\", \"desc\"]).optional(), after: z.string().max(3000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport const GraderCatalogPageSchema = z.object({ teamId: Id, items: z.array(z.object({ reward: RewardReleaseSchema, projects: z.number().int().nonnegative(), datasets: z.number().int().nonnegative(), runs: z.number().int().nonnegative() }).strict()).max(100), nextCursor: z.string().nullable() }).strict();\nexport const GraderVersionsPageSchema = z.object({ teamId: Id, id: Id, items: z.array(RewardReleaseSchema).max(100), nextRevision: z.number().int().positive().nullable() }).strict();\nexport const GraderUsageQuerySchema = z.object({ section: z.enum([\"projects\", \"datasets\", \"runs\"]), after: Id.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const GraderUsagePageSchema = z.object({ teamId: Id, id: Id, section: GraderUsageQuerySchema.shape.section, items: z.array(z.union([\n z.object({ id: Id, name: z.string(), graderRevisions: z.array(z.number().int().positive()), archived: z.boolean() }).strict(),\n z.object({ id: Id, name: z.string(), revision: z.number().int().positive(), graderRevisions: z.array(z.number().int().positive()) }).strict(),\n z.object({ id: Id, name: z.string(), status: z.string() }).strict(),\n])).max(100), nextCursor: Id.nullable() }).strict();\nexport class OpenPondGraderInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async catalog(value: z.input<typeof GraderCatalogQuerySchema> = {}, signal?: AbortSignal) {\n const query = GraderCatalogQuerySchema.parse(value);\n const page = GraderCatalogPageSchema.parse(await this.read(\"\", query, signal));\n if (page.teamId !== this.options.teamId || page.items.length > query.limit || new Set(page.items.map(item => item.reward.id)).size !== page.items.length) throw new Error(\"Grader catalog differs from its requested workspace or bounds.\");\n return page;\n }\n async versions(id: string, query: { beforeRevision?: number; limit?: number } = {}, signal?: AbortSignal) {\n const options = z.object({ beforeRevision: z.number().int().positive().optional(), limit: z.number().int().min(1).max(100).default(25) }).strict().parse(query);\n const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/versions`, options, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.items.length > options.limit || page.items.some((item, index) => item.id !== id || options.beforeRevision && item.revision >= options.beforeRevision || index > 0 && item.revision >= page.items[index - 1]!.revision)) throw new Error(\"Grader versions differ from their requested identity or revision order.\");\n return page;\n }\n async usage(id: string, value: z.input<typeof GraderUsageQuerySchema>, signal?: AbortSignal) {\n const query = GraderUsageQuerySchema.parse(value);\n const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/usage`, query, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.section !== query.section || page.items.length > query.limit) throw new Error(\"Grader usage differs from its requested workspace, identity or bounds.\");\n return page;\n }\n private async read(path: string, query: Record<string, unknown>, signal?: AbortSignal) {\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/learning/read/graders${path}?${params}`, { signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ error: z.string() }).parse(value).error);\n return value;\n }\n}\n","import { contentHash } from \"@openpond/harness\";\n\n/** Draft presentation default. Published keys must retain their released value. */\nexport function graderFeedbackKeyFromName(name: string, rewardId: string): string {\n const slug = name.normalize(\"NFKD\").toLowerCase().replace(/[^a-z0-9]+/g, \"_\").replace(/^_+|_+$/g, \"\");\n const prefix = /^[a-z]/.test(slug) ? slug : `grader_${slug}`;\n return `${(prefix || \"grader\").slice(0, 55).replace(/_+$/g, \"\")}_${contentHash(rewardId).slice(0, 24)}`;\n}\n","import { z } from \"zod\";\nimport { CorrectionVerificationPlanContentSchema, CorrectionVerificationPlanSchema, CorrectionOpportunitySchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema, assertLearningRequestJson } from \"@openpond/evals/learning\";\nimport { OpenPondLearningError, readBoundedLearningResponse, type LearningRequestOptions } from \"./learning-client.js\";\nexport { CorrectionVerificationPlanSchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema } from \"@openpond/evals/learning\";\nexport type { CorrectionVerificationPlan, CorrectionMetricSummary, CorrectionMetricObservation } from \"@openpond/evals/learning\";\nconst id = z.string().trim().min(1).max(500);\nconst ref = z.object({ id, contentHash: z.string().regex(/^[a-f0-9]{64}$/) }).strict();\nexport const CorrectionMetricsReadSchema = z.object({ teamId: id, modelId: id, runId: id.optional(), from: z.string().datetime().optional(), to: z.string().datetime().optional() }).strict();\nexport const CorrectionMetricsCommandSchema = z.discriminatedUnion(\"action\", [\n z.object({ action: z.literal(\"declare_verification\"), teamId: id, operationId: id,\n plan: z.object({\n modelId: CorrectionVerificationPlanContentSchema.shape.modelId,\n classification: CorrectionVerificationPlanContentSchema.shape.classification,\n feedback: CorrectionVerificationPlanContentSchema.shape.feedback,\n evidence: CorrectionVerificationPlanContentSchema.shape.evidence,\n trainingJobId: CorrectionVerificationPlanContentSchema.shape.trainingJobId,\n checkpoint: CorrectionVerificationPlanContentSchema.shape.checkpoint,\n artifact: CorrectionVerificationPlanContentSchema.shape.artifact,\n taskset: CorrectionVerificationPlanContentSchema.shape.taskset,\n checks: CorrectionVerificationPlanContentSchema.shape.checks,\n baselineOperationId: CorrectionVerificationPlanContentSchema.shape.baselineOperationId,\n candidateOperationId: CorrectionVerificationPlanContentSchema.shape.candidateOperationId,\n criterion: CorrectionVerificationPlanContentSchema.shape.criterion,\n }).strict() }).strict(),\n z.object({ action: z.literal(\"link_live_opportunity\"), teamId: id, operationId: id, correction: ref, inferenceRequestId: id,\n grade: z.object({ id, revision: z.number().int().positive() }).strict(), checkIds: z.array(id).min(1).max(1000) }).strict(),\n]);\nexport const CorrectionMetricsDetailSchema = z.object({ summary: CorrectionMetricSummarySchema.nullable(), observations: z.array(CorrectionMetricObservationSchema).max(1000) }).strict();\nexport type CorrectionMetricsRead = z.infer<typeof CorrectionMetricsReadSchema>;\nexport type CorrectionMetricsCommand = z.infer<typeof CorrectionMetricsCommandSchema>;\nexport class OpenPondCorrectionMetricsClient {\n private readonly options: { baseUrl: string; apiKey: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl: string; apiKey: string; fetch?: typeof globalThis.fetch }) {\n if (!options.apiKey.trim()) throw new Error(\"Learning API key is required.\");\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash)\n throw new Error(\"Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.\");\n this.options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n private async request(path: string, teamId: string, init: RequestInit) {\n const response = await (this.options.fetch ?? globalThis.fetch)(`${this.options.baseUrl}${path}`, {\n ...init, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"Content-Type\": \"application/json\", Accept: \"application/json\", \"X-OpenPond-Team-Id\": teamId },\n });\n let payload: unknown;\n try { payload = await readBoundedLearningResponse(response); }\n catch (error) {\n if (error instanceof OpenPondLearningError) throw error;\n throw new OpenPondLearningError(response.ok ? 502 : response.status, \"invalid_response\", \"Correction metrics returned an invalid response.\", null);\n }\n if (!response.ok) {\n const error = z.object({ code: z.string().optional(), error: z.string().optional() }).passthrough().safeParse(payload);\n throw new OpenPondLearningError(response.status, error.success ? error.data.code ?? \"correction_request_failed\" : \"correction_request_failed\",\n error.success ? error.data.error ?? `Correction metrics request failed (${response.status}).` : `Correction metrics request failed (${response.status}).`, payload);\n }\n return payload;\n }\n async read(input: CorrectionMetricsRead, options: LearningRequestOptions = {}) {\n const query = CorrectionMetricsReadSchema.parse(input);\n const result = CorrectionMetricsDetailSchema.parse(await this.request(`/v1/learning/corrections?query=${encodeURIComponent(JSON.stringify(query))}`, query.teamId, { method: \"GET\", signal: options.signal }));\n if (result.summary && (result.summary.scope.teamId !== query.teamId || result.summary.scope.modelId !== query.modelId || query.runId && result.summary.scope.runId !== query.runId)\n || result.observations.some(observation => observation.modelId !== query.modelId || query.runId && observation.trainingJobId !== query.runId))\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction metrics did not match the requested workspace, Model or run.\", null);\n return result;\n }\n async command(input: CorrectionMetricsCommand, options: LearningRequestOptions = {}) {\n const command = CorrectionMetricsCommandSchema.parse(input);\n assertLearningRequestJson(command);\n const payload = await this.request(\"/v1/learning/corrections\", command.teamId, { method: \"POST\", body: JSON.stringify(command), signal: options.signal });\n if (command.action === \"declare_verification\") {\n const result = CorrectionVerificationPlanSchema.parse(payload);\n if (result.teamId !== command.teamId || result.modelId !== command.plan.modelId || result.trainingJobId !== command.plan.trainingJobId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction declaration did not match the requested workspace, Model or run.\", null);\n return result;\n }\n const result = CorrectionOpportunitySchema.parse(payload);\n if (result.correction.id !== command.correction.id || result.correction.contentHash !== command.correction.contentHash || result.attempt.id !== command.inferenceRequestId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction opportunity did not match the declared correction and serving request.\", null);\n return result;\n }\n}\n"],"mappings":"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","names":["id","value","z","CorrectionVerificationPlanSchema","CorrectionMetricSummarySchema","CorrectionMetricObservationSchema","z","result"]}
|
package/dist/model-projects.js
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
ModelStarterAttemptSummarySchema,
|
|
12
12
|
OpenPondModelStarterAttemptError,
|
|
13
13
|
OpenPondModelStarterAttemptsClient
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-5T76GARR.js";
|
|
15
|
+
import "./chunk-3SIGXGAE.js";
|
|
16
16
|
import "./chunk-CL3IOOVL.js";
|
|
17
17
|
import "./chunk-H3JZ3P5T.js";
|
|
18
18
|
import "./chunk-YLJ4XMA6.js";
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModelStarterSchema,
|
|
3
3
|
validateResolvedModelStarter
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-Y3I7SN5W.js";
|
|
5
|
+
import "./chunk-2XLKMZH5.js";
|
|
6
6
|
import "./chunk-TK3DXH7A.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-Z4XGSEKC.js";
|
|
8
|
+
import "./chunk-LIMTJR3A.js";
|
|
9
|
+
import "./chunk-3VGTVZHL.js";
|
|
10
10
|
import "./chunk-Q4TKI2MV.js";
|
|
11
11
|
import "./chunk-H3367ISL.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-B2MKB7NB.js";
|
|
13
|
+
import "./chunk-HRZLFJXX.js";
|
|
14
|
+
import "./chunk-5T76GARR.js";
|
|
15
15
|
import {
|
|
16
16
|
ModelProjectVersionedRefSchema
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-3SIGXGAE.js";
|
|
18
18
|
import "./chunk-CL3IOOVL.js";
|
|
19
19
|
import "./chunk-H3JZ3P5T.js";
|
|
20
20
|
import "./chunk-YLJ4XMA6.js";
|
package/dist/model-starters.js
CHANGED
|
@@ -6,13 +6,15 @@ import {
|
|
|
6
6
|
ModelStarterSchema,
|
|
7
7
|
ResolvedModelStarterSchema,
|
|
8
8
|
createModelStarterCreationRequest,
|
|
9
|
+
createModelTrainingRecipeDefaults,
|
|
9
10
|
modelStarterPrivacyContentHash,
|
|
10
11
|
parseModelStarterCreationRequest,
|
|
11
12
|
prepareModelTrainingDefaults,
|
|
12
13
|
previewModelStarter,
|
|
14
|
+
rebindModelTrainingRecipe,
|
|
13
15
|
validateModelStarterCreation,
|
|
14
16
|
validateResolvedModelStarter
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-Y3I7SN5W.js";
|
|
16
18
|
import {
|
|
17
19
|
ModelStarterEnvironmentAttemptSchema,
|
|
18
20
|
ModelStarterExecutionSchema,
|
|
@@ -31,17 +33,17 @@ import {
|
|
|
31
33
|
validateModelTasksetPackage,
|
|
32
34
|
verifyModelStarterEnvironmentAttempt,
|
|
33
35
|
verifyNativeHarnessExperimentAttempt
|
|
34
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-2XLKMZH5.js";
|
|
35
37
|
import "./chunk-TK3DXH7A.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-Z4XGSEKC.js";
|
|
39
|
+
import "./chunk-LIMTJR3A.js";
|
|
40
|
+
import "./chunk-3VGTVZHL.js";
|
|
39
41
|
import "./chunk-Q4TKI2MV.js";
|
|
40
42
|
import "./chunk-H3367ISL.js";
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-B2MKB7NB.js";
|
|
44
|
+
import "./chunk-HRZLFJXX.js";
|
|
45
|
+
import "./chunk-5T76GARR.js";
|
|
46
|
+
import "./chunk-3SIGXGAE.js";
|
|
45
47
|
import "./chunk-CL3IOOVL.js";
|
|
46
48
|
import "./chunk-H3JZ3P5T.js";
|
|
47
49
|
import "./chunk-YLJ4XMA6.js";
|
|
@@ -62,6 +64,7 @@ export {
|
|
|
62
64
|
createModelStarterCreationRequest,
|
|
63
65
|
createModelStarterExecutionAsset,
|
|
64
66
|
createModelTasksetExecutionResourcesAsset,
|
|
67
|
+
createModelTrainingRecipeDefaults,
|
|
65
68
|
deriveModelTaskset,
|
|
66
69
|
modelStarterExecutionAssetId,
|
|
67
70
|
modelStarterPrivacyContentHash,
|
|
@@ -69,6 +72,7 @@ export {
|
|
|
69
72
|
parseModelStarterCreationRequest,
|
|
70
73
|
prepareModelTrainingDefaults,
|
|
71
74
|
previewModelStarter,
|
|
75
|
+
rebindModelTrainingRecipe,
|
|
72
76
|
resolveModelStarterExecutionAsset,
|
|
73
77
|
resolveModelTasksetExecutionResourcesAsset,
|
|
74
78
|
validateModelStarterCreation,
|
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
verifyHarnessExperimentManifest,
|
|
11
11
|
verifyModelTasksetRunDetails,
|
|
12
12
|
verifyModelTasksetRunResult
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-HRZLFJXX.js";
|
|
14
|
+
import "./chunk-5T76GARR.js";
|
|
15
15
|
import {
|
|
16
16
|
canonicalJson
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-3SIGXGAE.js";
|
|
18
18
|
import "./chunk-CL3IOOVL.js";
|
|
19
19
|
import "./chunk-H3JZ3P5T.js";
|
|
20
20
|
import "./chunk-YLJ4XMA6.js";
|
package/dist/post-training.js
CHANGED
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
postTrainingActive,
|
|
17
17
|
postTrainingRecipe,
|
|
18
18
|
verifyPostTrainingPlan
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-LIMTJR3A.js";
|
|
20
|
+
import "./chunk-3VGTVZHL.js";
|
|
21
|
+
import "./chunk-B2MKB7NB.js";
|
|
22
|
+
import "./chunk-HRZLFJXX.js";
|
|
23
|
+
import "./chunk-5T76GARR.js";
|
|
24
|
+
import "./chunk-3SIGXGAE.js";
|
|
25
25
|
import "./chunk-CL3IOOVL.js";
|
|
26
26
|
import "./chunk-H3JZ3P5T.js";
|
|
27
27
|
import "./chunk-YLJ4XMA6.js";
|
package/dist/taskset-drafts.js
CHANGED
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
TaskDesignProposalSchema,
|
|
5
5
|
TaskExampleProposalSchema,
|
|
6
6
|
TrainingTacticSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-S2IASCGW.js";
|
|
8
8
|
import {
|
|
9
9
|
TasksetPackageReceiptSchema
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HRJKDHHG.js";
|
|
11
11
|
import {
|
|
12
12
|
MAX_TASKSET_DRAFT_EDIT_FILE_BYTES,
|
|
13
13
|
MAX_TASKSET_DRAFT_WORKSPACE_BYTES,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
saveTasksetDraftWorkspaceFile,
|
|
29
29
|
tasksetDraftFromTaskset,
|
|
30
30
|
validateTasksetDraftWorkspace
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-XF3JR72U.js";
|
|
32
32
|
import "./chunk-Z252BNAZ.js";
|
|
33
33
|
import {
|
|
34
34
|
AuthoringProvenanceSchema,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
isTrainingSourceRef,
|
|
57
57
|
validatePortability,
|
|
58
58
|
validateTaskset
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-ONGOAEY6.js";
|
|
60
60
|
import {
|
|
61
61
|
ConnectedDatasetSourceRefSchema,
|
|
62
62
|
CorrectionSignalSchema,
|
|
@@ -112,7 +112,7 @@ import {
|
|
|
112
112
|
UploadedFileDatasetSourceRefSchema,
|
|
113
113
|
assertTasksetCalibrationClosures,
|
|
114
114
|
resolveTasksetCalibrationFixture
|
|
115
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-2XLKMZH5.js";
|
|
116
116
|
import {
|
|
117
117
|
ModelTasksetDraftRequestSchema,
|
|
118
118
|
TasksetDraftFileInfoSchema,
|
|
@@ -120,15 +120,15 @@ import {
|
|
|
120
120
|
TasksetDraftFilePathSchema,
|
|
121
121
|
TasksetDraftFileSchema
|
|
122
122
|
} from "./chunk-TK3DXH7A.js";
|
|
123
|
-
import "./chunk-
|
|
124
|
-
import "./chunk-
|
|
125
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-Z4XGSEKC.js";
|
|
124
|
+
import "./chunk-LIMTJR3A.js";
|
|
125
|
+
import "./chunk-3VGTVZHL.js";
|
|
126
126
|
import "./chunk-Q4TKI2MV.js";
|
|
127
127
|
import "./chunk-H3367ISL.js";
|
|
128
|
-
import "./chunk-
|
|
129
|
-
import "./chunk-
|
|
130
|
-
import "./chunk-
|
|
131
|
-
import "./chunk-
|
|
128
|
+
import "./chunk-B2MKB7NB.js";
|
|
129
|
+
import "./chunk-HRZLFJXX.js";
|
|
130
|
+
import "./chunk-5T76GARR.js";
|
|
131
|
+
import "./chunk-3SIGXGAE.js";
|
|
132
132
|
import "./chunk-CL3IOOVL.js";
|
|
133
133
|
import {
|
|
134
134
|
contentHash,
|
package/dist/taskset-packages.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
inspectModelBatchPackage,
|
|
8
8
|
materializeTasksetDraftWorkspace,
|
|
9
9
|
prepareTasksetDraftSource
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VBVFE33M.js";
|
|
11
11
|
import {
|
|
12
12
|
OpenPondTasksetPackageClient,
|
|
13
13
|
OpenPondTasksetPackageError,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
TasksetPackageReadbackSchema,
|
|
17
17
|
TasksetPackageReceiptSchema,
|
|
18
18
|
TasksetReleasePackageReadbackSchema
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HRJKDHHG.js";
|
|
20
20
|
import {
|
|
21
21
|
ModelBatchReviewInspectionSchema,
|
|
22
22
|
ModelBatchReviewReceiptSchema,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
prepareImportedTasksetPackage,
|
|
28
28
|
projectLearningBatchGraders,
|
|
29
29
|
tasksetPackageSourceId
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-QDYHSJT5.js";
|
|
31
31
|
import {
|
|
32
32
|
AuthoredTasksetFileInventorySchema,
|
|
33
33
|
compileModelTasksetDraftWorkspace,
|
|
@@ -35,8 +35,8 @@ import {
|
|
|
35
35
|
prepareAuthoredTasksetSource,
|
|
36
36
|
prepareModelTasksetDraft,
|
|
37
37
|
publishModelTasksetDraftPackage
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
38
|
+
} from "./chunk-FPA3AVCP.js";
|
|
39
|
+
import "./chunk-XF3JR72U.js";
|
|
40
40
|
import "./chunk-Z252BNAZ.js";
|
|
41
41
|
import {
|
|
42
42
|
materializePortableTasksetRelease,
|
|
@@ -45,8 +45,8 @@ import {
|
|
|
45
45
|
projectPortableTaskRecord,
|
|
46
46
|
projectPreferenceComparisonRelease,
|
|
47
47
|
resolvePortableTasksetRewardExecution
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
48
|
+
} from "./chunk-ATVQQCYN.js";
|
|
49
|
+
import "./chunk-ONGOAEY6.js";
|
|
50
50
|
import {
|
|
51
51
|
MAX_TASKSET_PACKAGE_BYTES,
|
|
52
52
|
TasksetPackageContentSchema,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
tasksetPackageRewardBinding,
|
|
64
64
|
validateTasksetLearningResources,
|
|
65
65
|
validateTasksetPackage
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-2XLKMZH5.js";
|
|
67
67
|
import {
|
|
68
68
|
ModelTasksetAuthoringOwnerSchema,
|
|
69
69
|
ModelTasksetAuthoringSchema,
|
|
@@ -75,15 +75,15 @@ import {
|
|
|
75
75
|
TasksetDraftFilePathSchema,
|
|
76
76
|
TasksetDraftFileSchema
|
|
77
77
|
} from "./chunk-TK3DXH7A.js";
|
|
78
|
-
import "./chunk-
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-Z4XGSEKC.js";
|
|
79
|
+
import "./chunk-LIMTJR3A.js";
|
|
80
|
+
import "./chunk-3VGTVZHL.js";
|
|
81
81
|
import "./chunk-Q4TKI2MV.js";
|
|
82
82
|
import "./chunk-H3367ISL.js";
|
|
83
|
-
import "./chunk-
|
|
84
|
-
import "./chunk-
|
|
85
|
-
import "./chunk-
|
|
86
|
-
import "./chunk-
|
|
83
|
+
import "./chunk-B2MKB7NB.js";
|
|
84
|
+
import "./chunk-HRZLFJXX.js";
|
|
85
|
+
import "./chunk-5T76GARR.js";
|
|
86
|
+
import "./chunk-3SIGXGAE.js";
|
|
87
87
|
import "./chunk-CL3IOOVL.js";
|
|
88
88
|
import "./chunk-H3JZ3P5T.js";
|
|
89
89
|
import "./chunk-YLJ4XMA6.js";
|