openpond-sdk 0.9.6 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/chunk-4HZORGK3.js +158 -0
  2. package/dist/chunk-4HZORGK3.js.map +7 -0
  3. package/dist/{chunk-XR6CLSCS.js → chunk-BGXWHDYM.js} +3 -2
  4. package/dist/chunk-BGXWHDYM.js.map +7 -0
  5. package/dist/{chunk-EMANJDJR.js → chunk-RXKIOOFZ.js} +62 -199
  6. package/dist/chunk-RXKIOOFZ.js.map +7 -0
  7. package/dist/{chunk-62LWLACP.js → chunk-YYJ4T4U4.js} +2 -2
  8. package/dist/dataset-marketplace.js +227 -0
  9. package/dist/dataset-marketplace.js.map +7 -0
  10. package/dist/dataset-workspaces.js +136 -3
  11. package/dist/dataset-workspaces.js.map +4 -4
  12. package/dist/experiments.js +67 -10
  13. package/dist/experiments.js.map +4 -4
  14. package/dist/index.js +11 -10
  15. package/dist/index.js.map +1 -1
  16. package/dist/model-starter-attempts.js +1 -1
  17. package/dist/model-taskset-runs.js +2 -2
  18. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts +954 -0
  19. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts.map +1 -0
  20. package/dist/types/packages/sdk/src/dataset-population.d.ts +97 -0
  21. package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -0
  22. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +1183 -115
  23. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  24. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +72 -72
  25. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +1617 -0
  26. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -0
  27. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts +2 -0
  28. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts.map +1 -1
  29. package/dist/types/packages/sdk/src/evaluation-project-context.d.ts +1 -1
  30. package/dist/types/packages/sdk/src/experiment-client.d.ts +23 -23
  31. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +3 -3
  32. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +1 -1
  33. package/dist/types/packages/sdk/src/experiment-history.d.ts +266 -0
  34. package/dist/types/packages/sdk/src/experiment-history.d.ts.map +1 -0
  35. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +3 -3
  36. package/dist/types/packages/sdk/src/experiments.d.ts +1 -0
  37. package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -1
  38. package/dist/types/packages/sdk/src/grader-inspection.d.ts +8 -8
  39. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +2 -2
  40. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +4 -4
  41. package/dist/types/packages/sdk/src/model-batch-review.d.ts +16 -16
  42. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +1 -1
  43. package/dist/types/packages/sdk/src/model-projects.d.ts +27 -27
  44. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +49 -48
  45. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  46. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +14 -14
  47. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +4 -4
  48. package/dist/types/packages/sdk/src/model-starters.d.ts +17 -17
  49. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +16 -16
  50. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +15 -15
  51. package/dist/types/packages/sdk/src/task-inventory.d.ts +3 -3
  52. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +40 -40
  53. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +24 -24
  54. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +72 -72
  55. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +140 -140
  56. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +40 -40
  57. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +14 -14
  58. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +41 -41
  59. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +37 -37
  60. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +46 -46
  61. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +59 -59
  62. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +72 -72
  63. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +1733 -1733
  64. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +1083 -1083
  65. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +2 -2
  66. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +14 -14
  67. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +48 -48
  68. package/dist/types/packages/sdk/src/training-acceptance.d.ts +4 -4
  69. package/dist/types/packages/sdk/src/training-harness-sources.d.ts +1 -1
  70. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +54 -54
  71. package/dist/types/packages/sdk/src/training-project-client.d.ts +12 -12
  72. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +21 -21
  73. package/dist/types/packages/sdk/src/training.d.ts +24 -24
  74. package/package.json +5 -1
  75. package/dist/chunk-EMANJDJR.js.map +0 -7
  76. package/dist/chunk-XR6CLSCS.js.map +0 -7
  77. /package/dist/{chunk-62LWLACP.js.map → chunk-YYJ4T4U4.js.map} +0 -0
