openpond-sdk 0.12.24 → 0.12.26
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/LEARNING.md +5 -7
- package/OPENTELEMETRY.md +1 -1
- package/PRODUCT_INTEGRATION.md +129 -0
- package/README.md +13 -3
- package/SERVERLESS_SERVING.md +37 -0
- package/TASKSETS.md +1 -2
- package/TASK_INGESTION.md +87 -86
- package/TRAINING_PROTOCOL.md +7 -3
- package/TRAINING_WORKFLOWS.md +11 -6
- package/dist/advanced-refiner-evaluations.js +10 -9
- package/dist/ai-sdk.js +225 -0
- package/dist/ai-sdk.js.map +1 -0
- package/dist/candidate-evaluations.js +7 -6
- package/dist/{chunk-ZQFROKKS.js → chunk-2U6BQ5C4.js} +3 -3
- package/dist/{chunk-BNBPKCIR.js → chunk-3BILL33A.js} +4 -4
- package/dist/{chunk-3B5KSH3V.js → chunk-456F3BXD.js} +5 -2
- package/dist/chunk-456F3BXD.js.map +1 -0
- package/dist/{chunk-GCUWJUUM.js → chunk-4A4FNG4R.js} +2 -2
- package/dist/{chunk-EZME7DV4.js → chunk-4CDLPMJK.js} +2 -2
- package/dist/{chunk-SP7DQEQM.js → chunk-4CRLQMJ2.js} +5 -5
- package/dist/{chunk-QOX57Y27.js → chunk-4PEK3YOW.js} +6 -3
- package/dist/chunk-4PEK3YOW.js.map +1 -0
- package/dist/{chunk-GS5HEE4M.js → chunk-4REK5TTE.js} +2 -2
- package/dist/{chunk-AG6UJ3DI.js → chunk-57ROW3XF.js} +3 -3
- package/dist/{chunk-3BYFS4RO.js → chunk-6LVLWRBJ.js} +11 -8
- package/dist/chunk-6LVLWRBJ.js.map +1 -0
- package/dist/{chunk-3VUF5H3B.js → chunk-AMZ2SWHR.js} +2 -2
- package/dist/{chunk-ZQ6QTYRE.js → chunk-AQV7RQZH.js} +11 -11
- package/dist/{chunk-ZQ6QTYRE.js.map → chunk-AQV7RQZH.js.map} +1 -1
- package/dist/{chunk-BJMENXR4.js → chunk-C7I4ZG6Q.js} +3 -3
- package/dist/{chunk-JMFYNIYZ.js → chunk-CAOMKM55.js} +6 -3
- package/dist/chunk-CAOMKM55.js.map +1 -0
- package/dist/{chunk-QNOCM5JX.js → chunk-D26RJQU7.js} +2 -2
- package/dist/{chunk-GBDBKGXW.js → chunk-EL6KZO43.js} +3 -3
- package/dist/{chunk-MVAEE5EI.js → chunk-H5KHLBC5.js} +5 -2
- package/dist/chunk-H5KHLBC5.js.map +1 -0
- package/dist/{chunk-7G47YXQT.js → chunk-HCUZYGUK.js} +8 -5
- package/dist/chunk-HCUZYGUK.js.map +1 -0
- package/dist/{chunk-Q4RGCEOI.js → chunk-JINWKUKR.js} +3 -3
- package/dist/{chunk-626JLH4D.js → chunk-JWEIAEQ6.js} +2 -2
- package/dist/{chunk-DH6O4JFB.js → chunk-KJTX4A27.js} +5 -2
- package/dist/chunk-KJTX4A27.js.map +1 -0
- package/dist/{chunk-OBI2MQYU.js → chunk-MN4FE52A.js} +17 -14
- package/dist/chunk-MN4FE52A.js.map +1 -0
- package/dist/{chunk-NZRGRUYG.js → chunk-MUG4OQKL.js} +21 -7
- package/dist/chunk-MUG4OQKL.js.map +1 -0
- package/dist/{chunk-C3TS766N.js → chunk-N6LGT7NT.js} +5 -2
- package/dist/chunk-N6LGT7NT.js.map +1 -0
- package/dist/{chunk-QIGMNB6M.js → chunk-P56JWQYV.js} +3 -3
- package/dist/{chunk-GX6KMHW2.js → chunk-QKLZZOZD.js} +5 -2
- package/dist/chunk-QKLZZOZD.js.map +1 -0
- package/dist/chunk-QYWPNNP3.js +9 -0
- package/dist/chunk-QYWPNNP3.js.map +1 -0
- package/dist/{chunk-QCRNQMN4.js → chunk-UZAVG2WK.js} +5 -5
- package/dist/chunk-UZAVG2WK.js.map +1 -0
- package/dist/{chunk-Z252BNAZ.js → chunk-VE5JD5FN.js} +6 -2
- package/dist/chunk-VE5JD5FN.js.map +1 -0
- package/dist/{chunk-7F43U2NC.js → chunk-WZKKQNYY.js} +3 -3
- package/dist/{chunk-6EZAGTZG.js → chunk-X5AT253K.js} +5 -5
- package/dist/{chunk-ZRTNR4U7.js → chunk-XWUTYFOU.js} +3 -3
- package/dist/{chunk-KEG5QS7W.js → chunk-XYK3MAIC.js} +193 -193
- package/dist/chunk-XYK3MAIC.js.map +1 -0
- package/dist/chunk-ZG4HVCJB.js +248 -0
- package/dist/chunk-ZG4HVCJB.js.map +1 -0
- package/dist/connected-evidence.js +11 -10
- package/dist/dataset-commerce.js +4 -1
- package/dist/dataset-commerce.js.map +1 -1
- package/dist/dataset-marketplace.js +4 -1
- package/dist/dataset-marketplace.js.map +1 -1
- package/dist/dataset-workspaces.js +157 -93
- package/dist/dataset-workspaces.js.map +1 -1
- package/dist/errors.js +2 -1
- package/dist/experiment-evaluation-schedules.js +20 -19
- package/dist/experiment-improvements.js +8 -7
- package/dist/experiments.js +21 -20
- package/dist/human-review.js +2 -1
- package/dist/index.js +87 -56
- package/dist/index.js.map +1 -1
- package/dist/learning.js +6 -3
- package/dist/learning.js.map +1 -1
- package/dist/model-projects.js +2 -1
- package/dist/model-starter-attempts.js +3 -2
- package/dist/model-starter-catalog.js +7 -4
- package/dist/model-starter-catalog.js.map +1 -1
- package/dist/model-starters.js +4 -3
- package/dist/model-taskset-runs.js +7 -4
- package/dist/model-taskset-runs.js.map +1 -1
- package/dist/post-training.js +7 -6
- package/dist/taskset-catalog.js +2 -1
- package/dist/taskset-drafts.js +13 -10
- package/dist/taskset-drafts.js.map +1 -1
- package/dist/taskset-packages.js +16 -15
- package/dist/tool-learning.js +4 -1
- package/dist/tool-learning.js.map +1 -1
- package/dist/training-bundle.js +19 -18
- package/dist/training-bundle.js.map +1 -1
- package/dist/training-hardware.js +3 -2
- package/dist/training-projects.js +4 -1
- package/dist/training-projects.js.map +1 -1
- package/dist/training.js +2761 -2626
- package/dist/training.js.map +1 -1
- package/dist/types/packages/sdk/src/ai-sdk.d.ts +6 -0
- package/dist/types/packages/sdk/src/ai-sdk.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +21 -21
- package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/connected-sync.d.ts +1 -1
- package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-commerce.d.ts +1 -1
- package/dist/types/packages/sdk/src/dataset-commerce.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-marketplace.d.ts +1 -1
- package/dist/types/packages/sdk/src/dataset-marketplace.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-population.d.ts +1 -1
- package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-task-ingestion.d.ts +9 -2
- package/dist/types/packages/sdk/src/dataset-task-ingestion.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +141 -141
- package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/dataset-workspace-error.d.ts +28 -0
- package/dist/types/packages/sdk/src/dataset-workspace-error.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/dataset-workspaces.d.ts +1 -0
- package/dist/types/packages/sdk/src/dataset-workspaces.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/endpoints.d.ts +4 -0
- package/dist/types/packages/sdk/src/endpoints.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts +1 -1
- package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-client.d.ts +637 -637
- package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts +28 -28
- package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +28 -28
- package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +1623 -1623
- package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-inspection.d.ts +1 -1
- package/dist/types/packages/sdk/src/experiment-inspection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-run-details.d.ts +7 -7
- package/dist/types/packages/sdk/src/grader-inspection.d.ts +1 -1
- package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/human-review-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/index.d.ts +13 -4
- package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/learning-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts +1 -1
- package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-decision-executions.d.ts +347 -347
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +25 -25
- package/dist/types/packages/sdk/src/model-projects.d.ts +1 -1
- package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +1 -1
- 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 -1
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +29 -29
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/post-training.d.ts +7 -7
- package/dist/types/packages/sdk/src/product-model-response.d.ts +4 -0
- package/dist/types/packages/sdk/src/product-model-response.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/product-models.d.ts +76 -0
- package/dist/types/packages/sdk/src/product-models.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +1 -1
- package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/serverless-serving.d.ts +157 -0
- package/dist/types/packages/sdk/src/serverless-serving.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/steering-model-serving.d.ts +276 -0
- package/dist/types/packages/sdk/src/steering-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-catalog.d.ts +1 -1
- package/dist/types/packages/sdk/src/taskset-catalog.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +121 -121
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +20 -20
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +20 -20
- package/dist/types/packages/sdk/src/tool-learning-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/tool-learning-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-evidence.d.ts +54 -0
- package/dist/types/packages/sdk/src/training-evidence.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-harness-sources.d.ts +2 -2
- package/dist/types/packages/sdk/src/training-model-serving-control.d.ts +232 -0
- package/dist/types/packages/sdk/src/training-model-serving-control.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-model-serving.d.ts +552 -0
- package/dist/types/packages/sdk/src/training-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-project-client.d.ts +1 -1
- package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-transport.d.ts +1 -1
- package/dist/types/packages/sdk/src/training-transport.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training.d.ts +2489 -2148
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/types.d.ts +14 -1
- package/dist/types/packages/sdk/src/types.d.ts.map +1 -1
- package/examples/learning/submit.py +1 -1
- package/examples/learning/submit.ts +2 -2
- package/examples/training/continual.ts +4 -4
- package/examples/training/manual.ts +1 -3
- package/fixtures/personalized-inference-request.schema.json +316 -0
- package/fixtures/python-foundation/schemas.json +4873 -4484
- package/package.json +19 -3
- package/dist/chunk-3B5KSH3V.js.map +0 -1
- package/dist/chunk-3BYFS4RO.js.map +0 -1
- package/dist/chunk-7G47YXQT.js.map +0 -1
- package/dist/chunk-C3TS766N.js.map +0 -1
- package/dist/chunk-DH6O4JFB.js.map +0 -1
- package/dist/chunk-GX6KMHW2.js.map +0 -1
- package/dist/chunk-JMFYNIYZ.js.map +0 -1
- package/dist/chunk-KEG5QS7W.js.map +0 -1
- package/dist/chunk-MVAEE5EI.js.map +0 -1
- package/dist/chunk-NZRGRUYG.js.map +0 -1
- package/dist/chunk-OBI2MQYU.js.map +0 -1
- package/dist/chunk-QCRNQMN4.js.map +0 -1
- package/dist/chunk-QOX57Y27.js.map +0 -1
- package/dist/chunk-Z252BNAZ.js.map +0 -1
- /package/dist/{chunk-ZQFROKKS.js.map → chunk-2U6BQ5C4.js.map} +0 -0
- /package/dist/{chunk-BNBPKCIR.js.map → chunk-3BILL33A.js.map} +0 -0
- /package/dist/{chunk-GCUWJUUM.js.map → chunk-4A4FNG4R.js.map} +0 -0
- /package/dist/{chunk-EZME7DV4.js.map → chunk-4CDLPMJK.js.map} +0 -0
- /package/dist/{chunk-SP7DQEQM.js.map → chunk-4CRLQMJ2.js.map} +0 -0
- /package/dist/{chunk-GS5HEE4M.js.map → chunk-4REK5TTE.js.map} +0 -0
- /package/dist/{chunk-AG6UJ3DI.js.map → chunk-57ROW3XF.js.map} +0 -0
- /package/dist/{chunk-3VUF5H3B.js.map → chunk-AMZ2SWHR.js.map} +0 -0
- /package/dist/{chunk-BJMENXR4.js.map → chunk-C7I4ZG6Q.js.map} +0 -0
- /package/dist/{chunk-QNOCM5JX.js.map → chunk-D26RJQU7.js.map} +0 -0
- /package/dist/{chunk-GBDBKGXW.js.map → chunk-EL6KZO43.js.map} +0 -0
- /package/dist/{chunk-Q4RGCEOI.js.map → chunk-JINWKUKR.js.map} +0 -0
- /package/dist/{chunk-626JLH4D.js.map → chunk-JWEIAEQ6.js.map} +0 -0
- /package/dist/{chunk-QIGMNB6M.js.map → chunk-P56JWQYV.js.map} +0 -0
- /package/dist/{chunk-7F43U2NC.js.map → chunk-WZKKQNYY.js.map} +0 -0
- /package/dist/{chunk-6EZAGTZG.js.map → chunk-X5AT253K.js.map} +0 -0
- /package/dist/{chunk-ZRTNR4U7.js.map → chunk-XWUTYFOU.js.map} +0 -0
package/dist/ai-sdk.js
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ProductModelError,
|
|
3
|
+
productModelEndpoint
|
|
4
|
+
} from "./chunk-ZG4HVCJB.js";
|
|
5
|
+
import "./chunk-B3ZHJ2KK.js";
|
|
6
|
+
import "./chunk-QYWPNNP3.js";
|
|
7
|
+
import "./chunk-YLJ4XMA6.js";
|
|
8
|
+
|
|
9
|
+
// src/ai-sdk.ts
|
|
10
|
+
import {
|
|
11
|
+
createOpenAICompatible
|
|
12
|
+
} from "@ai-sdk/openai-compatible";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
|
|
15
|
+
// src/product-model-response.ts
|
|
16
|
+
function boundProductModelResponse(response) {
|
|
17
|
+
if (!response.body) return response;
|
|
18
|
+
const streaming = response.headers.get("content-type")?.includes("text/event-stream") ?? false;
|
|
19
|
+
const reader = response.body.getReader();
|
|
20
|
+
const decoder = new TextDecoder();
|
|
21
|
+
let total = 0, pending = "", terminal = false;
|
|
22
|
+
let identity;
|
|
23
|
+
const fail = () => new ProductModelError(
|
|
24
|
+
streaming ? "model_stream_interrupted" : "model_response_invalid",
|
|
25
|
+
response.status,
|
|
26
|
+
true,
|
|
27
|
+
response.headers.get("x-openpond-request-id") ?? response.headers.get("x-request-id") ?? void 0
|
|
28
|
+
);
|
|
29
|
+
const body = new ReadableStream({
|
|
30
|
+
async pull(controller) {
|
|
31
|
+
try {
|
|
32
|
+
const { done, value } = await reader.read();
|
|
33
|
+
if (done) {
|
|
34
|
+
if (streaming && !terminal) throw fail();
|
|
35
|
+
controller.close();
|
|
36
|
+
reader.releaseLock();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
total += value.byteLength;
|
|
40
|
+
if (total > 8 * 1024 * 1024) throw fail();
|
|
41
|
+
if (streaming) {
|
|
42
|
+
pending = (pending + decoder.decode(value, { stream: true })).replace(/\r\n/g, "\n");
|
|
43
|
+
let boundary;
|
|
44
|
+
while ((boundary = pending.indexOf("\n\n")) >= 0) {
|
|
45
|
+
const frame = pending.slice(0, boundary);
|
|
46
|
+
pending = pending.slice(boundary + 2);
|
|
47
|
+
if (new TextEncoder().encode(frame).length > 1024 * 1024) throw fail();
|
|
48
|
+
const data = frame.split("\n").filter((line) => line.startsWith("data:")).map((line) => line.slice(5).trimStart()).join("\n");
|
|
49
|
+
if (data === "[DONE]") terminal = true;
|
|
50
|
+
else if (data) {
|
|
51
|
+
const chunk = JSON.parse(data);
|
|
52
|
+
if (typeof chunk.id === "string" && typeof chunk.model === "string") {
|
|
53
|
+
if (identity && (chunk.id !== identity.id || chunk.model !== identity.model))
|
|
54
|
+
throw fail();
|
|
55
|
+
identity = { id: chunk.id, model: chunk.model };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (new TextEncoder().encode(pending).length > 1024 * 1024) throw fail();
|
|
60
|
+
}
|
|
61
|
+
controller.enqueue(value);
|
|
62
|
+
} catch {
|
|
63
|
+
await reader.cancel().catch(() => {
|
|
64
|
+
});
|
|
65
|
+
controller.error(fail());
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
async cancel(reason) {
|
|
69
|
+
await reader.cancel(reason);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return new Response(body, {
|
|
73
|
+
status: response.status,
|
|
74
|
+
statusText: response.statusText,
|
|
75
|
+
headers: response.headers
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// src/ai-sdk.ts
|
|
80
|
+
var Evidence = z.object({ openpond: z.record(z.string(), z.json()) }).passthrough();
|
|
81
|
+
function metadata(raw) {
|
|
82
|
+
const value = Evidence.safeParse(raw);
|
|
83
|
+
return value.success ? { openpond: value.data.openpond } : void 0;
|
|
84
|
+
}
|
|
85
|
+
function toAIModel(model) {
|
|
86
|
+
const connection = model.providerConnection();
|
|
87
|
+
const provider = createOpenAICompatible({
|
|
88
|
+
name: "openpond",
|
|
89
|
+
baseURL: productModelEndpoint(connection.baseUrl),
|
|
90
|
+
apiKey: connection.apiKey,
|
|
91
|
+
// The personalized gateway always supplies terminal usage and rejects
|
|
92
|
+
// OpenAI's optional stream_options field.
|
|
93
|
+
includeUsage: false,
|
|
94
|
+
headers: connection.teamId ? { "X-OpenPond-Team-Id": connection.teamId } : void 0,
|
|
95
|
+
transformRequestBody: (raw) => {
|
|
96
|
+
const body = JSON.parse(JSON.stringify(raw));
|
|
97
|
+
if (body.model !== model.id)
|
|
98
|
+
throw new ProductModelError("model_override_forbidden", 0, false);
|
|
99
|
+
const allowed = /* @__PURE__ */ new Set([
|
|
100
|
+
"model",
|
|
101
|
+
"messages",
|
|
102
|
+
"stream",
|
|
103
|
+
"max_tokens",
|
|
104
|
+
"temperature",
|
|
105
|
+
"top_p",
|
|
106
|
+
"seed",
|
|
107
|
+
"stop",
|
|
108
|
+
"tools",
|
|
109
|
+
"tool_choice"
|
|
110
|
+
]);
|
|
111
|
+
if (Object.keys(body).some((key) => !allowed.has(key)))
|
|
112
|
+
throw new ProductModelError("parameter_unsupported", 0, false);
|
|
113
|
+
return body;
|
|
114
|
+
},
|
|
115
|
+
metadataExtractor: {
|
|
116
|
+
async extractMetadata({ parsedBody }) {
|
|
117
|
+
return metadata(parsedBody);
|
|
118
|
+
},
|
|
119
|
+
createStreamExtractor() {
|
|
120
|
+
let evidence;
|
|
121
|
+
return {
|
|
122
|
+
processChunk(chunk) {
|
|
123
|
+
evidence = metadata(chunk) ?? evidence;
|
|
124
|
+
},
|
|
125
|
+
buildMetadata() {
|
|
126
|
+
return evidence;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
supportsStructuredOutputs: model.capabilities.structuredOutput,
|
|
132
|
+
fetch: async (url, init) => {
|
|
133
|
+
const timeout = AbortSignal.timeout(connection.timeoutMs ?? 6e4);
|
|
134
|
+
const headers = new Headers(init?.headers);
|
|
135
|
+
headers.set("Authorization", `Bearer ${connection.apiKey}`);
|
|
136
|
+
if (connection.teamId) headers.set("X-OpenPond-Team-Id", connection.teamId);
|
|
137
|
+
return boundProductModelResponse(
|
|
138
|
+
await (connection.fetch ?? fetch)(url, {
|
|
139
|
+
...init,
|
|
140
|
+
redirect: "error",
|
|
141
|
+
headers,
|
|
142
|
+
signal: init?.signal ? AbortSignal.any([init.signal, timeout]) : timeout
|
|
143
|
+
})
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
}).chatModel(model.id);
|
|
147
|
+
const check = (options) => {
|
|
148
|
+
const rawOptions = options.providerOptions?.openpond;
|
|
149
|
+
if (rawOptions && ["stream", "stream_options"].some((key) => key in rawOptions))
|
|
150
|
+
throw new ProductModelError("transport_override_forbidden", 0, false);
|
|
151
|
+
if (options.tools?.length && !model.capabilities.tools)
|
|
152
|
+
throw new ProductModelError("tools_unsupported", 0, false);
|
|
153
|
+
if (options.responseFormat?.type === "json")
|
|
154
|
+
throw new ProductModelError("structured_output_unsupported", 0, false);
|
|
155
|
+
if (options.prompt.some(
|
|
156
|
+
(message) => message.role === "tool" && !model.capabilities.tools || message.role !== "system" && message.content.some(
|
|
157
|
+
(part) => part.type !== "text" && !(model.capabilities.tools && ["tool-call", "tool-result"].includes(part.type))
|
|
158
|
+
)
|
|
159
|
+
))
|
|
160
|
+
throw new ProductModelError("input_capability_unsupported", 0, false);
|
|
161
|
+
};
|
|
162
|
+
const normalizeError = (error) => {
|
|
163
|
+
if (error instanceof ProductModelError) return error;
|
|
164
|
+
if (error && typeof error === "object" && "cause" in error && error.cause instanceof ProductModelError)
|
|
165
|
+
return error.cause;
|
|
166
|
+
const status = error && typeof error === "object" && "statusCode" in error && typeof error.statusCode === "number" ? error.statusCode : 0;
|
|
167
|
+
const unknown = status === 0 || status === 408 || status >= 500 || status >= 200 && status < 300;
|
|
168
|
+
return new ProductModelError(
|
|
169
|
+
status >= 400 ? "model_request_rejected" : "model_outcome_unknown",
|
|
170
|
+
status,
|
|
171
|
+
unknown
|
|
172
|
+
);
|
|
173
|
+
};
|
|
174
|
+
return {
|
|
175
|
+
specificationVersion: provider.specificationVersion,
|
|
176
|
+
provider: provider.provider,
|
|
177
|
+
modelId: provider.modelId,
|
|
178
|
+
supportedUrls: provider.supportedUrls,
|
|
179
|
+
async doGenerate(options) {
|
|
180
|
+
check(options);
|
|
181
|
+
try {
|
|
182
|
+
return await provider.doGenerate(options);
|
|
183
|
+
} catch (error) {
|
|
184
|
+
throw normalizeError(error);
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
async doStream(options) {
|
|
188
|
+
check(options);
|
|
189
|
+
if (!model.capabilities.streaming)
|
|
190
|
+
throw new ProductModelError("streaming_unsupported", 0, false);
|
|
191
|
+
try {
|
|
192
|
+
const result = await provider.doStream(options);
|
|
193
|
+
const reader = result.stream.getReader();
|
|
194
|
+
return {
|
|
195
|
+
...result,
|
|
196
|
+
stream: new ReadableStream({
|
|
197
|
+
async pull(controller) {
|
|
198
|
+
try {
|
|
199
|
+
const { done, value } = await reader.read();
|
|
200
|
+
if (done) {
|
|
201
|
+
controller.close();
|
|
202
|
+
reader.releaseLock();
|
|
203
|
+
} else
|
|
204
|
+
controller.enqueue(
|
|
205
|
+
value.type === "error" ? { ...value, error: normalizeError(value.error) } : value
|
|
206
|
+
);
|
|
207
|
+
} catch (error) {
|
|
208
|
+
controller.error(normalizeError(error));
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
async cancel(reason) {
|
|
212
|
+
await reader.cancel(reason);
|
|
213
|
+
}
|
|
214
|
+
})
|
|
215
|
+
};
|
|
216
|
+
} catch (error) {
|
|
217
|
+
throw normalizeError(error);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
export {
|
|
223
|
+
toAIModel
|
|
224
|
+
};
|
|
225
|
+
//# sourceMappingURL=ai-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ai-sdk.ts","../src/product-model-response.ts"],"sourcesContent":["/** Optional integration: AI SDK 7 / @ai-sdk/openai-compatible 3 (LanguageModelV4). */\nimport {\n createOpenAICompatible,\n type OpenAICompatibleChatLanguageModel,\n} from \"@ai-sdk/openai-compatible\";\nimport { z } from \"zod\";\nimport { boundProductModelResponse } from \"./product-model-response.js\";\nimport { ProductModel, ProductModelError, productModelEndpoint } from \"./product-models.js\";\n\nconst Evidence = z.object({ openpond: z.record(z.string(), z.json()) }).passthrough();\nfunction metadata(raw: unknown) {\n const value = Evidence.safeParse(raw);\n return value.success ? { openpond: value.data.openpond } : undefined;\n}\n\n/** Use generateText/streamText with maxRetries: 0; paid inference is never safely replayable implicitly. */\nexport function toAIModel(\n model: ProductModel,\n): Pick<\n OpenAICompatibleChatLanguageModel,\n \"specificationVersion\" | \"provider\" | \"modelId\" | \"supportedUrls\" | \"doGenerate\" | \"doStream\"\n> {\n const connection = model.providerConnection();\n const provider = createOpenAICompatible({\n name: \"openpond\",\n baseURL: productModelEndpoint(connection.baseUrl!),\n apiKey: connection.apiKey,\n // The personalized gateway always supplies terminal usage and rejects\n // OpenAI's optional stream_options field.\n includeUsage: false,\n headers: connection.teamId ? { \"X-OpenPond-Team-Id\": connection.teamId } : undefined,\n transformRequestBody: (raw) => {\n const body = JSON.parse(JSON.stringify(raw)) as Record<string, unknown>;\n if (body.model !== model.id)\n throw new ProductModelError(\"model_override_forbidden\", 0, false);\n const allowed = new Set([\n \"model\",\n \"messages\",\n \"stream\",\n \"max_tokens\",\n \"temperature\",\n \"top_p\",\n \"seed\",\n \"stop\",\n \"tools\",\n \"tool_choice\",\n ]);\n if (Object.keys(body).some((key) => !allowed.has(key)))\n throw new ProductModelError(\"parameter_unsupported\", 0, false);\n return body;\n },\n metadataExtractor: {\n async extractMetadata({ parsedBody }) {\n return metadata(parsedBody);\n },\n createStreamExtractor() {\n let evidence: ReturnType<typeof metadata>;\n return {\n processChunk(chunk) {\n evidence = metadata(chunk) ?? evidence;\n },\n buildMetadata() {\n return evidence;\n },\n };\n },\n },\n supportsStructuredOutputs: model.capabilities.structuredOutput,\n fetch: async (url, init) => {\n const timeout = AbortSignal.timeout(connection.timeoutMs ?? 60_000);\n const headers = new Headers(init?.headers);\n headers.set(\"Authorization\", `Bearer ${connection.apiKey}`);\n if (connection.teamId) headers.set(\"X-OpenPond-Team-Id\", connection.teamId);\n return boundProductModelResponse(\n await (connection.fetch ?? fetch)(url, {\n ...init,\n redirect: \"error\",\n headers,\n signal: init?.signal ? AbortSignal.any([init.signal, timeout]) : timeout,\n }),\n );\n },\n }).chatModel(model.id);\n const check = (options: Parameters<typeof provider.doGenerate>[0]) => {\n const rawOptions = options.providerOptions?.openpond;\n if (rawOptions && [\"stream\", \"stream_options\"].some((key) => key in rawOptions))\n throw new ProductModelError(\"transport_override_forbidden\", 0, false);\n if (options.tools?.length && !model.capabilities.tools)\n throw new ProductModelError(\"tools_unsupported\", 0, false);\n if (options.responseFormat?.type === \"json\")\n throw new ProductModelError(\"structured_output_unsupported\", 0, false);\n if (\n options.prompt.some(\n (message) =>\n (message.role === \"tool\" && !model.capabilities.tools) ||\n (message.role !== \"system\" &&\n message.content.some(\n (part) =>\n part.type !== \"text\" &&\n !(model.capabilities.tools && [\"tool-call\", \"tool-result\"].includes(part.type)),\n )),\n )\n )\n throw new ProductModelError(\"input_capability_unsupported\", 0, false);\n };\n // Convert retryable transport errors to a terminal SDK error: AI SDK's default\n // automatic retries must not accidentally duplicate a billed generation.\n const normalizeError = (error: unknown): ProductModelError => {\n if (error instanceof ProductModelError) return error;\n if (\n error &&\n typeof error === \"object\" &&\n \"cause\" in error &&\n error.cause instanceof ProductModelError\n )\n return error.cause;\n const status =\n error &&\n typeof error === \"object\" &&\n \"statusCode\" in error &&\n typeof error.statusCode === \"number\"\n ? error.statusCode\n : 0;\n const unknown =\n status === 0 || status === 408 || status >= 500 || (status >= 200 && status < 300);\n return new ProductModelError(\n status >= 400 ? \"model_request_rejected\" : \"model_outcome_unknown\",\n status,\n unknown,\n );\n };\n return {\n specificationVersion: provider.specificationVersion,\n provider: provider.provider,\n modelId: provider.modelId,\n supportedUrls: provider.supportedUrls,\n async doGenerate(options: Parameters<typeof provider.doGenerate>[0]) {\n check(options);\n try {\n return await provider.doGenerate(options);\n } catch (error) {\n throw normalizeError(error);\n }\n },\n async doStream(options: Parameters<typeof provider.doStream>[0]) {\n check(options);\n if (!model.capabilities.streaming)\n throw new ProductModelError(\"streaming_unsupported\", 0, false);\n try {\n const result = await provider.doStream(options);\n const reader = result.stream.getReader();\n return {\n ...result,\n stream: new ReadableStream({\n async pull(controller) {\n try {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n reader.releaseLock();\n } else\n controller.enqueue(\n value.type === \"error\"\n ? { ...value, error: normalizeError(value.error) }\n : value,\n );\n } catch (error) {\n controller.error(normalizeError(error));\n }\n },\n async cancel(reason) {\n await reader.cancel(reason);\n },\n }),\n };\n } catch (error) {\n throw normalizeError(error);\n }\n },\n };\n}\n","import { ProductModelError } from \"./product-models.js\";\n\n/** Bound the optional provider's otherwise unbounded parser and require the\n * personalized gateway's terminal marker before treating EOF as completion. */\nexport function boundProductModelResponse(response: Response): Response {\n if (!response.body) return response;\n const streaming = response.headers.get(\"content-type\")?.includes(\"text/event-stream\") ?? false;\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let total = 0,\n pending = \"\",\n terminal = false;\n let identity: { id: string; model: string } | undefined;\n const fail = () =>\n new ProductModelError(\n streaming ? \"model_stream_interrupted\" : \"model_response_invalid\",\n response.status,\n true,\n response.headers.get(\"x-openpond-request-id\") ??\n response.headers.get(\"x-request-id\") ??\n undefined,\n );\n const body = new ReadableStream<Uint8Array>({\n async pull(controller) {\n try {\n const { done, value } = await reader.read();\n if (done) {\n if (streaming && !terminal) throw fail();\n controller.close();\n reader.releaseLock();\n return;\n }\n total += value.byteLength;\n if (total > 8 * 1024 * 1024) throw fail();\n if (streaming) {\n pending = (pending + decoder.decode(value, { stream: true })).replace(/\\r\\n/g, \"\\n\");\n let boundary: number;\n while ((boundary = pending.indexOf(\"\\n\\n\")) >= 0) {\n const frame = pending.slice(0, boundary);\n pending = pending.slice(boundary + 2);\n if (new TextEncoder().encode(frame).length > 1024 * 1024) throw fail();\n const data = frame\n .split(\"\\n\")\n .filter((line) => line.startsWith(\"data:\"))\n .map((line) => line.slice(5).trimStart())\n .join(\"\\n\");\n if (data === \"[DONE]\") terminal = true;\n else if (data) {\n const chunk = JSON.parse(data);\n if (typeof chunk.id === \"string\" && typeof chunk.model === \"string\") {\n if (identity && (chunk.id !== identity.id || chunk.model !== identity.model))\n throw fail();\n identity = { id: chunk.id, model: chunk.model };\n }\n }\n }\n if (new TextEncoder().encode(pending).length > 1024 * 1024) throw fail();\n }\n controller.enqueue(value);\n } catch {\n await reader.cancel().catch(() => {});\n controller.error(fail());\n }\n },\n async cancel(reason) {\n await reader.cancel(reason);\n },\n });\n return new Response(body, {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n}\n"],"mappings":";;;;;;;;;AACA;AAAA,EACE;AAAA,OAEK;AACP,SAAS,SAAS;;;ACDX,SAAS,0BAA0B,UAA8B;AACtE,MAAI,CAAC,SAAS,KAAM,QAAO;AAC3B,QAAM,YAAY,SAAS,QAAQ,IAAI,cAAc,GAAG,SAAS,mBAAmB,KAAK;AACzF,QAAM,SAAS,SAAS,KAAK,UAAU;AACvC,QAAM,UAAU,IAAI,YAAY;AAChC,MAAI,QAAQ,GACV,UAAU,IACV,WAAW;AACb,MAAI;AACJ,QAAM,OAAO,MACX,IAAI;AAAA,IACF,YAAY,6BAA6B;AAAA,IACzC,SAAS;AAAA,IACT;AAAA,IACA,SAAS,QAAQ,IAAI,uBAAuB,KAC1C,SAAS,QAAQ,IAAI,cAAc,KACnC;AAAA,EACJ;AACF,QAAM,OAAO,IAAI,eAA2B;AAAA,IAC1C,MAAM,KAAK,YAAY;AACrB,UAAI;AACF,cAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,YAAI,MAAM;AACR,cAAI,aAAa,CAAC,SAAU,OAAM,KAAK;AACvC,qBAAW,MAAM;AACjB,iBAAO,YAAY;AACnB;AAAA,QACF;AACA,iBAAS,MAAM;AACf,YAAI,QAAQ,IAAI,OAAO,KAAM,OAAM,KAAK;AACxC,YAAI,WAAW;AACb,qBAAW,UAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC,GAAG,QAAQ,SAAS,IAAI;AACnF,cAAI;AACJ,kBAAQ,WAAW,QAAQ,QAAQ,MAAM,MAAM,GAAG;AAChD,kBAAM,QAAQ,QAAQ,MAAM,GAAG,QAAQ;AACvC,sBAAU,QAAQ,MAAM,WAAW,CAAC;AACpC,gBAAI,IAAI,YAAY,EAAE,OAAO,KAAK,EAAE,SAAS,OAAO,KAAM,OAAM,KAAK;AACrE,kBAAM,OAAO,MACV,MAAM,IAAI,EACV,OAAO,CAAC,SAAS,KAAK,WAAW,OAAO,CAAC,EACzC,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,EACvC,KAAK,IAAI;AACZ,gBAAI,SAAS,SAAU,YAAW;AAAA,qBACzB,MAAM;AACb,oBAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,kBAAI,OAAO,MAAM,OAAO,YAAY,OAAO,MAAM,UAAU,UAAU;AACnE,oBAAI,aAAa,MAAM,OAAO,SAAS,MAAM,MAAM,UAAU,SAAS;AACpE,wBAAM,KAAK;AACb,2BAAW,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,MAAM;AAAA,cAChD;AAAA,YACF;AAAA,UACF;AACA,cAAI,IAAI,YAAY,EAAE,OAAO,OAAO,EAAE,SAAS,OAAO,KAAM,OAAM,KAAK;AAAA,QACzE;AACA,mBAAW,QAAQ,KAAK;AAAA,MAC1B,QAAQ;AACN,cAAM,OAAO,OAAO,EAAE,MAAM,MAAM;AAAA,QAAC,CAAC;AACpC,mBAAW,MAAM,KAAK,CAAC;AAAA,MACzB;AAAA,IACF;AAAA,IACA,MAAM,OAAO,QAAQ;AACnB,YAAM,OAAO,OAAO,MAAM;AAAA,IAC5B;AAAA,EACF,CAAC;AACD,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB,QAAQ,SAAS;AAAA,IACjB,YAAY,SAAS;AAAA,IACrB,SAAS,SAAS;AAAA,EACpB,CAAC;AACH;;;ADhEA,IAAM,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,YAAY;AACpF,SAAS,SAAS,KAAc;AAC9B,QAAM,QAAQ,SAAS,UAAU,GAAG;AACpC,SAAO,MAAM,UAAU,EAAE,UAAU,MAAM,KAAK,SAAS,IAAI;AAC7D;AAGO,SAAS,UACd,OAIA;AACA,QAAM,aAAa,MAAM,mBAAmB;AAC5C,QAAM,WAAW,uBAAuB;AAAA,IACtC,MAAM;AAAA,IACN,SAAS,qBAAqB,WAAW,OAAQ;AAAA,IACjD,QAAQ,WAAW;AAAA;AAAA;AAAA,IAGnB,cAAc;AAAA,IACd,SAAS,WAAW,SAAS,EAAE,sBAAsB,WAAW,OAAO,IAAI;AAAA,IAC3E,sBAAsB,CAAC,QAAQ;AAC7B,YAAM,OAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAC3C,UAAI,KAAK,UAAU,MAAM;AACvB,cAAM,IAAI,kBAAkB,4BAA4B,GAAG,KAAK;AAClE,YAAM,UAAU,oBAAI,IAAI;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI,OAAO,KAAK,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC;AACnD,cAAM,IAAI,kBAAkB,yBAAyB,GAAG,KAAK;AAC/D,aAAO;AAAA,IACT;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM,gBAAgB,EAAE,WAAW,GAAG;AACpC,eAAO,SAAS,UAAU;AAAA,MAC5B;AAAA,MACA,wBAAwB;AACtB,YAAI;AACJ,eAAO;AAAA,UACL,aAAa,OAAO;AAClB,uBAAW,SAAS,KAAK,KAAK;AAAA,UAChC;AAAA,UACA,gBAAgB;AACd,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,2BAA2B,MAAM,aAAa;AAAA,IAC9C,OAAO,OAAO,KAAK,SAAS;AAC1B,YAAM,UAAU,YAAY,QAAQ,WAAW,aAAa,GAAM;AAClE,YAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AACzC,cAAQ,IAAI,iBAAiB,UAAU,WAAW,MAAM,EAAE;AAC1D,UAAI,WAAW,OAAQ,SAAQ,IAAI,sBAAsB,WAAW,MAAM;AAC1E,aAAO;AAAA,QACL,OAAO,WAAW,SAAS,OAAO,KAAK;AAAA,UACrC,GAAG;AAAA,UACH,UAAU;AAAA,UACV;AAAA,UACA,QAAQ,MAAM,SAAS,YAAY,IAAI,CAAC,KAAK,QAAQ,OAAO,CAAC,IAAI;AAAA,QACnE,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC,EAAE,UAAU,MAAM,EAAE;AACrB,QAAM,QAAQ,CAAC,YAAuD;AACpE,UAAM,aAAa,QAAQ,iBAAiB;AAC5C,QAAI,cAAc,CAAC,UAAU,gBAAgB,EAAE,KAAK,CAAC,QAAQ,OAAO,UAAU;AAC5E,YAAM,IAAI,kBAAkB,gCAAgC,GAAG,KAAK;AACtE,QAAI,QAAQ,OAAO,UAAU,CAAC,MAAM,aAAa;AAC/C,YAAM,IAAI,kBAAkB,qBAAqB,GAAG,KAAK;AAC3D,QAAI,QAAQ,gBAAgB,SAAS;AACnC,YAAM,IAAI,kBAAkB,iCAAiC,GAAG,KAAK;AACvE,QACE,QAAQ,OAAO;AAAA,MACb,CAAC,YACE,QAAQ,SAAS,UAAU,CAAC,MAAM,aAAa,SAC/C,QAAQ,SAAS,YAChB,QAAQ,QAAQ;AAAA,QACd,CAAC,SACC,KAAK,SAAS,UACd,EAAE,MAAM,aAAa,SAAS,CAAC,aAAa,aAAa,EAAE,SAAS,KAAK,IAAI;AAAA,MACjF;AAAA,IACN;AAEA,YAAM,IAAI,kBAAkB,gCAAgC,GAAG,KAAK;AAAA,EACxE;AAGA,QAAM,iBAAiB,CAAC,UAAsC;AAC5D,QAAI,iBAAiB,kBAAmB,QAAO;AAC/C,QACE,SACA,OAAO,UAAU,YACjB,WAAW,SACX,MAAM,iBAAiB;AAEvB,aAAO,MAAM;AACf,UAAM,SACJ,SACA,OAAO,UAAU,YACjB,gBAAgB,SAChB,OAAO,MAAM,eAAe,WACxB,MAAM,aACN;AACN,UAAM,UACJ,WAAW,KAAK,WAAW,OAAO,UAAU,OAAQ,UAAU,OAAO,SAAS;AAChF,WAAO,IAAI;AAAA,MACT,UAAU,MAAM,2BAA2B;AAAA,MAC3C;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,sBAAsB,SAAS;AAAA,IAC/B,UAAU,SAAS;AAAA,IACnB,SAAS,SAAS;AAAA,IAClB,eAAe,SAAS;AAAA,IACxB,MAAM,WAAW,SAAoD;AACnE,YAAM,OAAO;AACb,UAAI;AACF,eAAO,MAAM,SAAS,WAAW,OAAO;AAAA,MAC1C,SAAS,OAAO;AACd,cAAM,eAAe,KAAK;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,MAAM,SAAS,SAAkD;AAC/D,YAAM,OAAO;AACb,UAAI,CAAC,MAAM,aAAa;AACtB,cAAM,IAAI,kBAAkB,yBAAyB,GAAG,KAAK;AAC/D,UAAI;AACF,cAAM,SAAS,MAAM,SAAS,SAAS,OAAO;AAC9C,cAAM,SAAS,OAAO,OAAO,UAAU;AACvC,eAAO;AAAA,UACL,GAAG;AAAA,UACH,QAAQ,IAAI,eAAe;AAAA,YACzB,MAAM,KAAK,YAAY;AACrB,kBAAI;AACF,sBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,oBAAI,MAAM;AACR,6BAAW,MAAM;AACjB,yBAAO,YAAY;AAAA,gBACrB;AACE,6BAAW;AAAA,oBACT,MAAM,SAAS,UACX,EAAE,GAAG,OAAO,OAAO,eAAe,MAAM,KAAK,EAAE,IAC/C;AAAA,kBACN;AAAA,cACJ,SAAS,OAAO;AACd,2BAAW,MAAM,eAAe,KAAK,CAAC;AAAA,cACxC;AAAA,YACF;AAAA,YACA,MAAM,OAAO,QAAQ;AACnB,oBAAM,OAAO,OAAO,MAAM;AAAA,YAC5B;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,SAAS,OAAO;AACd,cAAM,eAAe,KAAK;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -5,15 +5,16 @@ import {
|
|
|
5
5
|
CandidateEvaluationPreparationSchema,
|
|
6
6
|
CandidateEvaluationRequestSchema,
|
|
7
7
|
createCandidateEvaluationClient
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-AMZ2SWHR.js";
|
|
9
|
+
import "./chunk-2U6BQ5C4.js";
|
|
10
|
+
import "./chunk-4REK5TTE.js";
|
|
11
|
+
import "./chunk-XWUTYFOU.js";
|
|
12
|
+
import "./chunk-CAOMKM55.js";
|
|
13
|
+
import "./chunk-H5KHLBC5.js";
|
|
14
14
|
import "./chunk-CL3IOOVL.js";
|
|
15
15
|
import "./chunk-B3ZHJ2KK.js";
|
|
16
16
|
import "./chunk-H3JZ3P5T.js";
|
|
17
|
+
import "./chunk-QYWPNNP3.js";
|
|
17
18
|
import "./chunk-YLJ4XMA6.js";
|
|
18
19
|
export {
|
|
19
20
|
CandidateEvaluationControlSchema,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ExperimentGraderSelectionSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4REK5TTE.js";
|
|
4
4
|
import {
|
|
5
5
|
ModelTasksetRunRequestSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XWUTYFOU.js";
|
|
7
7
|
|
|
8
8
|
// src/experiment-run-contracts.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -28,4 +28,4 @@ var RunExperimentSchema = z.object({
|
|
|
28
28
|
export {
|
|
29
29
|
RunExperimentSchema
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# sourceMappingURL=chunk-2U6BQ5C4.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
publishTasksetDraft,
|
|
5
5
|
renderTasksetDraftManifests,
|
|
6
6
|
validateTasksetDraftWorkspace
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JINWKUKR.js";
|
|
8
8
|
import {
|
|
9
9
|
materializePortableTasksetRelease,
|
|
10
10
|
portableTasksetEnvironment,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
TasksetSchema,
|
|
15
15
|
computeTasksetHash
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4A4FNG4R.js";
|
|
17
17
|
import {
|
|
18
18
|
MAX_TASKSET_PACKAGE_BYTES,
|
|
19
19
|
ModelStarterExecutionSchema,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
resolveTasksetPackageInstructions,
|
|
33
33
|
structuredSamplingSchemaDeclaration,
|
|
34
34
|
validateTasksetPackage
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-AQV7RQZH.js";
|
|
36
36
|
import {
|
|
37
37
|
ModelTasksetAuthoringOwnerSchema,
|
|
38
38
|
ModelTasksetDraftPreparationSchema,
|
|
@@ -471,4 +471,4 @@ export {
|
|
|
471
471
|
compileTasksetDraftWorkspace,
|
|
472
472
|
compileModelTasksetDraftWorkspace
|
|
473
473
|
};
|
|
474
|
-
//# sourceMappingURL=chunk-
|
|
474
|
+
//# sourceMappingURL=chunk-3BILL33A.js.map
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchConnectedJson
|
|
3
3
|
} from "./chunk-O6FKHAWN.js";
|
|
4
|
+
import {
|
|
5
|
+
DEFAULT_API_BASE_URL
|
|
6
|
+
} from "./chunk-QYWPNNP3.js";
|
|
4
7
|
|
|
5
8
|
// src/evaluation-coordination-http.ts
|
|
6
9
|
import { z } from "zod";
|
|
7
10
|
var EvaluationCoordinationTransport = class {
|
|
8
11
|
constructor(access) {
|
|
9
12
|
this.access = access;
|
|
10
|
-
const url = new URL(access.baseUrl);
|
|
13
|
+
const url = new URL(access.baseUrl ?? DEFAULT_API_BASE_URL);
|
|
11
14
|
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !access.apiKey.trim() || !access.actorId.trim() || !access.teamId.trim()) throw new Error("Select the current evaluation owner and HTTP API origin.");
|
|
12
15
|
this.origin = url.toString().replace(/\/+$/, "");
|
|
13
16
|
}
|
|
@@ -34,4 +37,4 @@ var EvaluationCoordinationTransport = class {
|
|
|
34
37
|
export {
|
|
35
38
|
EvaluationCoordinationTransport
|
|
36
39
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
40
|
+
//# sourceMappingURL=chunk-456F3BXD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/evaluation-coordination-http.ts"],"sourcesContent":["import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport {z} from \"zod\";\nimport {fetchConnectedJson} from \"./connected-evidence-http.js\";\nexport type EvaluationCoordinationAccess={baseUrl?:string;apiKey:string;actorId:string;teamId:string;projectId:string|null;fetch?:typeof fetch};\n/** Bounded authenticated transport for the current evaluation owner. There is\n * no retry or operation allocation here; commands retain their reviewed IDs. */\nexport class EvaluationCoordinationTransport {\n readonly origin:string;\n constructor(readonly access:EvaluationCoordinationAccess){\n const url=new URL(access.baseUrl ?? DEFAULT_API_BASE_URL);\n if(![\"http:\",\"https:\"].includes(url.protocol)||url.username||url.password||url.search||url.hash||!access.apiKey.trim()||!access.actorId.trim()||!access.teamId.trim())throw new Error(\"Select the current evaluation owner and HTTP API origin.\");\n this.origin=url.toString().replace(/\\/+$/,\"\");\n }\n async post(path:\"experiment-evaluation-schedules\"|\"advanced-refiner-evaluations\",request:unknown,signal?:AbortSignal){\n const body=JSON.stringify({teamId:this.access.teamId,projectId:this.access.projectId,request});\n if(new TextEncoder().encode(body).byteLength>1_048_576)throw new Error(\"The reviewed evaluation command exceeds 1 MiB.\");\n const {response,value}=await fetchConnectedJson(this.access.fetch??fetch,`${this.origin}/v1/${path}`,{\n method:\"POST\",redirect:\"error\",headers:{Authorization:`Bearer ${this.access.apiKey}`,\"X-OpenPond-Team-Id\":this.access.teamId,\"Content-Type\":\"application/json\"},body,signal,\n },(status,code,message)=>Object.assign(new Error(message),{status,code}));\n if(!response.ok){const error=z.object({error:z.string().optional(),message:z.string().optional(),code:z.string().optional()}).passthrough().safeParse(value);throw Object.assign(new Error(error.success?error.data.error??error.data.message??\"Evaluation operation failed.\":\"Evaluation operation failed.\"),{status:response.status,code:error.success?error.data.code:undefined});}\n return value;\n }\n}\n"],"mappings":";;;;;;;;AACA,SAAQ,SAAQ;AAKT,IAAM,kCAAN,MAAsC;AAAA,EAE3C,YAAqB,QAAoC;AAApC;AACnB,UAAM,MAAI,IAAI,IAAI,OAAO,WAAW,oBAAoB;AACxD,QAAG,CAAC,CAAC,SAAQ,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAAG,IAAI,YAAU,IAAI,YAAU,IAAI,UAAQ,IAAI,QAAM,CAAC,OAAO,OAAO,KAAK,KAAG,CAAC,OAAO,QAAQ,KAAK,KAAG,CAAC,OAAO,OAAO,KAAK,EAAE,OAAM,IAAI,MAAM,0DAA0D;AAChP,SAAK,SAAO,IAAI,SAAS,EAAE,QAAQ,QAAO,EAAE;AAAA,EAC9C;AAAA,EAJqB;AAAA,EADZ;AAAA,EAMT,MAAM,KAAK,MAAsE,SAAgB,QAAoB;AACnH,UAAM,OAAK,KAAK,UAAU,EAAC,QAAO,KAAK,OAAO,QAAO,WAAU,KAAK,OAAO,WAAU,QAAO,CAAC;AAC7F,QAAG,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,aAAW,QAAU,OAAM,IAAI,MAAM,gDAAgD;AACvH,UAAM,EAAC,UAAS,MAAK,IAAE,MAAM,mBAAmB,KAAK,OAAO,SAAO,OAAM,GAAG,KAAK,MAAM,OAAO,IAAI,IAAG;AAAA,MACnG,QAAO;AAAA,MAAO,UAAS;AAAA,MAAQ,SAAQ,EAAC,eAAc,UAAU,KAAK,OAAO,MAAM,IAAG,sBAAqB,KAAK,OAAO,QAAO,gBAAe,mBAAkB;AAAA,MAAE;AAAA,MAAK;AAAA,IACvK,GAAE,CAAC,QAAO,MAAK,YAAU,OAAO,OAAO,IAAI,MAAM,OAAO,GAAE,EAAC,QAAO,KAAI,CAAC,CAAC;AACxE,QAAG,CAAC,SAAS,IAAG;AAAC,YAAM,QAAM,EAAE,OAAO,EAAC,OAAM,EAAE,OAAO,EAAE,SAAS,GAAE,SAAQ,EAAE,OAAO,EAAE,SAAS,GAAE,MAAK,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,EAAE,YAAY,EAAE,UAAU,KAAK;AAAE,YAAM,OAAO,OAAO,IAAI,MAAM,MAAM,UAAQ,MAAM,KAAK,SAAO,MAAM,KAAK,WAAS,iCAA+B,8BAA8B,GAAE,EAAC,QAAO,SAAS,QAAO,MAAK,MAAM,UAAQ,MAAM,KAAK,OAAK,OAAS,CAAC;AAAA,IAAE;AACrX,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
TasksetPreferenceComparisonBindingSchema,
|
|
12
12
|
TasksetPurposeSchema,
|
|
13
13
|
TasksetSourceRefSchema
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-AQV7RQZH.js";
|
|
15
15
|
import {
|
|
16
16
|
ModelTasksetDraftPreparationSchema
|
|
17
17
|
} from "./chunk-TK3DXH7A.js";
|
|
@@ -910,4 +910,4 @@ export {
|
|
|
910
910
|
computeTasksetHash,
|
|
911
911
|
validatePortability
|
|
912
912
|
};
|
|
913
|
-
//# sourceMappingURL=chunk-
|
|
913
|
+
//# sourceMappingURL=chunk-4A4FNG4R.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTrainingRequest
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QKLZZOZD.js";
|
|
4
4
|
import {
|
|
5
5
|
OpenPondProtocolError
|
|
6
6
|
} from "./chunk-B3ZHJ2KK.js";
|
|
@@ -158,4 +158,4 @@ export {
|
|
|
158
158
|
createTrainingHardwareClient,
|
|
159
159
|
createHardwareObservationClient
|
|
160
160
|
};
|
|
161
|
-
//# sourceMappingURL=chunk-
|
|
161
|
+
//# sourceMappingURL=chunk-4CDLPMJK.js.map
|
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
} from "./chunk-GPQLBVQC.js";
|
|
10
10
|
import {
|
|
11
11
|
AuthoredTasksetFileInventorySchema
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3BILL33A.js";
|
|
13
13
|
import {
|
|
14
14
|
configuredTasksetDraftFiles,
|
|
15
15
|
createTasksetDraftWorkspace,
|
|
16
16
|
decodeTasksetDraftWorkspaceFile,
|
|
17
17
|
isManagedTasksetDraftFilePath
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JINWKUKR.js";
|
|
19
19
|
import {
|
|
20
20
|
TasksetDraftSchema
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4A4FNG4R.js";
|
|
22
22
|
import {
|
|
23
23
|
compileModelTasksetReward,
|
|
24
24
|
createTasksetPackage,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
resolveTasksetPackageExecution,
|
|
27
27
|
resolveTasksetPackageInstructions,
|
|
28
28
|
validateTasksetPackage
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-AQV7RQZH.js";
|
|
30
30
|
import {
|
|
31
31
|
ModelTasksetDraftPreparationSchema,
|
|
32
32
|
TasksetDraftFilePathSchema
|
|
@@ -698,4 +698,4 @@ export {
|
|
|
698
698
|
prepareTasksetDraftSource,
|
|
699
699
|
materializeTasksetDraftWorkspace
|
|
700
700
|
};
|
|
701
|
-
//# sourceMappingURL=chunk-
|
|
701
|
+
//# sourceMappingURL=chunk-4CRLQMJ2.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
ExperimentImprovementTestRecipeSchema,
|
|
11
11
|
verifyExperimentImprovementHumanOptions,
|
|
12
12
|
verifyExperimentImprovementState
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-D26RJQU7.js";
|
|
14
14
|
import {
|
|
15
15
|
fetchConnectedJson
|
|
16
16
|
} from "./chunk-O6FKHAWN.js";
|
|
@@ -19,6 +19,9 @@ import {
|
|
|
19
19
|
contentHash,
|
|
20
20
|
sha256
|
|
21
21
|
} from "./chunk-H3JZ3P5T.js";
|
|
22
|
+
import {
|
|
23
|
+
DEFAULT_API_BASE_URL
|
|
24
|
+
} from "./chunk-QYWPNNP3.js";
|
|
22
25
|
|
|
23
26
|
// src/experiment-improvement-client.ts
|
|
24
27
|
import { z as z2 } from "zod";
|
|
@@ -97,7 +100,7 @@ var HostedProfileCandidateCommandSchema = z.discriminatedUnion("operation", [
|
|
|
97
100
|
var ExperimentImprovementClient = class {
|
|
98
101
|
constructor(options) {
|
|
99
102
|
this.options = options;
|
|
100
|
-
const url = new URL(options.baseUrl);
|
|
103
|
+
const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);
|
|
101
104
|
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.hash || url.search || !options.apiKey.trim() || !options.teamId.trim() || !options.actorId.trim()) throw new Error("Select the authenticated Improve owner and API origin.");
|
|
102
105
|
this.origin = url.toString().replace(/\/+$/, "");
|
|
103
106
|
}
|
|
@@ -157,4 +160,4 @@ export {
|
|
|
157
160
|
HostedProfileCandidateCommandSchema,
|
|
158
161
|
ExperimentImprovementClient
|
|
159
162
|
};
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
163
|
+
//# sourceMappingURL=chunk-4PEK3YOW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/experiment-improvement-client.ts","../src/experiment-improvement-hosted-adoption.ts"],"sourcesContent":["import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport {z} from \"zod\";\nimport {contentHash,sha256} from \"@openpond/harness\";\nimport {verifyExperimentImprovementHumanOptions,ExperimentImprovementListSchema,ExperimentImprovementOptionsSchema,ExperimentImprovementCommandSchema,verifyExperimentImprovementState,type ExperimentImprovementCommand} from \"./experiment-improvement-contracts.js\";\nimport {HostedProfileCandidateCommandSchema,verifyHostedProfileCandidateReceipt} from \"./experiment-improvement-hosted-adoption.js\";\nimport {fetchConnectedJson} from \"./connected-evidence-http.js\";\nexport class ExperimentImprovementClient {\n private readonly origin:string;\n constructor(private readonly options:{baseUrl?:string;apiKey:string;teamId:string;actorId:string;fetch?:typeof fetch}){const url=new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);if(![\"http:\",\"https:\"].includes(url.protocol)||url.username||url.password||url.hash||url.search||!options.apiKey.trim()||!options.teamId.trim()||!options.actorId.trim())throw new Error(\"Select the authenticated Improve owner and API origin.\");this.origin=url.toString().replace(/\\/+$/,\"\");}\n async hostedCandidate(raw:import(\"zod\").input<typeof HostedProfileCandidateCommandSchema>,signal?:AbortSignal){const request=HostedProfileCandidateCommandSchema.parse(raw);if(request.operation===\"adopt\"&&(request.export.actorId!==this.options.actorId||request.export.teamId!==this.options.teamId))throw new Error(\"The hosted candidate export belongs to a different owner.\");const {response,value}=await fetchConnectedJson(this.options.fetch??fetch,`${this.origin}/v1/profile-candidate-adoptions`,{method:\"POST\",redirect:\"error\",headers:{Authorization:`Bearer ${this.options.apiKey}`,\"Content-Type\":\"application/json\",\"X-OpenPond-Team-Id\":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,command:request}),signal},(status,code,message)=>Object.assign(new Error(message),{status,code}));if(!response.ok){const error=z.object({code:z.string(),message:z.string().optional(),error:z.string().optional()}).passthrough().safeParse(value);throw Object.assign(new Error(error.success?error.data.message??error.data.error??error.data.code:\"Hosted candidate operation failed.\"),{status:response.status,code:error.success?error.data.code:undefined});}const receipt=verifyHostedProfileCandidateReceipt(value);if(receipt.actorId!==this.options.actorId||receipt.teamId!==this.options.teamId||receipt.operationId!==request.operationId||request.operation===\"adopt\"&&(receipt.exportHash!==request.export.contentHash||receipt.candidateId!==request.export.candidateId||receipt.testedCandidateRelease.contentHash!==request.export.policySource.harnessRelease.contentHash))throw new Error(\"Hosted candidate readback differs from the exact owner request.\");return receipt;}\n async command(raw:ExperimentImprovementCommand,signal?:AbortSignal){const request=ExperimentImprovementCommandSchema.parse(raw),{response,value}=await fetchConnectedJson(this.options.fetch??fetch,`${this.origin}/v1/experiment-improvements`,{method:\"POST\",redirect:\"error\",headers:{Authorization:`Bearer ${this.options.apiKey}`,\"Content-Type\":\"application/json\",\"X-OpenPond-Team-Id\":this.options.teamId},body:JSON.stringify({teamId:this.options.teamId,request}),signal},(status,code,message)=>Object.assign(new Error(message),{status,code}));\n if(!response.ok){const error=z.object({error:z.string(),code:z.string().optional()}).passthrough().safeParse(value);throw Object.assign(new Error(error.success?error.data.error:\"The Improve operation failed.\"),{status:response.status,code:error.success?error.data.code:undefined});}\n if(request.operation===\"options\"){const result=ExperimentImprovementOptionsSchema.parse(value);if(result.teamId!==this.options.teamId||contentHash(result.evidence)!==contentHash(request.evidence))throw new Error(\"The Improve choices changed their exact originating evidence.\");return result;}\n if(request.operation===\"humanComparisonOptions\"){const result=verifyExperimentImprovementHumanOptions(value);if(result.candidateId!==request.id||result.actorId!==this.options.actorId||result.teamId!==this.options.teamId)throw new Error(\"Human discovery belongs to another owner or candidate.\");return result;}\n if(request.operation===\"instructions\"){const result=z.object({candidateId:z.string(),candidateRevision:z.number().int().positive(),path:z.string(),text:z.string().max(250000),textHash:z.string().regex(/^[a-f0-9]{64}$/),contentHash:z.string().regex(/^[a-f0-9]{64}$/)}).strict().parse(value);if(result.candidateId!==request.id||sha256(result.text)!==result.textHash)throw new Error(\"The candidate instructions belong to a different revision.\");return result;}\n const page=request.operation===\"list\"?ExperimentImprovementListSchema.parse(value):null;if(request.operation===\"list\"&&page&&(page.states.length>request.limit||page.states.some((state,index)=>request.cursor&&state.id<=request.cursor||index>0&&state.id<=page.states[index-1]!.id)||page.nextCursor&&(request.cursor&&page.nextCursor<=request.cursor||page.states.some(state=>state.id>page.nextCursor!))))throw new Error(\"The retained candidate page changed its scan boundary.\");\n const states=page? page.states:[value];const parsed=states.map(item=>{const state=verifyExperimentImprovementState(item);if(state.actorId!==this.options.actorId||state.teamId!==this.options.teamId||\"id\" in request&&state.id!==request.id)throw new Error(\"The Improve response belongs to a different owner or candidate.\");if(request.operation===\"start\"&&state.requestHash!==contentHash(request.request))throw new Error(\"The Improve request identity changed.\");return state;});return page?{states:parsed,nextCursor:page.nextCursor}:parsed[0]!;\n }\n}\n","import {z} from \"zod\";\nimport {contentHash,ImmutableReleaseRefSchema,HarnessPolicySourcePackageSchema,validateHarnessPolicySourcePackage} from \"@openpond/harness\";\nimport {ExperimentImprovementTestRecipeSchema,ExperimentImprovementStateSchema} from \"./experiment-improvement-contracts.js\";\nconst Id=z.string().min(1).max(240),Hash=z.string().regex(/^[a-f0-9]{64}$/),Commit=z.string().regex(/^[a-f0-9]{40}$/);\n/** This export attests native owner execution. It never asserts a hosted run,\n * grants training eligibility, or authorizes automatic candidate adoption. */\nexport const HostedProfileCandidateExportSchema=z.object({schemaVersion:z.literal(\"openpond.hostedProfileCandidateExport.v1\"),\n actorId:Id,teamId:Id,candidateId:Id,candidateRevision:z.number().int().positive(),projectId:Id.nullable(),\n profileRef:z.object({source:z.literal(\"openpond_git\"),repositoryId:Id,profileId:Id}).strict(),expectedCommit:Commit,\n component:ExperimentImprovementStateSchema.shape.component,baseRelease:ImmutableReleaseRefSchema,\n frozenHash:Hash,executableSourceHash:Hash,protectedClosureHash:Hash,\n compiler:z.object({workspaceId:Id,name:z.string().max(500),repositoryId:Id}).strict(),\n sourceManifest:z.object({base64:z.string().max(2_800_000),contentHash:Hash,sizeBytes:z.number().int().positive().max(2_000_000)}).strict(),\n policySource:HarnessPolicySourcePackageSchema,\n qualification:z.object({kind:z.enum([\"owner_attested_local\",\"hosted_execution\"]),ownerActorId:Id,teamId:Id,originalEvidence:ImmutableReleaseRefSchema,\n baseline:ImmutableReleaseRefSchema,candidate:ImmutableReleaseRefSchema,comparisonHash:Hash,recipe:ExperimentImprovementTestRecipeSchema}).strict(),\n createdAt:z.string().datetime(),contentHash:Hash}).strict();\nexport type HostedProfileCandidateExport=z.infer<typeof HostedProfileCandidateExportSchema>;\nexport function verifyHostedProfileCandidateExport(raw:unknown){const value=HostedProfileCandidateExportSchema.parse(raw),{contentHash:hash,...body}=value;\n if(contentHash(body)!==hash||value.qualification.ownerActorId!==value.actorId||value.qualification.teamId!==value.teamId||value.qualification.recipe.externalDatasetBinding.profileId!==value.profileRef.profileId||value.qualification.recipe.externalDatasetBinding.protectedProfileClosureHash!==value.protectedClosureHash)throw new Error(\"Hosted candidate owner attestation identity differs.\");\n validateHarnessPolicySourcePackage(value.policySource);return value;\n}\nexport const HostedProfileCandidateReceiptSchema=z.object({schemaVersion:z.literal(\"openpond.hostedProfileCandidateAdoption.v1\"),id:Id,operationId:Id,actorId:Id,teamId:Id,\n candidateId:Id,exportHash:Hash,executionOrigin:z.enum([\"owner_attested_local\",\"hosted_execution\"]),qualification:HostedProfileCandidateExportSchema.shape.qualification,\n testedCandidateRelease:ImmutableReleaseRefSchema,activeRelease:ImmutableReleaseRefSchema,expectedCommit:Commit,committedProfileGit:Commit,\n executableSourceHash:Hash,protectedClosureHash:Hash,createdAt:z.string().datetime(),contentHash:Hash}).strict();\nexport type HostedProfileCandidateReceipt=z.infer<typeof HostedProfileCandidateReceiptSchema>;\nexport function verifyHostedProfileCandidateReceipt(raw:unknown){const value=HostedProfileCandidateReceiptSchema.parse(raw),{contentHash:hash,...body}=value;if(contentHash(body)!==hash||value.executionOrigin!==value.qualification.kind||value.qualification.ownerActorId!==value.actorId||value.qualification.teamId!==value.teamId)throw new Error(\"Hosted candidate receipt integrity differs.\");return value;}\nexport const HostedProfileCandidateCommandSchema=z.discriminatedUnion(\"operation\",[\n z.object({operation:z.literal(\"adopt\"),operationId:Id,export:HostedProfileCandidateExportSchema}).strict(),\n z.object({operation:z.enum([\"read\",\"rollback\"]),operationId:Id,adoptionOperationId:Id,profileRepositoryId:Id}).strict(),\n]);\n"],"mappings":"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","names":["z","z"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HarnessExperimentPolicySchema,
|
|
3
3
|
ModelTasksetRunRequestSchema
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XWUTYFOU.js";
|
|
5
5
|
import {
|
|
6
6
|
contentHash
|
|
7
7
|
} from "./chunk-H3JZ3P5T.js";
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
verifyExperimentDefinition,
|
|
173
173
|
experimentDefinitionRef
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-4REK5TTE.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TasksetDraftWorkspaceSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JINWKUKR.js";
|
|
4
4
|
import {
|
|
5
5
|
TasksetCatalogReleaseRefSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VE5JD5FN.js";
|
|
7
7
|
import {
|
|
8
8
|
contentHash
|
|
9
9
|
} from "./chunk-H3JZ3P5T.js";
|
|
@@ -178,4 +178,4 @@ export {
|
|
|
178
178
|
ConnectedStartingAssetsReceiptSchema,
|
|
179
179
|
verifyConnectedStartingAssetsReceipt
|
|
180
180
|
};
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-57ROW3XF.js.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fetchConnectedJson
|
|
3
|
+
} from "./chunk-O6FKHAWN.js";
|
|
1
4
|
import {
|
|
2
5
|
AgentImportCommitRequestSchema,
|
|
3
6
|
AgentImportPreviewRequestSchema,
|
|
@@ -8,14 +11,14 @@ import {
|
|
|
8
11
|
ConnectedStartingAssetsRequestSchema,
|
|
9
12
|
DatasetWorkspaceReceiptSchema,
|
|
10
13
|
verifyConnectedStartingAssetsReceipt
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
fetchConnectedJson
|
|
14
|
-
} from "./chunk-O6FKHAWN.js";
|
|
14
|
+
} from "./chunk-57ROW3XF.js";
|
|
15
15
|
import {
|
|
16
16
|
ImmutableReleaseRefSchema,
|
|
17
17
|
contentHash
|
|
18
18
|
} from "./chunk-H3JZ3P5T.js";
|
|
19
|
+
import {
|
|
20
|
+
DEFAULT_API_BASE_URL
|
|
21
|
+
} from "./chunk-QYWPNNP3.js";
|
|
19
22
|
|
|
20
23
|
// src/connected-recorded-execution.ts
|
|
21
24
|
import { z } from "zod";
|
|
@@ -211,7 +214,7 @@ var ConnectedEvidenceError = class extends Error {
|
|
|
211
214
|
var ConnectedEvidenceClient = class {
|
|
212
215
|
constructor(options) {
|
|
213
216
|
this.options = options;
|
|
214
|
-
const url = new URL(options.baseUrl);
|
|
217
|
+
const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);
|
|
215
218
|
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim())
|
|
216
219
|
throw new Error("A clean API origin and workspace credentials are required.");
|
|
217
220
|
this.baseUrl = url.toString().replace(/\/+$/, "");
|
|
@@ -469,7 +472,7 @@ var ConnectedSyncCommitSchema = z5.object({
|
|
|
469
472
|
var ConnectedSyncClient = class {
|
|
470
473
|
constructor(options) {
|
|
471
474
|
this.options = options;
|
|
472
|
-
const url = new URL(options.baseUrl);
|
|
475
|
+
const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);
|
|
473
476
|
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash)
|
|
474
477
|
throw new Error("Invalid connected-sync API origin.");
|
|
475
478
|
}
|
|
@@ -583,7 +586,7 @@ var ConnectedSyncClient = class {
|
|
|
583
586
|
async request(path, method, body, signal) {
|
|
584
587
|
const { response, value } = await fetchConnectedJson(
|
|
585
588
|
this.options.fetch ?? fetch,
|
|
586
|
-
`${this.options.baseUrl.replace(/\/+$/u, "")}/v1/connected-evidence/sync/connections${path}`,
|
|
589
|
+
`${(this.options.baseUrl ?? DEFAULT_API_BASE_URL).replace(/\/+$/u, "")}/v1/connected-evidence/sync/connections${path}`,
|
|
587
590
|
{
|
|
588
591
|
method,
|
|
589
592
|
signal,
|
|
@@ -650,4 +653,4 @@ export {
|
|
|
650
653
|
summarizeCollectorCoverage2 as summarizeCollectorCoverage,
|
|
651
654
|
hashCollectorEligibleBoundaries
|
|
652
655
|
};
|
|
653
|
-
//# sourceMappingURL=chunk-
|
|
656
|
+
//# sourceMappingURL=chunk-6LVLWRBJ.js.map
|