openpond-sdk 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MODEL_STARTERS.md +2 -0
- package/README.md +16 -0
- package/dist/chunk-KLX6OVHR.js +359 -0
- package/dist/chunk-KLX6OVHR.js.map +7 -0
- package/dist/{chunk-QABCKPW6.js → chunk-TQ5ASK7D.js} +4 -4
- package/dist/{chunk-IKTZ2CD4.js → chunk-XR6CLSCS.js} +85 -43
- package/dist/chunk-XR6CLSCS.js.map +7 -0
- package/dist/chunk-ZV2BLO3D.js +123 -0
- package/dist/chunk-ZV2BLO3D.js.map +7 -0
- package/dist/dataset-workspaces.js +3 -3
- package/dist/experiments.js +50 -0
- package/dist/experiments.js.map +7 -0
- package/dist/index.js +12 -3
- package/dist/index.js.map +2 -2
- package/dist/learning.js +3 -3
- package/dist/model-starter-attempts.js +3 -1
- package/dist/model-taskset-runs.js +19 -113
- package/dist/model-taskset-runs.js.map +4 -4
- package/dist/taskset-drafts.js +2 -2
- package/dist/taskset-packages.js +2 -2
- package/dist/types/packages/sdk/src/experiment-client.d.ts +2002 -0
- package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/experiment-contracts.d.ts +256 -0
- package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/experiment-field-mappings.d.ts +43 -0
- package/dist/types/packages/sdk/src/experiment-field-mappings.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +79 -0
- package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +192 -0
- package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/experiments.d.ts +6 -0
- package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/index.d.ts +2 -0
- package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +123 -0
- package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starters.d.ts +2 -0
- package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +7 -0
- package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +9 -0
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +2 -0
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +3 -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 +2 -0
- 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 +1 -0
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
- package/package.json +6 -2
- package/dist/chunk-IKTZ2CD4.js.map +0 -7
- /package/dist/{chunk-QABCKPW6.js.map → chunk-TQ5ASK7D.js.map} +0 -0
package/dist/learning.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ModelInitialLearningSchema
|
|
3
|
-
} from "./chunk-3KXDH6OB.js";
|
|
4
1
|
import {
|
|
5
2
|
LearningBatchPublicationResultSchema,
|
|
6
3
|
LearningBatchPublicationSchema,
|
|
@@ -16,6 +13,9 @@ import {
|
|
|
16
13
|
assertLearningCredentialExpiry,
|
|
17
14
|
createSourceCredentialRequest
|
|
18
15
|
} from "./chunk-K4C5QOSV.js";
|
|
16
|
+
import {
|
|
17
|
+
ModelInitialLearningSchema
|
|
18
|
+
} from "./chunk-3KXDH6OB.js";
|
|
19
19
|
import "./chunk-Y4NGWGTA.js";
|
|
20
20
|
import {
|
|
21
21
|
contentHash
|
|
@@ -11,9 +11,11 @@ import {
|
|
|
11
11
|
ModelStarterAttemptSummarySchema,
|
|
12
12
|
OpenPondModelStarterAttemptError,
|
|
13
13
|
OpenPondModelStarterAttemptsClient
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-XR6CLSCS.js";
|
|
15
15
|
import "./chunk-TCHAWJMB.js";
|
|
16
16
|
import "./chunk-3KXDH6OB.js";
|
|
17
|
+
import "./chunk-Y4NGWGTA.js";
|
|
18
|
+
import "./chunk-QUOW6URQ.js";
|
|
17
19
|
export {
|
|
18
20
|
EvaluationMessagesSchema,
|
|
19
21
|
EvaluationProjectContextSchema,
|
|
@@ -1,119 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
ModelTasksetRunDetailsSchema,
|
|
3
|
+
ModelTasksetRunListQuerySchema,
|
|
4
|
+
ModelTasksetRunPageSchema,
|
|
5
|
+
ModelTasksetRunPolicySchema,
|
|
6
|
+
ModelTasksetRunRequestSchema,
|
|
7
|
+
ModelTasksetRunResultSchema,
|
|
8
|
+
ModelTasksetRunSummarySchema,
|
|
9
|
+
verifyModelTasksetRunDetails,
|
|
10
|
+
verifyModelTasksetRunResult
|
|
11
|
+
} from "./chunk-ZV2BLO3D.js";
|
|
12
|
+
import "./chunk-XR6CLSCS.js";
|
|
6
13
|
import {
|
|
7
|
-
|
|
8
|
-
canonicalJson,
|
|
9
|
-
canonicalSha256
|
|
14
|
+
canonicalJson
|
|
10
15
|
} from "./chunk-TCHAWJMB.js";
|
|
11
16
|
import "./chunk-3KXDH6OB.js";
|
|
12
17
|
import "./chunk-Y4NGWGTA.js";
|
|
13
|
-
import
|
|
14
|
-
assertContentHash
|
|
15
|
-
} from "./chunk-QUOW6URQ.js";
|
|
18
|
+
import "./chunk-QUOW6URQ.js";
|
|
16
19
|
|
|
17
20
|
// src/model-taskset-runs.ts
|
|
18
|
-
import { z as z2 } from "zod";
|
|
19
|
-
|
|
20
|
-
// src/model-taskset-runs-contracts.ts
|
|
21
21
|
import { z } from "zod";
|
|
22
|
-
import { TasksetRunManifestSchema, TasksetRunMemberSchema, TasksetMetricResultSchema, assertTasksetMetricResult, orderTasksetRunReceipts } from "@openpond/evals/metrics";
|
|
23
|
-
import { AttemptReceiptSchema } from "@openpond/evals/runs";
|
|
24
22
|
var IdSchema = z.string().trim().min(1).max(200);
|
|
25
|
-
var HashSchema = z.string().regex(/^[a-f0-9]{64}$/);
|
|
26
|
-
var ModelTasksetRunPolicySchema = z.discriminatedUnion("kind", [
|
|
27
|
-
ModelStarterAttemptPolicySchema.options[0],
|
|
28
|
-
z.object({ kind: z.literal("fixture") }).strict()
|
|
29
|
-
]);
|
|
30
|
-
var ModelTasksetRunRequestSchema = z.object({
|
|
31
|
-
schemaVersion: z.literal("openpond.modelTasksetRunRequest.v1"),
|
|
32
|
-
operationId: IdSchema,
|
|
33
|
-
teamId: IdSchema,
|
|
34
|
-
modelProjectId: IdSchema.nullable(),
|
|
35
|
-
project: EvaluationProjectContextSchema.optional(),
|
|
36
|
-
taskset: ModelProjectVersionedRefSchema,
|
|
37
|
-
policy: ModelTasksetRunPolicySchema,
|
|
38
|
-
population: z.array(TasksetRunMemberSchema).min(1).max(1e4)
|
|
39
|
-
}).strict().superRefine((value, context) => {
|
|
40
|
-
if (new Set(value.population.map((member) => member.receiptId)).size !== value.population.length) context.addIssue({ code: "custom", path: ["population"], message: "Run receipt identities must be unique." });
|
|
41
|
-
if (value.population.some((member) => member.fixtureId !== null !== (value.policy.kind === "fixture"))) context.addIssue({ code: "custom", path: ["population"], message: "Only fixture runs require a fixture identity for every member." });
|
|
42
|
-
if (value.population.some((member) => !/^(0|[1-9][0-9]*)$/.test(member.seed) || Number(member.seed) > 2147483647)) context.addIssue({ code: "custom", path: ["population"], message: "Hosted environment seeds must be integers from 0 to 2147483647." });
|
|
43
|
-
});
|
|
44
|
-
var ModelTasksetRunSummarySchema = z.object({
|
|
45
|
-
schemaVersion: z.literal("openpond.modelTasksetRunSummary.v1"),
|
|
46
|
-
id: IdSchema,
|
|
47
|
-
revision: z.number().int().positive(),
|
|
48
|
-
teamId: IdSchema,
|
|
49
|
-
modelProjectId: IdSchema.nullable(),
|
|
50
|
-
project: EvaluationProjectContextSchema.optional(),
|
|
51
|
-
operationId: IdSchema,
|
|
52
|
-
taskset: ModelProjectVersionedRefSchema,
|
|
53
|
-
policyKind: z.enum(["hosted_chat", "fixture"]),
|
|
54
|
-
manifestHash: HashSchema,
|
|
55
|
-
status: z.enum(["queued", "running", "cancelling", "completed", "failed", "cancelled"]),
|
|
56
|
-
totalCount: z.number().int().min(1).max(1e4),
|
|
57
|
-
counts: z.object({ pending: z.number().int().nonnegative(), running: z.number().int().nonnegative(), completed: z.number().int().nonnegative(), failed: z.number().int().nonnegative(), cancelled: z.number().int().nonnegative() }).strict(),
|
|
58
|
-
createdAt: z.iso.datetime(),
|
|
59
|
-
startedAt: z.iso.datetime().nullable(),
|
|
60
|
-
completedAt: z.iso.datetime().nullable(),
|
|
61
|
-
cleanupComplete: z.boolean(),
|
|
62
|
-
resultAvailable: z.boolean(),
|
|
63
|
-
score: z.number().min(0).max(1).nullable(),
|
|
64
|
-
metricName: z.string().min(1).max(240),
|
|
65
|
-
error: z.object({ code: IdSchema, message: z.string().max(2e3) }).strict().nullable()
|
|
66
|
-
}).strict().superRefine((value, context) => {
|
|
67
|
-
if (Object.values(value.counts).reduce((sum, count) => sum + count, 0) !== value.totalCount) context.addIssue({ code: "custom", path: ["counts"], message: "Run counts must account for the complete population." });
|
|
68
|
-
if (value.status !== "completed" && value.score !== null) context.addIssue({ code: "custom", path: ["score"], message: "Only completed evaluations publish a metric value." });
|
|
69
|
-
if (["completed", "failed", "cancelled"].includes(value.status) && (!value.completedAt || value.counts.pending || value.counts.running)) context.addIssue({ code: "custom", message: "Terminal runs require complete population accounting." });
|
|
70
|
-
if (value.status === "cancelled" && !value.cleanupComplete) context.addIssue({ code: "custom", message: "Cancelled runs require confirmed cleanup." });
|
|
71
|
-
if (value.resultAvailable && !["completed", "failed", "cancelled"].includes(value.status)) context.addIssue({ code: "custom", message: "Run results require terminal population accounting." });
|
|
72
|
-
if (value.status === "completed" && (!value.cleanupComplete || !value.resultAvailable)) context.addIssue({ code: "custom", message: "Completed evaluations require retained results and confirmed cleanup." });
|
|
73
|
-
});
|
|
74
|
-
var ModelTasksetRunDetailsSchema = z.object({
|
|
75
|
-
summary: ModelTasksetRunSummarySchema,
|
|
76
|
-
request: ModelTasksetRunRequestSchema,
|
|
77
|
-
manifest: TasksetRunManifestSchema,
|
|
78
|
-
policySnapshot: ModelStarterAttemptSummarySchema.shape.policySnapshot
|
|
79
|
-
}).strict();
|
|
80
|
-
var ModelTasksetRunListQuerySchema = z.object({ modelProjectId: IdSchema.optional(), projectId: EvaluationProjectContextSchema.shape.id.optional(), afterId: IdSchema.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();
|
|
81
|
-
var ModelTasksetRunPageSchema = z.object({ items: z.array(ModelTasksetRunSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();
|
|
82
|
-
var ModelTasksetRunResultSchema = z.object({
|
|
83
|
-
schemaVersion: z.literal("openpond.modelTasksetRunResult.v1"),
|
|
84
|
-
run: ModelTasksetRunDetailsSchema,
|
|
85
|
-
receipts: z.array(AttemptReceiptSchema).min(1).max(1e4),
|
|
86
|
-
metric: TasksetMetricResultSchema.nullable(),
|
|
87
|
-
contentHash: HashSchema
|
|
88
|
-
}).strict();
|
|
89
|
-
async function verifyModelTasksetRunDetails(value) {
|
|
90
|
-
const result = ModelTasksetRunDetailsSchema.parse(value);
|
|
91
|
-
const { summary, request, manifest, policySnapshot } = result;
|
|
92
|
-
assertContentHash(manifest, "Taskset run manifest");
|
|
93
|
-
if (manifest.contentHash !== summary.manifestHash || manifest.id !== summary.id || manifest.createdAt !== summary.createdAt || summary.teamId !== request.teamId || summary.modelProjectId !== request.modelProjectId || canonicalJson(summary.project ?? null) !== canonicalJson(request.project ?? null) || canonicalJson(manifest.metadata.project ?? null) !== canonicalJson(request.project ?? null) || summary.operationId !== request.operationId || summary.policyKind !== request.policy.kind || summary.totalCount !== request.population.length || summary.metricName !== manifest.metricPolicy.primaryMetric || canonicalJson(summary.taskset) !== canonicalJson(request.taskset) || manifest.tasksetRelease.id !== request.taskset.id || manifest.tasksetRelease.contentHash !== request.taskset.contentHash || canonicalJson(manifest.population) !== canonicalJson(request.population)) throw new Error("Evaluation run differs from its admitted request or manifest.");
|
|
94
|
-
if (request.policy.kind === "fixture") {
|
|
95
|
-
if (manifest.policy.kind !== "fixture" || policySnapshot !== null) throw new Error("Fixture checks cannot claim a model identity.");
|
|
96
|
-
} else if (manifest.policy.kind !== "model" || !policySnapshot || policySnapshot.modelId !== request.policy.modelId || manifest.policy.model.provider !== policySnapshot.provider || manifest.policy.model.model !== policySnapshot.upstreamModelId || manifest.policy.model.revision !== null || manifest.policy.model.artifactHash !== null || manifest.policy.model.tokenizerRevision !== null || manifest.policy.model.chatTemplateHash !== null || manifest.policy.configurationHash !== await canonicalSha256({ policy: request.policy, snapshot: policySnapshot })) throw new Error("Evaluation model differs from its admitted policy.");
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
async function verifyModelTasksetRunResult(value) {
|
|
100
|
-
const result = ModelTasksetRunResultSchema.parse(value);
|
|
101
|
-
const { contentHash: actual, ...content } = result;
|
|
102
|
-
if (await canonicalSha256(content) !== actual) throw new Error("Evaluation result integrity failed.");
|
|
103
|
-
const { summary, manifest } = await verifyModelTasksetRunDetails(result.run);
|
|
104
|
-
if (!summary.resultAvailable || !["completed", "failed", "cancelled"].includes(summary.status)) throw new Error("Evaluation result is not terminal.");
|
|
105
|
-
const ordered = orderTasksetRunReceipts(manifest, result.receipts);
|
|
106
|
-
if (canonicalJson(ordered) !== canonicalJson(result.receipts)) throw new Error("Evaluation receipts differ from the admitted order.");
|
|
107
|
-
if (summary.status === "completed" !== (result.metric !== null)) throw new Error("Only completed evaluations retain a metric.");
|
|
108
|
-
if (result.metric) {
|
|
109
|
-
assertTasksetMetricResult(result.metric);
|
|
110
|
-
if (result.metric.runManifest.id !== manifest.id || result.metric.runManifest.contentHash !== manifest.contentHash || canonicalJson(result.metric.tasksetRelease) !== canonicalJson(manifest.tasksetRelease) || canonicalJson(result.metric.policy) !== canonicalJson(manifest.metricPolicy) || canonicalJson(result.metric.receiptRefs) !== canonicalJson(result.receipts.map(({ id, contentHash }) => ({ id, contentHash }))) || result.metric.value !== summary.score) throw new Error("Evaluation metric differs from its admitted run or receipt population.");
|
|
111
|
-
}
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// src/model-taskset-runs.ts
|
|
116
|
-
var IdSchema2 = z2.string().trim().min(1).max(200);
|
|
117
23
|
var OpenPondModelTasksetRunError = class extends Error {
|
|
118
24
|
constructor(status, code, message) {
|
|
119
25
|
super(message);
|
|
@@ -140,17 +46,17 @@ var OpenPondModelTasksetRunsClient = class {
|
|
|
140
46
|
return result;
|
|
141
47
|
}
|
|
142
48
|
async get(id, options = {}) {
|
|
143
|
-
const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(
|
|
49
|
+
const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}`, "GET", void 0, options.signal));
|
|
144
50
|
this.#scope(result.summary, id);
|
|
145
51
|
return result;
|
|
146
52
|
}
|
|
147
53
|
async cancel(id, options = {}) {
|
|
148
|
-
const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(
|
|
54
|
+
const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/cancel`, "POST", void 0, options.signal));
|
|
149
55
|
this.#scope(result.summary, id);
|
|
150
56
|
return result;
|
|
151
57
|
}
|
|
152
58
|
async result(id, options = {}) {
|
|
153
|
-
const result = await verifyModelTasksetRunResult(await this.#request(`/${encodeURIComponent(
|
|
59
|
+
const result = await verifyModelTasksetRunResult(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/result`, "GET", void 0, options.signal));
|
|
154
60
|
this.#scope(result.run.summary, id);
|
|
155
61
|
return result;
|
|
156
62
|
}
|
|
@@ -161,8 +67,8 @@ var OpenPondModelTasksetRunsClient = class {
|
|
|
161
67
|
const result = ModelTasksetRunPageSchema.parse(await this.#request(`?${params}`, "GET", void 0, options.signal));
|
|
162
68
|
if (result.items.length > query.limit || new Set(result.items.map((item) => item.id)).size !== result.items.length || result.items.some((item) => {
|
|
163
69
|
this.#scope(item);
|
|
164
|
-
return query.modelProjectId !== void 0 && item.modelProjectId !== query.modelProjectId
|
|
165
|
-
})) throw new OpenPondModelTasksetRunError(502, "evaluation_page_mismatch", "Evaluation page differs from the selected
|
|
70
|
+
return query.modelProjectId !== void 0 && item.modelProjectId !== query.modelProjectId;
|
|
71
|
+
})) throw new OpenPondModelTasksetRunError(502, "evaluation_page_mismatch", "Evaluation page differs from the selected scope.");
|
|
166
72
|
return result;
|
|
167
73
|
}
|
|
168
74
|
#scope(summary, id) {
|
|
@@ -178,7 +84,7 @@ var OpenPondModelTasksetRunsClient = class {
|
|
|
178
84
|
});
|
|
179
85
|
const value = await response.json();
|
|
180
86
|
if (!response.ok) {
|
|
181
|
-
const error =
|
|
87
|
+
const error = z.object({ code: z.string(), message: z.string() }).safeParse(value);
|
|
182
88
|
throw new OpenPondModelTasksetRunError(response.status, error.success ? error.data.code : "evaluation_request_failed", error.success ? error.data.message : "Evaluation request failed.");
|
|
183
89
|
}
|
|
184
90
|
return value;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/model-taskset-runs.ts"
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { canonicalJson } from \"./protocol.js\";\nimport { ModelTasksetRunRequestSchema, ModelTasksetRunListQuerySchema, ModelTasksetRunPageSchema, verifyModelTasksetRunDetails, verifyModelTasksetRunResult, type ModelTasksetRunSummary } from \"./model-taskset-runs-contracts.js\";\nexport * from \"./model-taskset-runs-contracts.js\";\n\nconst IdSchema = z.string().trim().min(1).max(200);\nexport class OpenPondModelTasksetRunError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); this.name = \"OpenPondModelTasksetRunError\"; }\n}\n\nexport class OpenPondModelTasksetRunsClient {\n readonly #options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch }) {\n const url = new URL(options.baseUrl);\n if (!options.apiKey.trim() || !options.teamId.trim() || ![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error(\"Evaluation runs require an HTTP(S) endpoint and workspace credentials.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n async create(value: z.input<typeof ModelTasksetRunRequestSchema>, options: { signal?: AbortSignal } = {}) {\n const request = ModelTasksetRunRequestSchema.parse(value);\n if (request.teamId !== this.#options.teamId) throw new Error(\"Evaluation belongs to another workspace.\");\n const result = await verifyModelTasksetRunDetails(await this.#request(\"\", \"POST\", request, options.signal));\n this.#scope(result.summary);\n if (canonicalJson(result.request) !== canonicalJson(request)) throw new OpenPondModelTasksetRunError(502, \"evaluation_request_mismatch\", \"Evaluation differs from the submitted request.\");\n return result;\n }\n async get(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}`, \"GET\", undefined, options.signal));\n this.#scope(result.summary, id);\n return result;\n }\n async cancel(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/cancel`, \"POST\", undefined, options.signal));\n this.#scope(result.summary, id);\n return result;\n }\n async result(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunResult(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/result`, \"GET\", undefined, options.signal));\n this.#scope(result.run.summary, id);\n return result;\n }\n async list(value: z.input<typeof ModelTasksetRunListQuerySchema>, options: { signal?: AbortSignal } = {}) {\n const query = ModelTasksetRunListQuerySchema.parse(value);\n const params = new URLSearchParams({ ...(query.modelProjectId ? { modelProjectId: query.modelProjectId } : {}), ...(query.projectId ? { projectId: query.projectId } : {}), limit: String(query.limit) });\n if (query.afterId) params.set(\"afterId\", query.afterId);\n const result = ModelTasksetRunPageSchema.parse(await this.#request(`?${params}`, \"GET\", undefined, options.signal));\n if (result.items.length > query.limit || new Set(result.items.map(item => item.id)).size !== result.items.length || result.items.some(item => { this.#scope(item); return (query.modelProjectId !== undefined && item.modelProjectId !== query.modelProjectId) || (query.projectId !== undefined && item.project?.id !== query.projectId); })) throw new OpenPondModelTasksetRunError(502, \"evaluation_page_mismatch\", \"Evaluation page differs from the selected model.\");\n return result;\n }\n #scope(summary: ModelTasksetRunSummary, id?: string) {\n if (summary.teamId !== this.#options.teamId || (id && summary.id !== id)) throw new OpenPondModelTasksetRunError(502, \"evaluation_identity_mismatch\", \"Evaluation belongs to another identity or workspace.\");\n }\n async #request(path: string, method: string, body: unknown, signal?: AbortSignal): Promise<unknown> {\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/model-taskset-runs${path}`, {\n method, headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"X-OpenPond-Team-Id\": this.#options.teamId, \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n ...(body === undefined ? {} : { body: JSON.stringify(body) }), signal, redirect: \"error\",\n });\n const value = await response.json();\n if (!response.ok) {\n const error = z.object({ code: z.string(), message: z.string() }).safeParse(value);\n throw new OpenPondModelTasksetRunError(response.status, error.success ? error.data.code : \"evaluation_request_failed\", error.success ? error.data.message : \"Evaluation request failed.\");\n }\n return value;\n }\n}\n", "import { z } from \"zod\";\nimport { EvaluationProjectContextSchema } from \"./evaluation-project-context.js\";\nimport { assertContentHash } from \"@openpond/harness\";\nimport { TasksetRunManifestSchema, TasksetRunMemberSchema, TasksetMetricResultSchema, assertTasksetMetricResult, orderTasksetRunReceipts } from \"@openpond/evals/metrics\";\nimport { AttemptReceiptSchema } from \"@openpond/evals/runs\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { ModelStarterAttemptPolicySchema, ModelStarterAttemptSummarySchema } from \"./model-starter-attempts.js\";\nimport { canonicalJson, canonicalSha256 } from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(200);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ModelTasksetRunPolicySchema = z.discriminatedUnion(\"kind\", [\n ModelStarterAttemptPolicySchema.options[0],\n z.object({ kind: z.literal(\"fixture\") }).strict(),\n]);\nexport const ModelTasksetRunRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunRequest.v1\"),\n operationId: IdSchema, teamId: IdSchema, modelProjectId: IdSchema.nullable(),\n project: EvaluationProjectContextSchema.optional(),\n taskset: ModelProjectVersionedRefSchema, policy: ModelTasksetRunPolicySchema,\n population: z.array(TasksetRunMemberSchema).min(1).max(10_000),\n}).strict().superRefine((value, context) => {\n if (new Set(value.population.map(member => member.receiptId)).size !== value.population.length) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Run receipt identities must be unique.\" });\n if (value.population.some(member => (member.fixtureId !== null) !== (value.policy.kind === \"fixture\"))) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Only fixture runs require a fixture identity for every member.\" });\n if (value.population.some(member => !/^(0|[1-9][0-9]*)$/.test(member.seed) || Number(member.seed) > 2_147_483_647)) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Hosted environment seeds must be integers from 0 to 2147483647.\" });\n});\nexport type ModelTasksetRunRequest = z.infer<typeof ModelTasksetRunRequestSchema>;\nexport const ModelTasksetRunSummarySchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunSummary.v1\"),\n id: IdSchema, revision: z.number().int().positive(), teamId: IdSchema, modelProjectId: IdSchema.nullable(),\n project: EvaluationProjectContextSchema.optional(),\n operationId: IdSchema, taskset: ModelProjectVersionedRefSchema, policyKind: z.enum([\"hosted_chat\", \"fixture\"]),\n manifestHash: HashSchema,\n status: z.enum([\"queued\", \"running\", \"cancelling\", \"completed\", \"failed\", \"cancelled\"]),\n totalCount: z.number().int().min(1).max(10_000),\n counts: z.object({ pending: z.number().int().nonnegative(), running: z.number().int().nonnegative(), completed: z.number().int().nonnegative(), failed: z.number().int().nonnegative(), cancelled: z.number().int().nonnegative() }).strict(),\n createdAt: z.iso.datetime(), startedAt: z.iso.datetime().nullable(), completedAt: z.iso.datetime().nullable(),\n cleanupComplete: z.boolean(), resultAvailable: z.boolean(), score: z.number().min(0).max(1).nullable(),\n metricName: z.string().min(1).max(240),\n error: z.object({ code: IdSchema, message: z.string().max(2_000) }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if (Object.values(value.counts).reduce((sum, count) => sum + count, 0) !== value.totalCount) context.addIssue({ code: \"custom\", path: [\"counts\"], message: \"Run counts must account for the complete population.\" });\n if (value.status !== \"completed\" && value.score !== null) context.addIssue({ code: \"custom\", path: [\"score\"], message: \"Only completed evaluations publish a metric value.\" });\n if ([\"completed\", \"failed\", \"cancelled\"].includes(value.status) && (!value.completedAt || value.counts.pending || value.counts.running)) context.addIssue({ code: \"custom\", message: \"Terminal runs require complete population accounting.\" });\n if (value.status === \"cancelled\" && !value.cleanupComplete) context.addIssue({ code: \"custom\", message: \"Cancelled runs require confirmed cleanup.\" });\n if (value.resultAvailable && ![\"completed\", \"failed\", \"cancelled\"].includes(value.status)) context.addIssue({ code: \"custom\", message: \"Run results require terminal population accounting.\" });\n if (value.status === \"completed\" && (!value.cleanupComplete || !value.resultAvailable)) context.addIssue({ code: \"custom\", message: \"Completed evaluations require retained results and confirmed cleanup.\" });\n});\nexport type ModelTasksetRunSummary = z.infer<typeof ModelTasksetRunSummarySchema>;\nexport const ModelTasksetRunDetailsSchema = z.object({\n summary: ModelTasksetRunSummarySchema,\n request: ModelTasksetRunRequestSchema,\n manifest: TasksetRunManifestSchema,\n policySnapshot: ModelStarterAttemptSummarySchema.shape.policySnapshot,\n}).strict();\nexport type ModelTasksetRunDetails = z.infer<typeof ModelTasksetRunDetailsSchema>;\nexport const ModelTasksetRunListQuerySchema = z.object({ modelProjectId: IdSchema.optional(), projectId: EvaluationProjectContextSchema.shape.id.optional(), afterId: IdSchema.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const ModelTasksetRunPageSchema = z.object({ items: z.array(ModelTasksetRunSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();\nexport const ModelTasksetRunResultSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunResult.v1\"),\n run: ModelTasksetRunDetailsSchema,\n receipts: z.array(AttemptReceiptSchema).min(1).max(10_000),\n metric: TasksetMetricResultSchema.nullable(),\n contentHash: HashSchema,\n}).strict();\nexport type ModelTasksetRunResult = z.infer<typeof ModelTasksetRunResultSchema>;\n\n/** Server artifact ownership authenticates the producer. These checks bind all\n * portable projections to the admitted request, population and policy. */\nexport async function verifyModelTasksetRunDetails(value: unknown): Promise<ModelTasksetRunDetails> {\n const result = ModelTasksetRunDetailsSchema.parse(value);\n const { summary, request, manifest, policySnapshot } = result;\n assertContentHash(manifest, \"Taskset run manifest\");\n if (manifest.contentHash !== summary.manifestHash\n || manifest.id !== summary.id || manifest.createdAt !== summary.createdAt || summary.teamId !== request.teamId || summary.modelProjectId !== request.modelProjectId\n || canonicalJson(summary.project ?? null) !== canonicalJson(request.project ?? null)\n || canonicalJson(manifest.metadata.project ?? null) !== canonicalJson(request.project ?? null)\n || summary.operationId !== request.operationId || summary.policyKind !== request.policy.kind\n || summary.totalCount !== request.population.length || summary.metricName !== manifest.metricPolicy.primaryMetric\n || canonicalJson(summary.taskset) !== canonicalJson(request.taskset)\n || manifest.tasksetRelease.id !== request.taskset.id || manifest.tasksetRelease.contentHash !== request.taskset.contentHash\n || canonicalJson(manifest.population) !== canonicalJson(request.population)) throw new Error(\"Evaluation run differs from its admitted request or manifest.\");\n if (request.policy.kind === \"fixture\") {\n if (manifest.policy.kind !== \"fixture\" || policySnapshot !== null) throw new Error(\"Fixture checks cannot claim a model identity.\");\n } else if (manifest.policy.kind !== \"model\" || !policySnapshot || policySnapshot.modelId !== request.policy.modelId\n || manifest.policy.model.provider !== policySnapshot.provider || manifest.policy.model.model !== policySnapshot.upstreamModelId\n || manifest.policy.model.revision !== null || manifest.policy.model.artifactHash !== null || manifest.policy.model.tokenizerRevision !== null || manifest.policy.model.chatTemplateHash !== null\n || manifest.policy.configurationHash !== await canonicalSha256({ policy: request.policy, snapshot: policySnapshot })) throw new Error(\"Evaluation model differs from its admitted policy.\");\n return result;\n}\n\nexport async function verifyModelTasksetRunResult(value: unknown): Promise<ModelTasksetRunResult> {\n const result = ModelTasksetRunResultSchema.parse(value);\n const { contentHash: actual, ...content } = result;\n if (await canonicalSha256(content) !== actual) throw new Error(\"Evaluation result integrity failed.\");\n const { summary, manifest } = await verifyModelTasksetRunDetails(result.run);\n if (!summary.resultAvailable || ![\"completed\", \"failed\", \"cancelled\"].includes(summary.status)) throw new Error(\"Evaluation result is not terminal.\");\n const ordered = orderTasksetRunReceipts(manifest, result.receipts);\n if (canonicalJson(ordered) !== canonicalJson(result.receipts)) throw new Error(\"Evaluation receipts differ from the admitted order.\");\n if ((summary.status === \"completed\") !== (result.metric !== null)) throw new Error(\"Only completed evaluations retain a metric.\");\n if (result.metric) {\n assertTasksetMetricResult(result.metric);\n if (result.metric.runManifest.id !== manifest.id || result.metric.runManifest.contentHash !== manifest.contentHash\n || canonicalJson(result.metric.tasksetRelease) !== canonicalJson(manifest.tasksetRelease)\n || canonicalJson(result.metric.policy) !== canonicalJson(manifest.metricPolicy)\n || canonicalJson(result.metric.receiptRefs) !== canonicalJson(result.receipts.map(({ id, contentHash }) => ({ id, contentHash })))\n || result.metric.value !== summary.score) throw new Error(\"Evaluation metric differs from its admitted run or receipt population.\");\n }\n return result;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
3
|
+
"sources": ["../src/model-taskset-runs.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\nimport { canonicalJson } from \"./protocol.js\";\nimport { ModelTasksetRunRequestSchema, ModelTasksetRunListQuerySchema, ModelTasksetRunPageSchema, verifyModelTasksetRunDetails, verifyModelTasksetRunResult, type ModelTasksetRunSummary } from \"./model-taskset-runs-contracts.js\";\nexport * from \"./model-taskset-runs-contracts.js\";\n\nconst IdSchema = z.string().trim().min(1).max(200);\nexport class OpenPondModelTasksetRunError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); this.name = \"OpenPondModelTasksetRunError\"; }\n}\n\nexport class OpenPondModelTasksetRunsClient {\n readonly #options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch }) {\n const url = new URL(options.baseUrl);\n if (!options.apiKey.trim() || !options.teamId.trim() || ![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error(\"Evaluation runs require an HTTP(S) endpoint and workspace credentials.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n async create(value: z.input<typeof ModelTasksetRunRequestSchema>, options: { signal?: AbortSignal } = {}) {\n const request = ModelTasksetRunRequestSchema.parse(value);\n if (request.teamId !== this.#options.teamId) throw new Error(\"Evaluation belongs to another workspace.\");\n const result = await verifyModelTasksetRunDetails(await this.#request(\"\", \"POST\", request, options.signal));\n this.#scope(result.summary);\n if (canonicalJson(result.request) !== canonicalJson(request)) throw new OpenPondModelTasksetRunError(502, \"evaluation_request_mismatch\", \"Evaluation differs from the submitted request.\");\n return result;\n }\n async get(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}`, \"GET\", undefined, options.signal));\n this.#scope(result.summary, id);\n return result;\n }\n async cancel(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunDetails(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/cancel`, \"POST\", undefined, options.signal));\n this.#scope(result.summary, id);\n return result;\n }\n async result(id: string, options: { signal?: AbortSignal } = {}) {\n const result = await verifyModelTasksetRunResult(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/result`, \"GET\", undefined, options.signal));\n this.#scope(result.run.summary, id);\n return result;\n }\n async list(value: z.input<typeof ModelTasksetRunListQuerySchema>, options: { signal?: AbortSignal } = {}) {\n const query = ModelTasksetRunListQuerySchema.parse(value);\n const params = new URLSearchParams({ ...(query.modelProjectId ? { modelProjectId: query.modelProjectId } : {}), ...(query.projectId ? { projectId: query.projectId } : {}), limit: String(query.limit) });\n if (query.afterId) params.set(\"afterId\", query.afterId);\n const result = ModelTasksetRunPageSchema.parse(await this.#request(`?${params}`, \"GET\", undefined, options.signal));\n // Project membership may be an explicit run link or a linked model\n // configuration. Only the host can verify those associations; the SDK\n // still enforces workspace identity and an exact model filter here.\n if (result.items.length > query.limit || new Set(result.items.map(item => item.id)).size !== result.items.length || result.items.some(item => { this.#scope(item); return query.modelProjectId !== undefined && item.modelProjectId !== query.modelProjectId; })) throw new OpenPondModelTasksetRunError(502, \"evaluation_page_mismatch\", \"Evaluation page differs from the selected scope.\");\n return result;\n }\n #scope(summary: ModelTasksetRunSummary, id?: string) {\n if (summary.teamId !== this.#options.teamId || (id && summary.id !== id)) throw new OpenPondModelTasksetRunError(502, \"evaluation_identity_mismatch\", \"Evaluation belongs to another identity or workspace.\");\n }\n async #request(path: string, method: string, body: unknown, signal?: AbortSignal): Promise<unknown> {\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/model-taskset-runs${path}`, {\n method, headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"X-OpenPond-Team-Id\": this.#options.teamId, \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n ...(body === undefined ? {} : { body: JSON.stringify(body) }), signal, redirect: \"error\",\n });\n const value = await response.json();\n if (!response.ok) {\n const error = z.object({ code: z.string(), message: z.string() }).safeParse(value);\n throw new OpenPondModelTasksetRunError(response.status, error.success ? error.data.code : \"evaluation_request_failed\", error.success ? error.data.message : \"Evaluation request failed.\");\n }\n return value;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
package/dist/taskset-drafts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TasksetPackageReceiptSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TQ5ASK7D.js";
|
|
4
4
|
import {
|
|
5
5
|
MAX_TASKSET_DRAFT_EDIT_FILE_BYTES,
|
|
6
6
|
MAX_TASKSET_DRAFT_WORKSPACE_BYTES,
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
tasksetDraftFromTaskset,
|
|
31
31
|
validateTasksetDraftWorkspace
|
|
32
32
|
} from "./chunk-32H2EJRA.js";
|
|
33
|
+
import "./chunk-A4ZDOZKP.js";
|
|
33
34
|
import {
|
|
34
35
|
AuthoringProvenanceSchema,
|
|
35
36
|
AuthoringRepairSchema,
|
|
@@ -111,7 +112,6 @@ import {
|
|
|
111
112
|
import "./chunk-JCPLAIZL.js";
|
|
112
113
|
import "./chunk-TCHAWJMB.js";
|
|
113
114
|
import "./chunk-3KXDH6OB.js";
|
|
114
|
-
import "./chunk-A4ZDOZKP.js";
|
|
115
115
|
import "./chunk-Y4NGWGTA.js";
|
|
116
116
|
import {
|
|
117
117
|
contentHash,
|
package/dist/taskset-packages.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
TasksetPackagePublicationSchema,
|
|
6
6
|
TasksetPackageReadbackSchema,
|
|
7
7
|
TasksetPackageReceiptSchema
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TQ5ASK7D.js";
|
|
9
9
|
import {
|
|
10
10
|
ModelBatchReviewInspectionSchema,
|
|
11
11
|
ModelBatchReviewReceiptSchema,
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
decodeTasksetDraftWorkspaceFile,
|
|
33
33
|
isManagedTasksetDraftFilePath
|
|
34
34
|
} from "./chunk-32H2EJRA.js";
|
|
35
|
+
import "./chunk-A4ZDOZKP.js";
|
|
35
36
|
import {
|
|
36
37
|
materializePortableTasksetRelease,
|
|
37
38
|
portableTasksetEnvironment,
|
|
@@ -78,7 +79,6 @@ import {
|
|
|
78
79
|
import "./chunk-JCPLAIZL.js";
|
|
79
80
|
import "./chunk-TCHAWJMB.js";
|
|
80
81
|
import "./chunk-3KXDH6OB.js";
|
|
81
|
-
import "./chunk-A4ZDOZKP.js";
|
|
82
82
|
import "./chunk-Y4NGWGTA.js";
|
|
83
83
|
import {
|
|
84
84
|
contentHash,
|