@@ -1,3 +1,10 @@
1
+ import {
2
+ ExperimentScoringPassSchema,
3
+ ExperimentScoringRequestSchema,
4
+ OpenPondExperimentError,
5
+ OpenPondExperimentsClient,
6
+ verifyExperimentScoringPass
7
+ } from "./chunk-RXKIOOFZ.js";
1
8
  import {
2
9
  ExperimentDefinitionRefSchema,
3
10
  ExperimentDefinitionSchema,
@@ -7,25 +14,22 @@ import {
7
14
  ExperimentGraderPinSchema,
8
15
  ExperimentGraderSelectionSchema,
9
16
  ExperimentListQuerySchema,
10
- ExperimentScoringPassSchema,
11
- ExperimentScoringRequestSchema,
12
- OpenPondExperimentError,
13
- OpenPondExperimentsClient,
14
17
  PrepareHarnessExperimentSchema,
15
18
  PreparedHarnessExperimentSchema,
16
19
  SaveExperimentSchema,
17
20
  StartExperimentSchema,
18
21
  experimentDefinitionRef,
19
22
  mapExperimentGradingFields,
20
- verifyExperimentDefinition,
21
- verifyExperimentScoringPass
22
- } from "./chunk-EMANJDJR.js";
23
+ verifyExperimentDefinition
24
+ } from "./chunk-4HZORGK3.js";
23
25
  import {
24
- HarnessExperimentPolicySchema
25
- } from "./chunk-62LWLACP.js";
26
+ HarnessExperimentPolicySchema,
27
+ ModelTasksetRunPolicySchema,
28
+ ModelTasksetRunSummarySchema
29
+ } from "./chunk-YYJ4T4U4.js";
26
30
  import {
27
31
  ExperimentAttemptGradeSchema
28
- } from "./chunk-XR6CLSCS.js";
32
+ } from "./chunk-BGXWHDYM.js";
29
33
  import "./chunk-TCHAWJMB.js";
30
34
  import "./chunk-3KXDH6OB.js";
31
35
  import "./chunk-Y4NGWGTA.js";
@@ -60,6 +64,55 @@ var OpenPondExperimentInspectionClient = class {
60
64
  return result;
61
65
  }
62
66
  };
67
+
68
+ // src/experiment-history.ts
69
+ import { z as z2 } from "zod";
70
+ var Id2 = z2.string().trim().min(1).max(240);
71
+ var ExperimentHistoryQuerySchema = z2.object({ projectId: Id2.optional(), afterId: Id2.optional(), limit: z2.number().int().min(1).max(100).default(30), status: ModelTasksetRunSummarySchema.shape.status.optional(), search: z2.string().trim().max(100).optional(), modelId: Id2.optional(), tasksetHash: z2.string().regex(/^[a-f0-9]{64}$/).optional() }).strict();
72
+ var ExperimentHistoryItemSchema = z2.object({ summary: ModelTasksetRunSummarySchema, definition: ExperimentDefinitionRefSchema, policy: ModelTasksetRunPolicySchema }).strict().superRefine((item, context) => {
73
+ if (item.summary.policyKind !== item.policy.kind) context.addIssue({ code: "custom", path: ["policy"], message: "History target differs from the retained execution." });
74
+ });
75
+ var ExperimentHistoryPageSchema = z2.object({ items: z2.array(ExperimentHistoryItemSchema).max(100), nextCursor: Id2.nullable() }).strict();
76
+ var OpenPondExperimentHistoryClient = class {
77
+ constructor(options) {
78
+ this.options = options;
79
+ const url = new URL(options.baseUrl);
80
+ if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error("A clean API origin and workspace credentials are required.");
81
+ this.baseUrl = url.toString().replace(/\/+$/, "");
82
+ }
83
+ options;
84
+ baseUrl;
85
+ async list(input = {}, signal) {
86
+ const query = ExperimentHistoryQuerySchema.parse(input);
87
+ const params = new URLSearchParams(Object.entries(query).map(([key, value]) => [key, String(value)]));
88
+ const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/experiments/executions?${params}`, { signal, redirect: "error", headers: { Authorization: `Bearer ${this.options.apiKey}`, "X-OpenPond-Team-Id": this.options.teamId, Accept: "application/json" } });
89
+ if (!response.ok) throw new Error(`Experiment history request failed (${response.status}).`);
90
+ if (!response.body) throw new Error("Experiment history response is empty.");
91
+ const reader = response.body.getReader();
92
+ const chunks = [];
93
+ let length = 0;
94
+ try {
95
+ while (true) {
96
+ const { done, value } = await reader.read();
97
+ if (done) break;
98
+ length += value.byteLength;
99
+ if (length > 4 * 1024 * 1024) throw new Error("Experiment history exceeds its bounded page.");
100
+ chunks.push(value);
101
+ }
102
+ } finally {
103
+ await reader.cancel();
104
+ }
105
+ const bytes = new Uint8Array(length);
106
+ let offset = 0;
107
+ for (const chunk of chunks) {
108
+ bytes.set(chunk, offset);
109
+ offset += chunk.byteLength;
110
+ }
111
+ const page = ExperimentHistoryPageSchema.parse(JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes)));
112
+ if (page.items.length > query.limit || new Set(page.items.map((item) => item.summary.id)).size !== page.items.length || page.items.some((item) => item.summary.teamId !== this.options.teamId || query.status && item.summary.status !== query.status || query.modelId && (!("modelId" in item.policy) || item.policy.modelId !== query.modelId) || query.tasksetHash && item.summary.taskset.contentHash !== query.tasksetHash) || page.nextCursor && page.nextCursor !== page.items.at(-1)?.summary.id) throw new Error("Experiment history differs from its requested scope or page.");
113
+ return page;
114
+ }
115
+ };
63
116
  export {
64
117
  ExperimentAttemptGradeSchema,
65
118
  ExperimentCaseInspectionSchema,
@@ -70,11 +123,15 @@ export {
70
123
  ExperimentFieldMappingsSchema,
71
124
  ExperimentGraderPinSchema,
72
125
  ExperimentGraderSelectionSchema,
126
+ ExperimentHistoryItemSchema,
127
+ ExperimentHistoryPageSchema,
128
+ ExperimentHistoryQuerySchema,
73
129
  ExperimentListQuerySchema,
74
130
  ExperimentScoringPassSchema,
75
131
  ExperimentScoringRequestSchema,
76
132
  HarnessExperimentPolicySchema,
77
133
  OpenPondExperimentError,
134
+ OpenPondExperimentHistoryClient,
78
135
  OpenPondExperimentInspectionClient,
79
136
  OpenPondExperimentsClient,
80
137
  PrepareHarnessExperimentSchema,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/experiment-inspection.ts"],
4
- "sourcesContent": ["import { z } from \"zod\";\nimport { contentHash } from \"@openpond/harness\";\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Content = z.object({ schemaVersion: z.literal(\"openpond.experimentCaseInspection.v1\"), teamId: Id, executionId: Id, manifestHash: Hash, receiptId: Id, taskId: Id, seed: z.string().min(1), input: z.record(z.string(), z.unknown()).nullable(), output: z.unknown().nullable(), error: z.string().nullable(), events: z.array(z.record(z.string(), z.unknown())).max(25), nextEventCursor: Id.nullable(), eventCount: z.number().int().nonnegative() }).strict();\nexport const ExperimentCaseInspectionSchema = Content.extend({ contentHash: Hash }).strict();\nexport type ExperimentCaseInspection = z.infer<typeof ExperimentCaseInspectionSchema>;\nexport class OpenPondExperimentInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n /** Retained, policy-facing evidence only. Reading a page never dispatches. */\n async case(executionId: string, receiptId: string, options: { manifestHash?: string; afterId?: string; signal?: AbortSignal } = {}) {\n const params = new URLSearchParams(options.afterId ? { afterId: Id.parse(options.afterId) } : {});\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/experiments/executions/${encodeURIComponent(Id.parse(executionId))}/cases/${encodeURIComponent(Id.parse(receiptId))}?${params}`, { signal: options.signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ message: z.string() }).parse(value).message);\n const result = ExperimentCaseInspectionSchema.parse(value);\n const { contentHash: actual, ...content } = result;\n if (contentHash(content) !== actual || result.teamId !== this.options.teamId || result.executionId !== executionId || result.receiptId !== receiptId || options.manifestHash && result.manifestHash !== options.manifestHash || result.events.length > result.eventCount) throw new Error(\"Case inspection differs from its requested workspace, execution or retained content.\");\n return result;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,SAAS;AAElB,IAAM,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3C,IAAM,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB;AAC9C,IAAM,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,sCAAsC,GAAG,QAAQ,IAAI,aAAa,IAAI,cAAc,MAAM,WAAW,IAAI,QAAQ,IAAI,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,iBAAiB,GAAG,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO;AAC/b,IAAM,iCAAiC,QAAQ,OAAO,EAAE,aAAa,KAAK,CAAC,EAAE,OAAO;AAEpF,IAAM,qCAAN,MAAyC;AAAA,EAE9C,YAA6B,SAAoF;AAApF;AAC3B,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO;AACnC,QAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAAK,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,QAAQ,CAAC,QAAQ,OAAO,KAAK,KAAK,CAAC,QAAQ,OAAO,KAAK,EAAG,OAAM,IAAI,MAAM,4DAA4D;AAC3O,SAAK,UAAU,IAAI,SAAS,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAClD;AAAA,EAJ6B;AAAA,EADZ;AAAA;AAAA,EAOjB,MAAM,KAAK,aAAqB,WAAmB,UAA6E,CAAC,GAAG;AAClI,UAAM,SAAS,IAAI,gBAAgB,QAAQ,UAAU,EAAE,SAAS,GAAG,MAAM,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC;AAChG,UAAM,WAAW,OAAO,KAAK,QAAQ,SAAS,OAAO,GAAG,KAAK,OAAO,8BAA8B,mBAAmB,GAAG,MAAM,WAAW,CAAC,CAAC,UAAU,mBAAmB,GAAG,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,IAAI,EAAE,QAAQ,QAAQ,QAAQ,UAAU,SAAS,SAAS,EAAE,eAAe,UAAU,KAAK,QAAQ,MAAM,IAAI,sBAAsB,KAAK,QAAQ,QAAQ,QAAQ,mBAAmB,EAAE,CAAC;AAC3X,UAAM,QAAiB,MAAM,SAAS,KAAK;AAC3C,QAAI,CAAC,SAAS,GAAI,OAAM,IAAI,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,EAAE,OAAO;AACxF,UAAM,SAAS,+BAA+B,MAAM,KAAK;AACzD,UAAM,EAAE,aAAa,QAAQ,GAAG,QAAQ,IAAI;AAC5C,QAAI,YAAY,OAAO,MAAM,UAAU,OAAO,WAAW,KAAK,QAAQ,UAAU,OAAO,gBAAgB,eAAe,OAAO,cAAc,aAAa,QAAQ,gBAAgB,OAAO,iBAAiB,QAAQ,gBAAgB,OAAO,OAAO,SAAS,OAAO,WAAY,OAAM,IAAI,MAAM,sFAAsF;AAChX,WAAO;AAAA,EACT;AACF;",
6
- "names": []
3
+ "sources": ["../src/experiment-inspection.ts", "../src/experiment-history.ts"],
4
+ "sourcesContent": ["import { z } from \"zod\";\nimport { contentHash } from \"@openpond/harness\";\nconst Id = z.string().trim().min(1).max(500);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Content = z.object({ schemaVersion: z.literal(\"openpond.experimentCaseInspection.v1\"), teamId: Id, executionId: Id, manifestHash: Hash, receiptId: Id, taskId: Id, seed: z.string().min(1), input: z.record(z.string(), z.unknown()).nullable(), output: z.unknown().nullable(), error: z.string().nullable(), events: z.array(z.record(z.string(), z.unknown())).max(25), nextEventCursor: Id.nullable(), eventCount: z.number().int().nonnegative() }).strict();\nexport const ExperimentCaseInspectionSchema = Content.extend({ contentHash: Hash }).strict();\nexport type ExperimentCaseInspection = z.infer<typeof ExperimentCaseInspectionSchema>;\nexport class OpenPondExperimentInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n /** Retained, policy-facing evidence only. Reading a page never dispatches. */\n async case(executionId: string, receiptId: string, options: { manifestHash?: string; afterId?: string; signal?: AbortSignal } = {}) {\n const params = new URLSearchParams(options.afterId ? { afterId: Id.parse(options.afterId) } : {});\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/experiments/executions/${encodeURIComponent(Id.parse(executionId))}/cases/${encodeURIComponent(Id.parse(receiptId))}?${params}`, { signal: options.signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ message: z.string() }).parse(value).message);\n const result = ExperimentCaseInspectionSchema.parse(value);\n const { contentHash: actual, ...content } = result;\n if (contentHash(content) !== actual || result.teamId !== this.options.teamId || result.executionId !== executionId || result.receiptId !== receiptId || options.manifestHash && result.manifestHash !== options.manifestHash || result.events.length > result.eventCount) throw new Error(\"Case inspection differs from its requested workspace, execution or retained content.\");\n return result;\n }\n}\n", "import { z } from \"zod\";\nimport { ExperimentDefinitionRefSchema } from \"./experiment-contracts.js\";\nimport { ModelTasksetRunSummarySchema, ModelTasksetRunPolicySchema } from \"./model-taskset-runs-contracts.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nexport const ExperimentHistoryQuerySchema = z.object({ projectId: Id.optional(), afterId: Id.optional(), limit: z.number().int().min(1).max(100).default(30), status: ModelTasksetRunSummarySchema.shape.status.optional(), search: z.string().trim().max(100).optional(), modelId: Id.optional(), tasksetHash: z.string().regex(/^[a-f0-9]{64}$/).optional() }).strict();\nexport const ExperimentHistoryItemSchema = z.object({ summary: ModelTasksetRunSummarySchema, definition: ExperimentDefinitionRefSchema, policy: ModelTasksetRunPolicySchema }).strict().superRefine((item, context) => {\n if (item.summary.policyKind !== item.policy.kind) context.addIssue({ code: \"custom\", path: [\"policy\"], message: \"History target differs from the retained execution.\" });\n});\nexport const ExperimentHistoryPageSchema = z.object({ items: z.array(ExperimentHistoryItemSchema).max(100), nextCursor: Id.nullable() }).strict();\nexport type ExperimentHistoryItem = z.infer<typeof ExperimentHistoryItemSchema>;\nexport type ExperimentHistoryPage = z.infer<typeof ExperimentHistoryPageSchema>;\n\n/** Compact retained history; populations, private answers and case bytes stay\n * behind their existing authorized readers. This never refreshes dispatch. */\nexport class OpenPondExperimentHistoryClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async list(input: z.input<typeof ExperimentHistoryQuerySchema> = {}, signal?: AbortSignal): Promise<ExperimentHistoryPage> {\n const query = ExperimentHistoryQuerySchema.parse(input);\n const params = new URLSearchParams(Object.entries(query).map(([key, value]) => [key, String(value)]));\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/experiments/executions?${params}`, { signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n if (!response.ok) throw new Error(`Experiment history request failed (${response.status}).`);\n if (!response.body) throw new Error(\"Experiment history response is empty.\");\n const reader = response.body.getReader(); const chunks: Uint8Array[] = []; let length = 0;\n try { while (true) { const { done, value } = await reader.read(); if (done) break; length += value.byteLength; if (length > 4 * 1024 * 1024) throw new Error(\"Experiment history exceeds its bounded page.\"); chunks.push(value); } }\n finally { await reader.cancel(); }\n const bytes = new Uint8Array(length); let offset = 0; for (const chunk of chunks) { bytes.set(chunk, offset); offset += chunk.byteLength; }\n const page = ExperimentHistoryPageSchema.parse(JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)));\n if (page.items.length > query.limit || new Set(page.items.map(item => item.summary.id)).size !== page.items.length || page.items.some(item => item.summary.teamId !== this.options.teamId || query.status && item.summary.status !== query.status || query.modelId && (!(\"modelId\" in item.policy) || item.policy.modelId !== query.modelId) || query.tasksetHash && item.summary.taskset.contentHash !== query.tasksetHash) || page.nextCursor && page.nextCursor !== page.items.at(-1)?.summary.id) throw new Error(\"Experiment history differs from its requested scope or page.\");\n return page;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "Id", "z"]
7
7
  }
package/dist/index.js CHANGED
@@ -1,16 +1,20 @@
1
- import {
2
- OpenPondWorkflowsClient
3
- } from "./chunk-MEKWESBF.js";
4
- import "./chunk-LXXQVGQY.js";
5
1
  import {
6
2
  OpenPondLearningClient,
7
3
  OpenPondLearningError
8
4
  } from "./chunk-K4C5QOSV.js";
5
+ import {
6
+ OpenPondProfileActionsClient
7
+ } from "./chunk-2DMYAJLS.js";
8
+ import {
9
+ OpenPondWorkflowsClient
10
+ } from "./chunk-MEKWESBF.js";
11
+ import "./chunk-LXXQVGQY.js";
9
12
  import {
10
13
  OpenPondExperimentsClient
11
- } from "./chunk-EMANJDJR.js";
12
- import "./chunk-62LWLACP.js";
13
- import "./chunk-XR6CLSCS.js";
14
+ } from "./chunk-RXKIOOFZ.js";
15
+ import "./chunk-4HZORGK3.js";
16
+ import "./chunk-YYJ4T4U4.js";
17
+ import "./chunk-BGXWHDYM.js";
14
18
  import "./chunk-TCHAWJMB.js";
15
19
  import "./chunk-3KXDH6OB.js";
16
20
  import "./chunk-Y4NGWGTA.js";
@@ -30,9 +34,6 @@ import {
30
34
  import {
31
35
  OpenPondProjectActionsClient
32
36
  } from "./chunk-IWT6JUZD.js";
33
- import {
34
- OpenPondProfileActionsClient
35
- } from "./chunk-2DMYAJLS.js";
36
37
  import {
37
38
  OpenPondApiError,
38
39
  apiFetch,