openpond-sdk 0.3.3 → 0.5.0

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 (133) hide show
  1. package/MODEL_STARTERS.md +26 -0
  2. package/TASKSETS.md +55 -0
  3. package/dist/actions-local.js +67 -118
  4. package/dist/actions-local.js.map +4 -4
  5. package/dist/actions.js +4 -92
  6. package/dist/actions.js.map +4 -4
  7. package/dist/chunk-25TBEGXB.js +220 -0
  8. package/dist/chunk-25TBEGXB.js.map +7 -0
  9. package/dist/chunk-27ETSPHQ.js +83 -0
  10. package/dist/chunk-27ETSPHQ.js.map +7 -0
  11. package/dist/chunk-5PRP457R.js +477 -0
  12. package/dist/chunk-5PRP457R.js.map +7 -0
  13. package/dist/chunk-65D4C7HP.js +273 -0
  14. package/dist/chunk-65D4C7HP.js.map +7 -0
  15. package/dist/chunk-6LGGLXAM.js +2395 -0
  16. package/dist/chunk-6LGGLXAM.js.map +7 -0
  17. package/dist/chunk-747CMU2Y.js +222 -0
  18. package/dist/chunk-747CMU2Y.js.map +7 -0
  19. package/dist/chunk-7O5X7DBU.js +80 -0
  20. package/dist/chunk-7O5X7DBU.js.map +7 -0
  21. package/dist/chunk-A4ZDOZKP.js +115 -0
  22. package/dist/chunk-A4ZDOZKP.js.map +7 -0
  23. package/dist/chunk-APHPXQEA.js +155 -0
  24. package/dist/chunk-APHPXQEA.js.map +7 -0
  25. package/dist/chunk-AVW35YOH.js +574 -0
  26. package/dist/chunk-AVW35YOH.js.map +7 -0
  27. package/dist/chunk-EPJM7VEV.js +177 -0
  28. package/dist/chunk-EPJM7VEV.js.map +7 -0
  29. package/dist/chunk-EV4PKJWN.js +1373 -0
  30. package/dist/chunk-EV4PKJWN.js.map +7 -0
  31. package/dist/chunk-K5ZCYOZO.js +49 -0
  32. package/dist/chunk-K5ZCYOZO.js.map +7 -0
  33. package/dist/chunk-LXXQVGQY.js +1 -0
  34. package/dist/chunk-LXXQVGQY.js.map +7 -0
  35. package/dist/chunk-NF63YMOL.js +593 -0
  36. package/dist/chunk-NF63YMOL.js.map +7 -0
  37. package/dist/chunk-P27DQ65Z.js +138 -0
  38. package/dist/chunk-P27DQ65Z.js.map +7 -0
  39. package/dist/chunk-QLEJOCQX.js +72 -0
  40. package/dist/chunk-QLEJOCQX.js.map +7 -0
  41. package/dist/chunk-S7I45WJQ.js +57 -0
  42. package/dist/chunk-S7I45WJQ.js.map +7 -0
  43. package/dist/index.js +33 -2488
  44. package/dist/index.js.map +4 -4
  45. package/dist/learning.js +16 -2042
  46. package/dist/learning.js.map +4 -4
  47. package/dist/model-batch-review.js +5 -42
  48. package/dist/model-batch-review.js.map +3 -3
  49. package/dist/model-projects.js +29 -430
  50. package/dist/model-projects.js.map +3 -3
  51. package/dist/model-starter-attempts.js +13 -420
  52. package/dist/model-starter-attempts.js.map +4 -4
  53. package/dist/model-starter-catalog.js +17 -460
  54. package/dist/model-starter-catalog.js.map +4 -4
  55. package/dist/model-starters.js +32 -709
  56. package/dist/model-starters.js.map +4 -4
  57. package/dist/model-taskset-authoring.js +11 -44
  58. package/dist/model-taskset-authoring.js.map +3 -3
  59. package/dist/model-taskset-runs.js +196 -0
  60. package/dist/model-taskset-runs.js.map +7 -0
  61. package/dist/profile-actions.js +4 -211
  62. package/dist/profile-actions.js.map +3 -3
  63. package/dist/project-actions.js +4 -224
  64. package/dist/project-actions.js.map +3 -3
  65. package/dist/refiner.js +14 -554
  66. package/dist/refiner.js.map +4 -4
  67. package/dist/taskset-catalog.js +9 -104
  68. package/dist/taskset-catalog.js.map +3 -3
  69. package/dist/taskset-drafts.js +465 -0
  70. package/dist/taskset-drafts.js.map +7 -0
  71. package/dist/taskset-packages.js +946 -3089
  72. package/dist/taskset-packages.js.map +4 -4
  73. package/dist/training.js +43 -822
  74. package/dist/training.js.map +4 -4
  75. package/dist/types/packages/sdk/src/index.d.ts +3 -3
  76. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  77. package/dist/types/packages/sdk/src/learning-client.d.ts +130 -0
  78. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -0
  79. package/dist/types/packages/sdk/src/learning.d.ts +1 -129
  80. package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
  81. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +568 -0
  82. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -0
  83. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +722 -0
  84. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -0
  85. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +1170 -0
  86. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -0
  87. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +560 -0
  88. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -0
  89. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts +92 -0
  90. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -0
  91. package/dist/types/packages/sdk/src/taskset-authored-tool-environment.d.ts +15 -0
  92. package/dist/types/packages/sdk/src/taskset-authored-tool-environment.d.ts.map +1 -0
  93. package/dist/types/packages/sdk/src/taskset-authored-validation.d.ts +18 -0
  94. package/dist/types/packages/sdk/src/taskset-authored-validation.d.ts.map +1 -0
  95. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +1681 -0
  96. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -0
  97. package/dist/types/packages/sdk/src/taskset-draft-authoring.d.ts +19 -0
  98. package/dist/types/packages/sdk/src/taskset-draft-authoring.d.ts.map +1 -0
  99. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +2713 -0
  100. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -0
  101. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +1000 -0
  102. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -0
  103. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +429 -0
  104. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts.map +1 -0
  105. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +284 -0
  106. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts.map +1 -0
  107. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +846 -0
  108. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -0
  109. package/dist/types/packages/sdk/src/taskset-draft-files.d.ts +8 -0
  110. package/dist/types/packages/sdk/src/taskset-draft-files.d.ts.map +1 -0
  111. package/dist/types/packages/sdk/src/taskset-draft-harness-actions.d.ts +28 -0
  112. package/dist/types/packages/sdk/src/taskset-draft-harness-actions.d.ts.map +1 -0
  113. package/dist/types/packages/sdk/src/taskset-draft-manifests.d.ts +8 -0
  114. package/dist/types/packages/sdk/src/taskset-draft-manifests.d.ts.map +1 -0
  115. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +967 -0
  116. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -0
  117. package/dist/types/packages/sdk/src/taskset-draft-publication.d.ts +10 -0
  118. package/dist/types/packages/sdk/src/taskset-draft-publication.d.ts.map +1 -0
  119. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +1297 -0
  120. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -0
  121. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +1597 -0
  122. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -0
  123. package/dist/types/packages/sdk/src/taskset-drafts.d.ts +16 -0
  124. package/dist/types/packages/sdk/src/taskset-drafts.d.ts.map +1 -0
  125. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +64 -0
  126. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -0
  127. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +1514 -0
  128. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -0
  129. package/dist/types/packages/sdk/src/taskset-packages.d.ts +6 -0
  130. package/dist/types/packages/sdk/src/taskset-packages.d.ts.map +1 -1
  131. package/dist/workflows.js +4 -221
  132. package/dist/workflows.js.map +3 -3
  133. package/package.json +11 -3
@@ -0,0 +1,2713 @@
1
+ import { type ModelTasksetDraftRequest, type TasksetDraftFileMutation } from "./model-taskset-authoring-contracts.js";
2
+ import { type TasksetDraftSaveRequest, type TasksetDraftRefreshRequest, type TasksetDraftValidationRequest, type TasksetDraftPublicationRequest } from "./taskset-draft-api-contracts.js";
3
+ type Options = {
4
+ signal?: AbortSignal;
5
+ };
6
+ export declare class OpenPondTasksetDraftError extends Error {
7
+ readonly status: number;
8
+ readonly code: string;
9
+ constructor(status: number, code: string, message: string);
10
+ }
11
+ /** Scoped mutable drafts use explicit CAS and never retry writes automatically. */
12
+ export declare class OpenPondTasksetDraftClient {
13
+ #private;
14
+ constructor(options: {
15
+ baseUrl: string;
16
+ apiKey: string;
17
+ teamId: string;
18
+ fetch?: typeof globalThis.fetch;
19
+ });
20
+ inspectSource(modelId: string, expectedModelRevision: number, options?: Options): Promise<{
21
+ expectedModelRevision: number;
22
+ sourcePackageHash: string;
23
+ teamId: string;
24
+ modelId: string;
25
+ schemaVersion: "openpond.tasksetDraftSourceDescriptor.v1";
26
+ }>;
27
+ initialize(input: ModelTasksetDraftRequest, options?: Options): Promise<{
28
+ draft: {
29
+ schemaVersion: "openpond.tasksetDraft.v1";
30
+ id: string;
31
+ revision: number;
32
+ profileId: string;
33
+ modelScope: {
34
+ modelId: string;
35
+ expectedModelRevision: number;
36
+ source?: {
37
+ schemaVersion: "openpond.modelTasksetDraftPreparation.v1";
38
+ draftId: string;
39
+ requestHash: string;
40
+ sourcePackageHash: string;
41
+ sourceTasksetRef: {
42
+ id: string;
43
+ contentHash: string;
44
+ revision: number;
45
+ };
46
+ tasksetId: string;
47
+ tasksetRevision: number;
48
+ lineage: {
49
+ schemaVersion: "openpond.modelTasksetAuthoring.v1";
50
+ owner: {
51
+ scopeId: string;
52
+ modelId: string;
53
+ };
54
+ root: {
55
+ id: string;
56
+ contentHash: string;
57
+ revision: number;
58
+ };
59
+ parent: {
60
+ id: string;
61
+ contentHash: string;
62
+ revision: number;
63
+ };
64
+ };
65
+ } | undefined;
66
+ } | null;
67
+ name: string;
68
+ objective: string;
69
+ purpose: "benchmark" | "general";
70
+ benchmark: {
71
+ schemaVersion: "openpond.tasksetBenchmark.v1";
72
+ definitionId: string;
73
+ releaseId: string;
74
+ releaseHash: string;
75
+ managedReleasePath: string;
76
+ adaptationSplit: "train" | "validation" | "test" | "frozen_eval";
77
+ evaluationSplit: "train" | "validation" | "test" | "frozen_eval";
78
+ primaryMetric: "foreground_tokens" | "success_rate" | "latency_ms" | "cost_usd";
79
+ qualityGate: "none" | "non_regression" | "all_pass";
80
+ source: "builtin" | "imported";
81
+ metadata: Record<string, unknown>;
82
+ } | null;
83
+ preferenceComparison: {
84
+ schemaVersion: "openpond.tasksetPreferenceComparisonBinding.v1";
85
+ releaseId: string;
86
+ releaseHash: string;
87
+ publishedAt: string;
88
+ metadata: Record<string, unknown>;
89
+ } | null;
90
+ status: "draft" | "published" | "validating" | "needs_review";
91
+ sourceRefs: ({
92
+ id: string;
93
+ profileId: string;
94
+ title: string;
95
+ sourceHash: string;
96
+ occurredAt: string;
97
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
98
+ secretScanStatus: "pending" | "passed" | "blocked";
99
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
100
+ metadata: Record<string, unknown>;
101
+ schemaVersion: "openpond.huggingFaceDatasetSource.v1";
102
+ kind: "huggingface";
103
+ repositoryId: string;
104
+ repositoryUrl: string;
105
+ revision: string;
106
+ configuration: string;
107
+ upstreamSplits: string[];
108
+ gated: boolean;
109
+ private: boolean;
110
+ declaredLicense: string | null;
111
+ sourceFileHashes: string[];
112
+ } | {
113
+ id: string;
114
+ profileId: string;
115
+ title: string;
116
+ sourceHash: string;
117
+ occurredAt: string;
118
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
119
+ secretScanStatus: "pending" | "passed" | "blocked";
120
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
121
+ metadata: Record<string, unknown>;
122
+ schemaVersion: "openpond.uploadedFileDatasetSource.v1";
123
+ kind: "uploaded_file";
124
+ originalFileNames: string[];
125
+ mediaTypes: string[];
126
+ sourceFileHashes: string[];
127
+ totalBytes: number;
128
+ parserVersion: string;
129
+ } | {
130
+ id: string;
131
+ profileId: string;
132
+ title: string;
133
+ sourceHash: string;
134
+ occurredAt: string;
135
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
136
+ secretScanStatus: "pending" | "passed" | "blocked";
137
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
138
+ metadata: Record<string, unknown>;
139
+ schemaVersion: "openpond.generatedDatasetSource.v1";
140
+ kind: "generated";
141
+ generatorId: string;
142
+ generatorVersion: string;
143
+ seed: number;
144
+ generatorHash: string;
145
+ } | {
146
+ id: string;
147
+ profileId: string;
148
+ title: string;
149
+ sourceHash: string;
150
+ occurredAt: string;
151
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
152
+ secretScanStatus: "pending" | "passed" | "blocked";
153
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
154
+ metadata: Record<string, unknown>;
155
+ schemaVersion: "openpond.learningBatchDatasetSource.v1";
156
+ kind: "learning_batch";
157
+ batch: {
158
+ id: string;
159
+ revision: number;
160
+ contentHash: string;
161
+ };
162
+ taskDefinition: {
163
+ id: string;
164
+ revision: number;
165
+ contentHash: string;
166
+ };
167
+ admittedBy: string;
168
+ } | {
169
+ schemaVersion: "openpond.trainingSource.v1";
170
+ id: string;
171
+ profileId: string;
172
+ sessionId: string;
173
+ turnIds: string[];
174
+ workspaceId: string | null;
175
+ sourceHash: string;
176
+ clusterKey: string;
177
+ title: string;
178
+ occurredAt: string;
179
+ consent: {
180
+ status: "pending" | "granted" | "denied" | "revoked";
181
+ scope: "metadata_only" | "selected_turns" | "full_session";
182
+ grantedBy: string | null;
183
+ grantedAt: string | null;
184
+ purpose: "task_authoring_and_evaluation";
185
+ };
186
+ connectedAppIds: string[];
187
+ secretScanStatus: "pending" | "passed" | "blocked";
188
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
189
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
190
+ metadata: Record<string, unknown>;
191
+ })[];
192
+ policy: {
193
+ policyVisibleFields: string[];
194
+ privilegedFields: string[];
195
+ hiddenGraderRefs: string[];
196
+ connectedAppScopes: string[];
197
+ };
198
+ environment: {
199
+ protocolVersion: "openpond.taskEnvironment.v1";
200
+ kind: "work" | "agent" | "chat" | "program" | "stateful_harness";
201
+ entrypoint: string;
202
+ stateful: boolean;
203
+ deterministicSeeds: boolean;
204
+ toolNames: string[];
205
+ lifecycle: ("cleanup" | "create" | "grade" | "reset" | "step")[];
206
+ defaultTimeoutMs: number;
207
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
208
+ metadata: Record<string, unknown>;
209
+ actionBindings?: {
210
+ schemaVersion: "openpond.harnessActionBinding.v1";
211
+ actionId: string;
212
+ modelToolName: string;
213
+ description: string;
214
+ inputSchema: Record<string, unknown>;
215
+ actionSchemaHash: string;
216
+ agentRelease: {
217
+ id: string;
218
+ contentHash: string;
219
+ };
220
+ implementationHash: string;
221
+ runtimeBindingId: string;
222
+ capabilityReceiptHash: string;
223
+ sideEffect: "read" | "write";
224
+ studentVisible: boolean;
225
+ timeoutMs: number;
226
+ episodeArgumentBindings: {
227
+ argument: string;
228
+ source: "case_id";
229
+ }[];
230
+ }[] | undefined;
231
+ resources?: {
232
+ id: string;
233
+ kind: "file" | "catalog" | "configuration" | "code_module";
234
+ path: string;
235
+ visibility: "privileged" | "policy_visible" | "policy_hidden";
236
+ required: boolean;
237
+ metadata: Record<string, unknown>;
238
+ mediaType?: string | null | undefined;
239
+ }[] | undefined;
240
+ };
241
+ output: {
242
+ mode: "text" | "structured_json" | "artifacts";
243
+ jsonSchema: Record<string, unknown> | null;
244
+ renderer: {
245
+ module: string;
246
+ exportName: string;
247
+ configRef: string | null;
248
+ } | null;
249
+ };
250
+ capabilities: {
251
+ schemaVersion: "openpond.tasksetCapabilities.v1";
252
+ taskKind: "custom_program" | "chat" | "single_agent" | "multi_agent";
253
+ supportedSignals: ("label" | "reward" | "feedback" | "preference" | "demonstration" | "correction")[];
254
+ compatibleMethods: ("none" | "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | "retrieval")[];
255
+ rewardKinds: ("none" | "model_judge" | "human" | "deterministic" | "exact")[];
256
+ requiresTools: boolean;
257
+ requiresState: boolean;
258
+ requiresPrivilegedGrading: boolean;
259
+ environmentPlacements: ("local" | "remote" | "colocated" | "provider_native")[];
260
+ exportable: boolean;
261
+ portabilityBlockers: string[];
262
+ };
263
+ metrics: {
264
+ schemaVersion: "openpond.tasksetMetricPolicy.v1";
265
+ primaryMetric: string;
266
+ aggregation: "custom" | "mean_score" | "pass_rate" | "weighted_mean";
267
+ missingReward: "zero" | "exclude";
268
+ customAggregator: {
269
+ module: string;
270
+ exportName: string;
271
+ contentHash: string;
272
+ timeoutMs: number;
273
+ networkPolicy: "none";
274
+ } | null;
275
+ taskWeights?: Record<string, number> | undefined;
276
+ };
277
+ review: {
278
+ enabled: boolean;
279
+ candidateCount: number;
280
+ minimumSamples: number;
281
+ allowTies: boolean;
282
+ allowRejectAll: boolean;
283
+ rubric: string;
284
+ criteria: {
285
+ id: string;
286
+ label: string;
287
+ description: string;
288
+ weight: number;
289
+ }[];
290
+ };
291
+ tasks: {
292
+ schemaVersion: "openpond.taskData.v1";
293
+ id: string;
294
+ clusterKey: string;
295
+ split: "train" | "validation" | "test" | "frozen_eval";
296
+ input: Record<string, unknown>;
297
+ expectedOutput: Record<string, unknown> | null;
298
+ policyVisibleContext: Record<string, unknown>;
299
+ privilegedContextRef: string | null;
300
+ tags: string[];
301
+ metadata: Record<string, unknown>;
302
+ sourceRefs: string[];
303
+ assets?: {
304
+ id: string;
305
+ sourceRefId: string;
306
+ artifactRef: string;
307
+ fileName: string;
308
+ mediaType: string;
309
+ sha256: string;
310
+ sizeBytes: number;
311
+ split: "train" | "validation" | "test" | "frozen_eval";
312
+ metadata: Record<string, unknown>;
313
+ }[] | undefined;
314
+ resourceRefs?: string[] | undefined;
315
+ requiredOutputs?: {
316
+ path: string;
317
+ mediaType: string;
318
+ metadata: Record<string, unknown>;
319
+ schemaRef?: string | null | undefined;
320
+ maxBytes?: number | undefined;
321
+ }[] | undefined;
322
+ }[];
323
+ graders: ({
324
+ id: string;
325
+ version: string;
326
+ label: string;
327
+ weight: number;
328
+ hardGate: boolean;
329
+ rewardEligible: boolean;
330
+ privileged: boolean;
331
+ metadata: Record<string, unknown>;
332
+ kind: "file" | "state" | "test" | "content" | "schema" | "runtime_event" | "diff";
333
+ config: Record<string, unknown>;
334
+ } | {
335
+ id: string;
336
+ version: string;
337
+ label: string;
338
+ weight: number;
339
+ hardGate: boolean;
340
+ rewardEligible: boolean;
341
+ privileged: boolean;
342
+ metadata: Record<string, unknown>;
343
+ kind: "model_judge";
344
+ rubric: string;
345
+ judge: {
346
+ providerId: "openpond" | "codex" | "anthropic" | "openai" | "xai" | "google" | "openrouter" | "deepseek" | "zai" | "moonshot" | "together" | "groq" | "custom-openai-compatible";
347
+ modelId: string;
348
+ };
349
+ calibrationFixtureRefs: string[];
350
+ calibrationStatus: "failed" | "pending" | "passed";
351
+ temperature: number;
352
+ } | {
353
+ id: string;
354
+ version: string;
355
+ label: string;
356
+ weight: number;
357
+ hardGate: boolean;
358
+ rewardEligible: boolean;
359
+ privileged: boolean;
360
+ metadata: Record<string, unknown>;
361
+ kind: "human";
362
+ rubric: string;
363
+ reviewerRole: string;
364
+ } | {
365
+ id: string;
366
+ version: string;
367
+ label: string;
368
+ weight: number;
369
+ hardGate: boolean;
370
+ rewardEligible: boolean;
371
+ privileged: boolean;
372
+ metadata: Record<string, unknown>;
373
+ kind: "custom_verifier";
374
+ module: string;
375
+ exportName: string;
376
+ timeoutMs: number;
377
+ networkPolicy: "none";
378
+ })[];
379
+ graderFixtures: {
380
+ id: string;
381
+ taskId: string;
382
+ label: "infrastructure_failure" | "positive" | "negative" | "boundary" | "adversarial" | "prompt_injection";
383
+ output: Record<string, unknown>;
384
+ infrastructureError: string | null;
385
+ expectedPassed: boolean;
386
+ expectedRewardEligible: boolean;
387
+ metadata: Record<string, unknown>;
388
+ }[];
389
+ learningSignals: {
390
+ demonstrations: {
391
+ id: string;
392
+ taskId: string | null;
393
+ sourceRefs: string[];
394
+ artifactRef: string;
395
+ approved: boolean;
396
+ confidence: number;
397
+ metadata: Record<string, unknown>;
398
+ kind: "demonstration";
399
+ prompt: string | null;
400
+ response: string | null;
401
+ }[];
402
+ preferences: {
403
+ id: string;
404
+ taskId: string | null;
405
+ sourceRefs: string[];
406
+ artifactRef: string;
407
+ approved: boolean;
408
+ confidence: number;
409
+ metadata: Record<string, unknown>;
410
+ kind: "preference";
411
+ prompt: string;
412
+ chosen: string;
413
+ rejected: string;
414
+ rationale: string | null;
415
+ }[];
416
+ corrections: {
417
+ id: string;
418
+ taskId: string | null;
419
+ sourceRefs: string[];
420
+ artifactRef: string;
421
+ approved: boolean;
422
+ confidence: number;
423
+ metadata: Record<string, unknown>;
424
+ kind: "correction";
425
+ original: string;
426
+ corrected: string;
427
+ rationale: string | null;
428
+ }[];
429
+ feedback: {
430
+ id: string;
431
+ taskId: string | null;
432
+ sourceRefs: string[];
433
+ artifactRef: string;
434
+ approved: boolean;
435
+ confidence: number;
436
+ metadata: Record<string, unknown>;
437
+ kind: "feedback";
438
+ feedback: string;
439
+ polarity: "neutral" | "positive" | "negative" | "mixed";
440
+ }[];
441
+ rewards: {
442
+ id: string;
443
+ taskId: string | null;
444
+ sourceRefs: string[];
445
+ artifactRef: string;
446
+ approved: boolean;
447
+ confidence: number;
448
+ metadata: Record<string, unknown>;
449
+ kind: "reward";
450
+ task: string;
451
+ rules: {
452
+ id: string;
453
+ points: number;
454
+ condition: string;
455
+ }[];
456
+ otherwisePoints: number;
457
+ executable: boolean;
458
+ }[];
459
+ labels: {
460
+ id: string;
461
+ taskId: string | null;
462
+ sourceRefs: string[];
463
+ artifactRef: string;
464
+ approved: boolean;
465
+ confidence: number;
466
+ metadata: Record<string, unknown>;
467
+ kind: "label";
468
+ labelKind: "rubric";
469
+ task: string;
470
+ criteria: {
471
+ id: string;
472
+ label: string;
473
+ description: string;
474
+ }[];
475
+ calibrationExamples: {
476
+ positive: string;
477
+ negative: string;
478
+ boundary: string;
479
+ };
480
+ }[];
481
+ };
482
+ publishedTasksetRef: {
483
+ id: string;
484
+ revision: number;
485
+ contentHash: string;
486
+ } | null;
487
+ createdAt: string;
488
+ updatedAt: string;
489
+ metadata: Record<string, unknown>;
490
+ datasetArtifact?: {
491
+ schemaVersion: "openpond.datasetArtifact.v1";
492
+ id: string;
493
+ tasksetId: string;
494
+ tasksetRevision: number;
495
+ contentHash: string;
496
+ format: "parquet";
497
+ schema: {
498
+ schemaVersion: "openpond.datasetSemanticSchema.v1";
499
+ fields: {
500
+ name: string;
501
+ semanticRole: "metadata" | "prompt" | "reward" | "feedback" | "rejected" | "messages" | "row_id" | "cluster_id" | "demonstration" | "chosen" | "expected_output" | "privileged_context" | "tag";
502
+ logicalType: "string" | "boolean" | "messages" | "integer" | "float" | "json";
503
+ nullable: boolean;
504
+ policy: "metadata" | "privileged" | "visible";
505
+ }[];
506
+ schemaHash: string;
507
+ };
508
+ shards: {
509
+ id: string;
510
+ split: "train" | "validation" | "test" | "frozen_eval";
511
+ path: string;
512
+ contentHash: string;
513
+ schemaHash: string;
514
+ sizeBytes: number;
515
+ rowCount: number;
516
+ rowGroupCount: number;
517
+ }[];
518
+ rowCount: number;
519
+ splitCounts: Record<"train" | "validation" | "test" | "frozen_eval", number>;
520
+ sourceReceiptRefs: string[];
521
+ mappingHash: string;
522
+ qualityReportHash: string;
523
+ createdAt: string;
524
+ } | null | undefined;
525
+ };
526
+ workspaceHash: string;
527
+ projectEtag: string;
528
+ teamId: string;
529
+ modelId: string;
530
+ schemaVersion: "openpond.tasksetDraftReadback.v1";
531
+ }>;
532
+ list(modelId: string, options?: Options & {
533
+ limit?: number;
534
+ cursor?: string;
535
+ }): Promise<{
536
+ drafts: {
537
+ id: string;
538
+ revision: number;
539
+ name: string;
540
+ status: "draft" | "published" | "validating" | "needs_review";
541
+ updatedAt: string;
542
+ sourceTasksetRef: {
543
+ id: string;
544
+ contentHash: string;
545
+ revision: number;
546
+ } | null;
547
+ }[];
548
+ nextCursor: string | null;
549
+ teamId: string;
550
+ modelId: string;
551
+ schemaVersion: "openpond.tasksetDraftList.v1";
552
+ }>;
553
+ get(modelId: string, draftId: string, options?: Options): Promise<{
554
+ draft: {
555
+ schemaVersion: "openpond.tasksetDraft.v1";
556
+ id: string;
557
+ revision: number;
558
+ profileId: string;
559
+ modelScope: {
560
+ modelId: string;
561
+ expectedModelRevision: number;
562
+ source?: {
563
+ schemaVersion: "openpond.modelTasksetDraftPreparation.v1";
564
+ draftId: string;
565
+ requestHash: string;
566
+ sourcePackageHash: string;
567
+ sourceTasksetRef: {
568
+ id: string;
569
+ contentHash: string;
570
+ revision: number;
571
+ };
572
+ tasksetId: string;
573
+ tasksetRevision: number;
574
+ lineage: {
575
+ schemaVersion: "openpond.modelTasksetAuthoring.v1";
576
+ owner: {
577
+ scopeId: string;
578
+ modelId: string;
579
+ };
580
+ root: {
581
+ id: string;
582
+ contentHash: string;
583
+ revision: number;
584
+ };
585
+ parent: {
586
+ id: string;
587
+ contentHash: string;
588
+ revision: number;
589
+ };
590
+ };
591
+ } | undefined;
592
+ } | null;
593
+ name: string;
594
+ objective: string;
595
+ purpose: "benchmark" | "general";
596
+ benchmark: {
597
+ schemaVersion: "openpond.tasksetBenchmark.v1";
598
+ definitionId: string;
599
+ releaseId: string;
600
+ releaseHash: string;
601
+ managedReleasePath: string;
602
+ adaptationSplit: "train" | "validation" | "test" | "frozen_eval";
603
+ evaluationSplit: "train" | "validation" | "test" | "frozen_eval";
604
+ primaryMetric: "foreground_tokens" | "success_rate" | "latency_ms" | "cost_usd";
605
+ qualityGate: "none" | "non_regression" | "all_pass";
606
+ source: "builtin" | "imported";
607
+ metadata: Record<string, unknown>;
608
+ } | null;
609
+ preferenceComparison: {
610
+ schemaVersion: "openpond.tasksetPreferenceComparisonBinding.v1";
611
+ releaseId: string;
612
+ releaseHash: string;
613
+ publishedAt: string;
614
+ metadata: Record<string, unknown>;
615
+ } | null;
616
+ status: "draft" | "published" | "validating" | "needs_review";
617
+ sourceRefs: ({
618
+ id: string;
619
+ profileId: string;
620
+ title: string;
621
+ sourceHash: string;
622
+ occurredAt: string;
623
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
624
+ secretScanStatus: "pending" | "passed" | "blocked";
625
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
626
+ metadata: Record<string, unknown>;
627
+ schemaVersion: "openpond.huggingFaceDatasetSource.v1";
628
+ kind: "huggingface";
629
+ repositoryId: string;
630
+ repositoryUrl: string;
631
+ revision: string;
632
+ configuration: string;
633
+ upstreamSplits: string[];
634
+ gated: boolean;
635
+ private: boolean;
636
+ declaredLicense: string | null;
637
+ sourceFileHashes: string[];
638
+ } | {
639
+ id: string;
640
+ profileId: string;
641
+ title: string;
642
+ sourceHash: string;
643
+ occurredAt: string;
644
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
645
+ secretScanStatus: "pending" | "passed" | "blocked";
646
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
647
+ metadata: Record<string, unknown>;
648
+ schemaVersion: "openpond.uploadedFileDatasetSource.v1";
649
+ kind: "uploaded_file";
650
+ originalFileNames: string[];
651
+ mediaTypes: string[];
652
+ sourceFileHashes: string[];
653
+ totalBytes: number;
654
+ parserVersion: string;
655
+ } | {
656
+ id: string;
657
+ profileId: string;
658
+ title: string;
659
+ sourceHash: string;
660
+ occurredAt: string;
661
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
662
+ secretScanStatus: "pending" | "passed" | "blocked";
663
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
664
+ metadata: Record<string, unknown>;
665
+ schemaVersion: "openpond.generatedDatasetSource.v1";
666
+ kind: "generated";
667
+ generatorId: string;
668
+ generatorVersion: string;
669
+ seed: number;
670
+ generatorHash: string;
671
+ } | {
672
+ id: string;
673
+ profileId: string;
674
+ title: string;
675
+ sourceHash: string;
676
+ occurredAt: string;
677
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
678
+ secretScanStatus: "pending" | "passed" | "blocked";
679
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
680
+ metadata: Record<string, unknown>;
681
+ schemaVersion: "openpond.learningBatchDatasetSource.v1";
682
+ kind: "learning_batch";
683
+ batch: {
684
+ id: string;
685
+ revision: number;
686
+ contentHash: string;
687
+ };
688
+ taskDefinition: {
689
+ id: string;
690
+ revision: number;
691
+ contentHash: string;
692
+ };
693
+ admittedBy: string;
694
+ } | {
695
+ schemaVersion: "openpond.trainingSource.v1";
696
+ id: string;
697
+ profileId: string;
698
+ sessionId: string;
699
+ turnIds: string[];
700
+ workspaceId: string | null;
701
+ sourceHash: string;
702
+ clusterKey: string;
703
+ title: string;
704
+ occurredAt: string;
705
+ consent: {
706
+ status: "pending" | "granted" | "denied" | "revoked";
707
+ scope: "metadata_only" | "selected_turns" | "full_session";
708
+ grantedBy: string | null;
709
+ grantedAt: string | null;
710
+ purpose: "task_authoring_and_evaluation";
711
+ };
712
+ connectedAppIds: string[];
713
+ secretScanStatus: "pending" | "passed" | "blocked";
714
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
715
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
716
+ metadata: Record<string, unknown>;
717
+ })[];
718
+ policy: {
719
+ policyVisibleFields: string[];
720
+ privilegedFields: string[];
721
+ hiddenGraderRefs: string[];
722
+ connectedAppScopes: string[];
723
+ };
724
+ environment: {
725
+ protocolVersion: "openpond.taskEnvironment.v1";
726
+ kind: "work" | "agent" | "chat" | "program" | "stateful_harness";
727
+ entrypoint: string;
728
+ stateful: boolean;
729
+ deterministicSeeds: boolean;
730
+ toolNames: string[];
731
+ lifecycle: ("cleanup" | "create" | "grade" | "reset" | "step")[];
732
+ defaultTimeoutMs: number;
733
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
734
+ metadata: Record<string, unknown>;
735
+ actionBindings?: {
736
+ schemaVersion: "openpond.harnessActionBinding.v1";
737
+ actionId: string;
738
+ modelToolName: string;
739
+ description: string;
740
+ inputSchema: Record<string, unknown>;
741
+ actionSchemaHash: string;
742
+ agentRelease: {
743
+ id: string;
744
+ contentHash: string;
745
+ };
746
+ implementationHash: string;
747
+ runtimeBindingId: string;
748
+ capabilityReceiptHash: string;
749
+ sideEffect: "read" | "write";
750
+ studentVisible: boolean;
751
+ timeoutMs: number;
752
+ episodeArgumentBindings: {
753
+ argument: string;
754
+ source: "case_id";
755
+ }[];
756
+ }[] | undefined;
757
+ resources?: {
758
+ id: string;
759
+ kind: "file" | "catalog" | "configuration" | "code_module";
760
+ path: string;
761
+ visibility: "privileged" | "policy_visible" | "policy_hidden";
762
+ required: boolean;
763
+ metadata: Record<string, unknown>;
764
+ mediaType?: string | null | undefined;
765
+ }[] | undefined;
766
+ };
767
+ output: {
768
+ mode: "text" | "structured_json" | "artifacts";
769
+ jsonSchema: Record<string, unknown> | null;
770
+ renderer: {
771
+ module: string;
772
+ exportName: string;
773
+ configRef: string | null;
774
+ } | null;
775
+ };
776
+ capabilities: {
777
+ schemaVersion: "openpond.tasksetCapabilities.v1";
778
+ taskKind: "custom_program" | "chat" | "single_agent" | "multi_agent";
779
+ supportedSignals: ("label" | "reward" | "feedback" | "preference" | "demonstration" | "correction")[];
780
+ compatibleMethods: ("none" | "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | "retrieval")[];
781
+ rewardKinds: ("none" | "model_judge" | "human" | "deterministic" | "exact")[];
782
+ requiresTools: boolean;
783
+ requiresState: boolean;
784
+ requiresPrivilegedGrading: boolean;
785
+ environmentPlacements: ("local" | "remote" | "colocated" | "provider_native")[];
786
+ exportable: boolean;
787
+ portabilityBlockers: string[];
788
+ };
789
+ metrics: {
790
+ schemaVersion: "openpond.tasksetMetricPolicy.v1";
791
+ primaryMetric: string;
792
+ aggregation: "custom" | "mean_score" | "pass_rate" | "weighted_mean";
793
+ missingReward: "zero" | "exclude";
794
+ customAggregator: {
795
+ module: string;
796
+ exportName: string;
797
+ contentHash: string;
798
+ timeoutMs: number;
799
+ networkPolicy: "none";
800
+ } | null;
801
+ taskWeights?: Record<string, number> | undefined;
802
+ };
803
+ review: {
804
+ enabled: boolean;
805
+ candidateCount: number;
806
+ minimumSamples: number;
807
+ allowTies: boolean;
808
+ allowRejectAll: boolean;
809
+ rubric: string;
810
+ criteria: {
811
+ id: string;
812
+ label: string;
813
+ description: string;
814
+ weight: number;
815
+ }[];
816
+ };
817
+ tasks: {
818
+ schemaVersion: "openpond.taskData.v1";
819
+ id: string;
820
+ clusterKey: string;
821
+ split: "train" | "validation" | "test" | "frozen_eval";
822
+ input: Record<string, unknown>;
823
+ expectedOutput: Record<string, unknown> | null;
824
+ policyVisibleContext: Record<string, unknown>;
825
+ privilegedContextRef: string | null;
826
+ tags: string[];
827
+ metadata: Record<string, unknown>;
828
+ sourceRefs: string[];
829
+ assets?: {
830
+ id: string;
831
+ sourceRefId: string;
832
+ artifactRef: string;
833
+ fileName: string;
834
+ mediaType: string;
835
+ sha256: string;
836
+ sizeBytes: number;
837
+ split: "train" | "validation" | "test" | "frozen_eval";
838
+ metadata: Record<string, unknown>;
839
+ }[] | undefined;
840
+ resourceRefs?: string[] | undefined;
841
+ requiredOutputs?: {
842
+ path: string;
843
+ mediaType: string;
844
+ metadata: Record<string, unknown>;
845
+ schemaRef?: string | null | undefined;
846
+ maxBytes?: number | undefined;
847
+ }[] | undefined;
848
+ }[];
849
+ graders: ({
850
+ id: string;
851
+ version: string;
852
+ label: string;
853
+ weight: number;
854
+ hardGate: boolean;
855
+ rewardEligible: boolean;
856
+ privileged: boolean;
857
+ metadata: Record<string, unknown>;
858
+ kind: "file" | "state" | "test" | "content" | "schema" | "runtime_event" | "diff";
859
+ config: Record<string, unknown>;
860
+ } | {
861
+ id: string;
862
+ version: string;
863
+ label: string;
864
+ weight: number;
865
+ hardGate: boolean;
866
+ rewardEligible: boolean;
867
+ privileged: boolean;
868
+ metadata: Record<string, unknown>;
869
+ kind: "model_judge";
870
+ rubric: string;
871
+ judge: {
872
+ providerId: "openpond" | "codex" | "anthropic" | "openai" | "xai" | "google" | "openrouter" | "deepseek" | "zai" | "moonshot" | "together" | "groq" | "custom-openai-compatible";
873
+ modelId: string;
874
+ };
875
+ calibrationFixtureRefs: string[];
876
+ calibrationStatus: "failed" | "pending" | "passed";
877
+ temperature: number;
878
+ } | {
879
+ id: string;
880
+ version: string;
881
+ label: string;
882
+ weight: number;
883
+ hardGate: boolean;
884
+ rewardEligible: boolean;
885
+ privileged: boolean;
886
+ metadata: Record<string, unknown>;
887
+ kind: "human";
888
+ rubric: string;
889
+ reviewerRole: string;
890
+ } | {
891
+ id: string;
892
+ version: string;
893
+ label: string;
894
+ weight: number;
895
+ hardGate: boolean;
896
+ rewardEligible: boolean;
897
+ privileged: boolean;
898
+ metadata: Record<string, unknown>;
899
+ kind: "custom_verifier";
900
+ module: string;
901
+ exportName: string;
902
+ timeoutMs: number;
903
+ networkPolicy: "none";
904
+ })[];
905
+ graderFixtures: {
906
+ id: string;
907
+ taskId: string;
908
+ label: "infrastructure_failure" | "positive" | "negative" | "boundary" | "adversarial" | "prompt_injection";
909
+ output: Record<string, unknown>;
910
+ infrastructureError: string | null;
911
+ expectedPassed: boolean;
912
+ expectedRewardEligible: boolean;
913
+ metadata: Record<string, unknown>;
914
+ }[];
915
+ learningSignals: {
916
+ demonstrations: {
917
+ id: string;
918
+ taskId: string | null;
919
+ sourceRefs: string[];
920
+ artifactRef: string;
921
+ approved: boolean;
922
+ confidence: number;
923
+ metadata: Record<string, unknown>;
924
+ kind: "demonstration";
925
+ prompt: string | null;
926
+ response: string | null;
927
+ }[];
928
+ preferences: {
929
+ id: string;
930
+ taskId: string | null;
931
+ sourceRefs: string[];
932
+ artifactRef: string;
933
+ approved: boolean;
934
+ confidence: number;
935
+ metadata: Record<string, unknown>;
936
+ kind: "preference";
937
+ prompt: string;
938
+ chosen: string;
939
+ rejected: string;
940
+ rationale: string | null;
941
+ }[];
942
+ corrections: {
943
+ id: string;
944
+ taskId: string | null;
945
+ sourceRefs: string[];
946
+ artifactRef: string;
947
+ approved: boolean;
948
+ confidence: number;
949
+ metadata: Record<string, unknown>;
950
+ kind: "correction";
951
+ original: string;
952
+ corrected: string;
953
+ rationale: string | null;
954
+ }[];
955
+ feedback: {
956
+ id: string;
957
+ taskId: string | null;
958
+ sourceRefs: string[];
959
+ artifactRef: string;
960
+ approved: boolean;
961
+ confidence: number;
962
+ metadata: Record<string, unknown>;
963
+ kind: "feedback";
964
+ feedback: string;
965
+ polarity: "neutral" | "positive" | "negative" | "mixed";
966
+ }[];
967
+ rewards: {
968
+ id: string;
969
+ taskId: string | null;
970
+ sourceRefs: string[];
971
+ artifactRef: string;
972
+ approved: boolean;
973
+ confidence: number;
974
+ metadata: Record<string, unknown>;
975
+ kind: "reward";
976
+ task: string;
977
+ rules: {
978
+ id: string;
979
+ points: number;
980
+ condition: string;
981
+ }[];
982
+ otherwisePoints: number;
983
+ executable: boolean;
984
+ }[];
985
+ labels: {
986
+ id: string;
987
+ taskId: string | null;
988
+ sourceRefs: string[];
989
+ artifactRef: string;
990
+ approved: boolean;
991
+ confidence: number;
992
+ metadata: Record<string, unknown>;
993
+ kind: "label";
994
+ labelKind: "rubric";
995
+ task: string;
996
+ criteria: {
997
+ id: string;
998
+ label: string;
999
+ description: string;
1000
+ }[];
1001
+ calibrationExamples: {
1002
+ positive: string;
1003
+ negative: string;
1004
+ boundary: string;
1005
+ };
1006
+ }[];
1007
+ };
1008
+ publishedTasksetRef: {
1009
+ id: string;
1010
+ revision: number;
1011
+ contentHash: string;
1012
+ } | null;
1013
+ createdAt: string;
1014
+ updatedAt: string;
1015
+ metadata: Record<string, unknown>;
1016
+ datasetArtifact?: {
1017
+ schemaVersion: "openpond.datasetArtifact.v1";
1018
+ id: string;
1019
+ tasksetId: string;
1020
+ tasksetRevision: number;
1021
+ contentHash: string;
1022
+ format: "parquet";
1023
+ schema: {
1024
+ schemaVersion: "openpond.datasetSemanticSchema.v1";
1025
+ fields: {
1026
+ name: string;
1027
+ semanticRole: "metadata" | "prompt" | "reward" | "feedback" | "rejected" | "messages" | "row_id" | "cluster_id" | "demonstration" | "chosen" | "expected_output" | "privileged_context" | "tag";
1028
+ logicalType: "string" | "boolean" | "messages" | "integer" | "float" | "json";
1029
+ nullable: boolean;
1030
+ policy: "metadata" | "privileged" | "visible";
1031
+ }[];
1032
+ schemaHash: string;
1033
+ };
1034
+ shards: {
1035
+ id: string;
1036
+ split: "train" | "validation" | "test" | "frozen_eval";
1037
+ path: string;
1038
+ contentHash: string;
1039
+ schemaHash: string;
1040
+ sizeBytes: number;
1041
+ rowCount: number;
1042
+ rowGroupCount: number;
1043
+ }[];
1044
+ rowCount: number;
1045
+ splitCounts: Record<"train" | "validation" | "test" | "frozen_eval", number>;
1046
+ sourceReceiptRefs: string[];
1047
+ mappingHash: string;
1048
+ qualityReportHash: string;
1049
+ createdAt: string;
1050
+ } | null | undefined;
1051
+ };
1052
+ workspaceHash: string;
1053
+ projectEtag: string;
1054
+ teamId: string;
1055
+ modelId: string;
1056
+ schemaVersion: "openpond.tasksetDraftReadback.v1";
1057
+ }>;
1058
+ save(modelId: string, input: TasksetDraftSaveRequest, options?: Options): Promise<{
1059
+ draft: {
1060
+ schemaVersion: "openpond.tasksetDraft.v1";
1061
+ id: string;
1062
+ revision: number;
1063
+ profileId: string;
1064
+ modelScope: {
1065
+ modelId: string;
1066
+ expectedModelRevision: number;
1067
+ source?: {
1068
+ schemaVersion: "openpond.modelTasksetDraftPreparation.v1";
1069
+ draftId: string;
1070
+ requestHash: string;
1071
+ sourcePackageHash: string;
1072
+ sourceTasksetRef: {
1073
+ id: string;
1074
+ contentHash: string;
1075
+ revision: number;
1076
+ };
1077
+ tasksetId: string;
1078
+ tasksetRevision: number;
1079
+ lineage: {
1080
+ schemaVersion: "openpond.modelTasksetAuthoring.v1";
1081
+ owner: {
1082
+ scopeId: string;
1083
+ modelId: string;
1084
+ };
1085
+ root: {
1086
+ id: string;
1087
+ contentHash: string;
1088
+ revision: number;
1089
+ };
1090
+ parent: {
1091
+ id: string;
1092
+ contentHash: string;
1093
+ revision: number;
1094
+ };
1095
+ };
1096
+ } | undefined;
1097
+ } | null;
1098
+ name: string;
1099
+ objective: string;
1100
+ purpose: "benchmark" | "general";
1101
+ benchmark: {
1102
+ schemaVersion: "openpond.tasksetBenchmark.v1";
1103
+ definitionId: string;
1104
+ releaseId: string;
1105
+ releaseHash: string;
1106
+ managedReleasePath: string;
1107
+ adaptationSplit: "train" | "validation" | "test" | "frozen_eval";
1108
+ evaluationSplit: "train" | "validation" | "test" | "frozen_eval";
1109
+ primaryMetric: "foreground_tokens" | "success_rate" | "latency_ms" | "cost_usd";
1110
+ qualityGate: "none" | "non_regression" | "all_pass";
1111
+ source: "builtin" | "imported";
1112
+ metadata: Record<string, unknown>;
1113
+ } | null;
1114
+ preferenceComparison: {
1115
+ schemaVersion: "openpond.tasksetPreferenceComparisonBinding.v1";
1116
+ releaseId: string;
1117
+ releaseHash: string;
1118
+ publishedAt: string;
1119
+ metadata: Record<string, unknown>;
1120
+ } | null;
1121
+ status: "draft" | "published" | "validating" | "needs_review";
1122
+ sourceRefs: ({
1123
+ id: string;
1124
+ profileId: string;
1125
+ title: string;
1126
+ sourceHash: string;
1127
+ occurredAt: string;
1128
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1129
+ secretScanStatus: "pending" | "passed" | "blocked";
1130
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1131
+ metadata: Record<string, unknown>;
1132
+ schemaVersion: "openpond.huggingFaceDatasetSource.v1";
1133
+ kind: "huggingface";
1134
+ repositoryId: string;
1135
+ repositoryUrl: string;
1136
+ revision: string;
1137
+ configuration: string;
1138
+ upstreamSplits: string[];
1139
+ gated: boolean;
1140
+ private: boolean;
1141
+ declaredLicense: string | null;
1142
+ sourceFileHashes: string[];
1143
+ } | {
1144
+ id: string;
1145
+ profileId: string;
1146
+ title: string;
1147
+ sourceHash: string;
1148
+ occurredAt: string;
1149
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1150
+ secretScanStatus: "pending" | "passed" | "blocked";
1151
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1152
+ metadata: Record<string, unknown>;
1153
+ schemaVersion: "openpond.uploadedFileDatasetSource.v1";
1154
+ kind: "uploaded_file";
1155
+ originalFileNames: string[];
1156
+ mediaTypes: string[];
1157
+ sourceFileHashes: string[];
1158
+ totalBytes: number;
1159
+ parserVersion: string;
1160
+ } | {
1161
+ id: string;
1162
+ profileId: string;
1163
+ title: string;
1164
+ sourceHash: string;
1165
+ occurredAt: string;
1166
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1167
+ secretScanStatus: "pending" | "passed" | "blocked";
1168
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1169
+ metadata: Record<string, unknown>;
1170
+ schemaVersion: "openpond.generatedDatasetSource.v1";
1171
+ kind: "generated";
1172
+ generatorId: string;
1173
+ generatorVersion: string;
1174
+ seed: number;
1175
+ generatorHash: string;
1176
+ } | {
1177
+ id: string;
1178
+ profileId: string;
1179
+ title: string;
1180
+ sourceHash: string;
1181
+ occurredAt: string;
1182
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1183
+ secretScanStatus: "pending" | "passed" | "blocked";
1184
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1185
+ metadata: Record<string, unknown>;
1186
+ schemaVersion: "openpond.learningBatchDatasetSource.v1";
1187
+ kind: "learning_batch";
1188
+ batch: {
1189
+ id: string;
1190
+ revision: number;
1191
+ contentHash: string;
1192
+ };
1193
+ taskDefinition: {
1194
+ id: string;
1195
+ revision: number;
1196
+ contentHash: string;
1197
+ };
1198
+ admittedBy: string;
1199
+ } | {
1200
+ schemaVersion: "openpond.trainingSource.v1";
1201
+ id: string;
1202
+ profileId: string;
1203
+ sessionId: string;
1204
+ turnIds: string[];
1205
+ workspaceId: string | null;
1206
+ sourceHash: string;
1207
+ clusterKey: string;
1208
+ title: string;
1209
+ occurredAt: string;
1210
+ consent: {
1211
+ status: "pending" | "granted" | "denied" | "revoked";
1212
+ scope: "metadata_only" | "selected_turns" | "full_session";
1213
+ grantedBy: string | null;
1214
+ grantedAt: string | null;
1215
+ purpose: "task_authoring_and_evaluation";
1216
+ };
1217
+ connectedAppIds: string[];
1218
+ secretScanStatus: "pending" | "passed" | "blocked";
1219
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1220
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1221
+ metadata: Record<string, unknown>;
1222
+ })[];
1223
+ policy: {
1224
+ policyVisibleFields: string[];
1225
+ privilegedFields: string[];
1226
+ hiddenGraderRefs: string[];
1227
+ connectedAppScopes: string[];
1228
+ };
1229
+ environment: {
1230
+ protocolVersion: "openpond.taskEnvironment.v1";
1231
+ kind: "work" | "agent" | "chat" | "program" | "stateful_harness";
1232
+ entrypoint: string;
1233
+ stateful: boolean;
1234
+ deterministicSeeds: boolean;
1235
+ toolNames: string[];
1236
+ lifecycle: ("cleanup" | "create" | "grade" | "reset" | "step")[];
1237
+ defaultTimeoutMs: number;
1238
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
1239
+ metadata: Record<string, unknown>;
1240
+ actionBindings?: {
1241
+ schemaVersion: "openpond.harnessActionBinding.v1";
1242
+ actionId: string;
1243
+ modelToolName: string;
1244
+ description: string;
1245
+ inputSchema: Record<string, unknown>;
1246
+ actionSchemaHash: string;
1247
+ agentRelease: {
1248
+ id: string;
1249
+ contentHash: string;
1250
+ };
1251
+ implementationHash: string;
1252
+ runtimeBindingId: string;
1253
+ capabilityReceiptHash: string;
1254
+ sideEffect: "read" | "write";
1255
+ studentVisible: boolean;
1256
+ timeoutMs: number;
1257
+ episodeArgumentBindings: {
1258
+ argument: string;
1259
+ source: "case_id";
1260
+ }[];
1261
+ }[] | undefined;
1262
+ resources?: {
1263
+ id: string;
1264
+ kind: "file" | "catalog" | "configuration" | "code_module";
1265
+ path: string;
1266
+ visibility: "privileged" | "policy_visible" | "policy_hidden";
1267
+ required: boolean;
1268
+ metadata: Record<string, unknown>;
1269
+ mediaType?: string | null | undefined;
1270
+ }[] | undefined;
1271
+ };
1272
+ output: {
1273
+ mode: "text" | "structured_json" | "artifacts";
1274
+ jsonSchema: Record<string, unknown> | null;
1275
+ renderer: {
1276
+ module: string;
1277
+ exportName: string;
1278
+ configRef: string | null;
1279
+ } | null;
1280
+ };
1281
+ capabilities: {
1282
+ schemaVersion: "openpond.tasksetCapabilities.v1";
1283
+ taskKind: "custom_program" | "chat" | "single_agent" | "multi_agent";
1284
+ supportedSignals: ("label" | "reward" | "feedback" | "preference" | "demonstration" | "correction")[];
1285
+ compatibleMethods: ("none" | "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | "retrieval")[];
1286
+ rewardKinds: ("none" | "model_judge" | "human" | "deterministic" | "exact")[];
1287
+ requiresTools: boolean;
1288
+ requiresState: boolean;
1289
+ requiresPrivilegedGrading: boolean;
1290
+ environmentPlacements: ("local" | "remote" | "colocated" | "provider_native")[];
1291
+ exportable: boolean;
1292
+ portabilityBlockers: string[];
1293
+ };
1294
+ metrics: {
1295
+ schemaVersion: "openpond.tasksetMetricPolicy.v1";
1296
+ primaryMetric: string;
1297
+ aggregation: "custom" | "mean_score" | "pass_rate" | "weighted_mean";
1298
+ missingReward: "zero" | "exclude";
1299
+ customAggregator: {
1300
+ module: string;
1301
+ exportName: string;
1302
+ contentHash: string;
1303
+ timeoutMs: number;
1304
+ networkPolicy: "none";
1305
+ } | null;
1306
+ taskWeights?: Record<string, number> | undefined;
1307
+ };
1308
+ review: {
1309
+ enabled: boolean;
1310
+ candidateCount: number;
1311
+ minimumSamples: number;
1312
+ allowTies: boolean;
1313
+ allowRejectAll: boolean;
1314
+ rubric: string;
1315
+ criteria: {
1316
+ id: string;
1317
+ label: string;
1318
+ description: string;
1319
+ weight: number;
1320
+ }[];
1321
+ };
1322
+ tasks: {
1323
+ schemaVersion: "openpond.taskData.v1";
1324
+ id: string;
1325
+ clusterKey: string;
1326
+ split: "train" | "validation" | "test" | "frozen_eval";
1327
+ input: Record<string, unknown>;
1328
+ expectedOutput: Record<string, unknown> | null;
1329
+ policyVisibleContext: Record<string, unknown>;
1330
+ privilegedContextRef: string | null;
1331
+ tags: string[];
1332
+ metadata: Record<string, unknown>;
1333
+ sourceRefs: string[];
1334
+ assets?: {
1335
+ id: string;
1336
+ sourceRefId: string;
1337
+ artifactRef: string;
1338
+ fileName: string;
1339
+ mediaType: string;
1340
+ sha256: string;
1341
+ sizeBytes: number;
1342
+ split: "train" | "validation" | "test" | "frozen_eval";
1343
+ metadata: Record<string, unknown>;
1344
+ }[] | undefined;
1345
+ resourceRefs?: string[] | undefined;
1346
+ requiredOutputs?: {
1347
+ path: string;
1348
+ mediaType: string;
1349
+ metadata: Record<string, unknown>;
1350
+ schemaRef?: string | null | undefined;
1351
+ maxBytes?: number | undefined;
1352
+ }[] | undefined;
1353
+ }[];
1354
+ graders: ({
1355
+ id: string;
1356
+ version: string;
1357
+ label: string;
1358
+ weight: number;
1359
+ hardGate: boolean;
1360
+ rewardEligible: boolean;
1361
+ privileged: boolean;
1362
+ metadata: Record<string, unknown>;
1363
+ kind: "file" | "state" | "test" | "content" | "schema" | "runtime_event" | "diff";
1364
+ config: Record<string, unknown>;
1365
+ } | {
1366
+ id: string;
1367
+ version: string;
1368
+ label: string;
1369
+ weight: number;
1370
+ hardGate: boolean;
1371
+ rewardEligible: boolean;
1372
+ privileged: boolean;
1373
+ metadata: Record<string, unknown>;
1374
+ kind: "model_judge";
1375
+ rubric: string;
1376
+ judge: {
1377
+ providerId: "openpond" | "codex" | "anthropic" | "openai" | "xai" | "google" | "openrouter" | "deepseek" | "zai" | "moonshot" | "together" | "groq" | "custom-openai-compatible";
1378
+ modelId: string;
1379
+ };
1380
+ calibrationFixtureRefs: string[];
1381
+ calibrationStatus: "failed" | "pending" | "passed";
1382
+ temperature: number;
1383
+ } | {
1384
+ id: string;
1385
+ version: string;
1386
+ label: string;
1387
+ weight: number;
1388
+ hardGate: boolean;
1389
+ rewardEligible: boolean;
1390
+ privileged: boolean;
1391
+ metadata: Record<string, unknown>;
1392
+ kind: "human";
1393
+ rubric: string;
1394
+ reviewerRole: string;
1395
+ } | {
1396
+ id: string;
1397
+ version: string;
1398
+ label: string;
1399
+ weight: number;
1400
+ hardGate: boolean;
1401
+ rewardEligible: boolean;
1402
+ privileged: boolean;
1403
+ metadata: Record<string, unknown>;
1404
+ kind: "custom_verifier";
1405
+ module: string;
1406
+ exportName: string;
1407
+ timeoutMs: number;
1408
+ networkPolicy: "none";
1409
+ })[];
1410
+ graderFixtures: {
1411
+ id: string;
1412
+ taskId: string;
1413
+ label: "infrastructure_failure" | "positive" | "negative" | "boundary" | "adversarial" | "prompt_injection";
1414
+ output: Record<string, unknown>;
1415
+ infrastructureError: string | null;
1416
+ expectedPassed: boolean;
1417
+ expectedRewardEligible: boolean;
1418
+ metadata: Record<string, unknown>;
1419
+ }[];
1420
+ learningSignals: {
1421
+ demonstrations: {
1422
+ id: string;
1423
+ taskId: string | null;
1424
+ sourceRefs: string[];
1425
+ artifactRef: string;
1426
+ approved: boolean;
1427
+ confidence: number;
1428
+ metadata: Record<string, unknown>;
1429
+ kind: "demonstration";
1430
+ prompt: string | null;
1431
+ response: string | null;
1432
+ }[];
1433
+ preferences: {
1434
+ id: string;
1435
+ taskId: string | null;
1436
+ sourceRefs: string[];
1437
+ artifactRef: string;
1438
+ approved: boolean;
1439
+ confidence: number;
1440
+ metadata: Record<string, unknown>;
1441
+ kind: "preference";
1442
+ prompt: string;
1443
+ chosen: string;
1444
+ rejected: string;
1445
+ rationale: string | null;
1446
+ }[];
1447
+ corrections: {
1448
+ id: string;
1449
+ taskId: string | null;
1450
+ sourceRefs: string[];
1451
+ artifactRef: string;
1452
+ approved: boolean;
1453
+ confidence: number;
1454
+ metadata: Record<string, unknown>;
1455
+ kind: "correction";
1456
+ original: string;
1457
+ corrected: string;
1458
+ rationale: string | null;
1459
+ }[];
1460
+ feedback: {
1461
+ id: string;
1462
+ taskId: string | null;
1463
+ sourceRefs: string[];
1464
+ artifactRef: string;
1465
+ approved: boolean;
1466
+ confidence: number;
1467
+ metadata: Record<string, unknown>;
1468
+ kind: "feedback";
1469
+ feedback: string;
1470
+ polarity: "neutral" | "positive" | "negative" | "mixed";
1471
+ }[];
1472
+ rewards: {
1473
+ id: string;
1474
+ taskId: string | null;
1475
+ sourceRefs: string[];
1476
+ artifactRef: string;
1477
+ approved: boolean;
1478
+ confidence: number;
1479
+ metadata: Record<string, unknown>;
1480
+ kind: "reward";
1481
+ task: string;
1482
+ rules: {
1483
+ id: string;
1484
+ points: number;
1485
+ condition: string;
1486
+ }[];
1487
+ otherwisePoints: number;
1488
+ executable: boolean;
1489
+ }[];
1490
+ labels: {
1491
+ id: string;
1492
+ taskId: string | null;
1493
+ sourceRefs: string[];
1494
+ artifactRef: string;
1495
+ approved: boolean;
1496
+ confidence: number;
1497
+ metadata: Record<string, unknown>;
1498
+ kind: "label";
1499
+ labelKind: "rubric";
1500
+ task: string;
1501
+ criteria: {
1502
+ id: string;
1503
+ label: string;
1504
+ description: string;
1505
+ }[];
1506
+ calibrationExamples: {
1507
+ positive: string;
1508
+ negative: string;
1509
+ boundary: string;
1510
+ };
1511
+ }[];
1512
+ };
1513
+ publishedTasksetRef: {
1514
+ id: string;
1515
+ revision: number;
1516
+ contentHash: string;
1517
+ } | null;
1518
+ createdAt: string;
1519
+ updatedAt: string;
1520
+ metadata: Record<string, unknown>;
1521
+ datasetArtifact?: {
1522
+ schemaVersion: "openpond.datasetArtifact.v1";
1523
+ id: string;
1524
+ tasksetId: string;
1525
+ tasksetRevision: number;
1526
+ contentHash: string;
1527
+ format: "parquet";
1528
+ schema: {
1529
+ schemaVersion: "openpond.datasetSemanticSchema.v1";
1530
+ fields: {
1531
+ name: string;
1532
+ semanticRole: "metadata" | "prompt" | "reward" | "feedback" | "rejected" | "messages" | "row_id" | "cluster_id" | "demonstration" | "chosen" | "expected_output" | "privileged_context" | "tag";
1533
+ logicalType: "string" | "boolean" | "messages" | "integer" | "float" | "json";
1534
+ nullable: boolean;
1535
+ policy: "metadata" | "privileged" | "visible";
1536
+ }[];
1537
+ schemaHash: string;
1538
+ };
1539
+ shards: {
1540
+ id: string;
1541
+ split: "train" | "validation" | "test" | "frozen_eval";
1542
+ path: string;
1543
+ contentHash: string;
1544
+ schemaHash: string;
1545
+ sizeBytes: number;
1546
+ rowCount: number;
1547
+ rowGroupCount: number;
1548
+ }[];
1549
+ rowCount: number;
1550
+ splitCounts: Record<"train" | "validation" | "test" | "frozen_eval", number>;
1551
+ sourceReceiptRefs: string[];
1552
+ mappingHash: string;
1553
+ qualityReportHash: string;
1554
+ createdAt: string;
1555
+ } | null | undefined;
1556
+ };
1557
+ workspaceHash: string;
1558
+ projectEtag: string;
1559
+ teamId: string;
1560
+ modelId: string;
1561
+ schemaVersion: "openpond.tasksetDraftReadback.v1";
1562
+ }>;
1563
+ refreshModel(modelId: string, draftId: string, input: TasksetDraftRefreshRequest, options?: Options): Promise<{
1564
+ draft: {
1565
+ schemaVersion: "openpond.tasksetDraft.v1";
1566
+ id: string;
1567
+ revision: number;
1568
+ profileId: string;
1569
+ modelScope: {
1570
+ modelId: string;
1571
+ expectedModelRevision: number;
1572
+ source?: {
1573
+ schemaVersion: "openpond.modelTasksetDraftPreparation.v1";
1574
+ draftId: string;
1575
+ requestHash: string;
1576
+ sourcePackageHash: string;
1577
+ sourceTasksetRef: {
1578
+ id: string;
1579
+ contentHash: string;
1580
+ revision: number;
1581
+ };
1582
+ tasksetId: string;
1583
+ tasksetRevision: number;
1584
+ lineage: {
1585
+ schemaVersion: "openpond.modelTasksetAuthoring.v1";
1586
+ owner: {
1587
+ scopeId: string;
1588
+ modelId: string;
1589
+ };
1590
+ root: {
1591
+ id: string;
1592
+ contentHash: string;
1593
+ revision: number;
1594
+ };
1595
+ parent: {
1596
+ id: string;
1597
+ contentHash: string;
1598
+ revision: number;
1599
+ };
1600
+ };
1601
+ } | undefined;
1602
+ } | null;
1603
+ name: string;
1604
+ objective: string;
1605
+ purpose: "benchmark" | "general";
1606
+ benchmark: {
1607
+ schemaVersion: "openpond.tasksetBenchmark.v1";
1608
+ definitionId: string;
1609
+ releaseId: string;
1610
+ releaseHash: string;
1611
+ managedReleasePath: string;
1612
+ adaptationSplit: "train" | "validation" | "test" | "frozen_eval";
1613
+ evaluationSplit: "train" | "validation" | "test" | "frozen_eval";
1614
+ primaryMetric: "foreground_tokens" | "success_rate" | "latency_ms" | "cost_usd";
1615
+ qualityGate: "none" | "non_regression" | "all_pass";
1616
+ source: "builtin" | "imported";
1617
+ metadata: Record<string, unknown>;
1618
+ } | null;
1619
+ preferenceComparison: {
1620
+ schemaVersion: "openpond.tasksetPreferenceComparisonBinding.v1";
1621
+ releaseId: string;
1622
+ releaseHash: string;
1623
+ publishedAt: string;
1624
+ metadata: Record<string, unknown>;
1625
+ } | null;
1626
+ status: "draft" | "published" | "validating" | "needs_review";
1627
+ sourceRefs: ({
1628
+ id: string;
1629
+ profileId: string;
1630
+ title: string;
1631
+ sourceHash: string;
1632
+ occurredAt: string;
1633
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1634
+ secretScanStatus: "pending" | "passed" | "blocked";
1635
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1636
+ metadata: Record<string, unknown>;
1637
+ schemaVersion: "openpond.huggingFaceDatasetSource.v1";
1638
+ kind: "huggingface";
1639
+ repositoryId: string;
1640
+ repositoryUrl: string;
1641
+ revision: string;
1642
+ configuration: string;
1643
+ upstreamSplits: string[];
1644
+ gated: boolean;
1645
+ private: boolean;
1646
+ declaredLicense: string | null;
1647
+ sourceFileHashes: string[];
1648
+ } | {
1649
+ id: string;
1650
+ profileId: string;
1651
+ title: string;
1652
+ sourceHash: string;
1653
+ occurredAt: string;
1654
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1655
+ secretScanStatus: "pending" | "passed" | "blocked";
1656
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1657
+ metadata: Record<string, unknown>;
1658
+ schemaVersion: "openpond.uploadedFileDatasetSource.v1";
1659
+ kind: "uploaded_file";
1660
+ originalFileNames: string[];
1661
+ mediaTypes: string[];
1662
+ sourceFileHashes: string[];
1663
+ totalBytes: number;
1664
+ parserVersion: string;
1665
+ } | {
1666
+ id: string;
1667
+ profileId: string;
1668
+ title: string;
1669
+ sourceHash: string;
1670
+ occurredAt: string;
1671
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1672
+ secretScanStatus: "pending" | "passed" | "blocked";
1673
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1674
+ metadata: Record<string, unknown>;
1675
+ schemaVersion: "openpond.generatedDatasetSource.v1";
1676
+ kind: "generated";
1677
+ generatorId: string;
1678
+ generatorVersion: string;
1679
+ seed: number;
1680
+ generatorHash: string;
1681
+ } | {
1682
+ id: string;
1683
+ profileId: string;
1684
+ title: string;
1685
+ sourceHash: string;
1686
+ occurredAt: string;
1687
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1688
+ secretScanStatus: "pending" | "passed" | "blocked";
1689
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1690
+ metadata: Record<string, unknown>;
1691
+ schemaVersion: "openpond.learningBatchDatasetSource.v1";
1692
+ kind: "learning_batch";
1693
+ batch: {
1694
+ id: string;
1695
+ revision: number;
1696
+ contentHash: string;
1697
+ };
1698
+ taskDefinition: {
1699
+ id: string;
1700
+ revision: number;
1701
+ contentHash: string;
1702
+ };
1703
+ admittedBy: string;
1704
+ } | {
1705
+ schemaVersion: "openpond.trainingSource.v1";
1706
+ id: string;
1707
+ profileId: string;
1708
+ sessionId: string;
1709
+ turnIds: string[];
1710
+ workspaceId: string | null;
1711
+ sourceHash: string;
1712
+ clusterKey: string;
1713
+ title: string;
1714
+ occurredAt: string;
1715
+ consent: {
1716
+ status: "pending" | "granted" | "denied" | "revoked";
1717
+ scope: "metadata_only" | "selected_turns" | "full_session";
1718
+ grantedBy: string | null;
1719
+ grantedAt: string | null;
1720
+ purpose: "task_authoring_and_evaluation";
1721
+ };
1722
+ connectedAppIds: string[];
1723
+ secretScanStatus: "pending" | "passed" | "blocked";
1724
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
1725
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
1726
+ metadata: Record<string, unknown>;
1727
+ })[];
1728
+ policy: {
1729
+ policyVisibleFields: string[];
1730
+ privilegedFields: string[];
1731
+ hiddenGraderRefs: string[];
1732
+ connectedAppScopes: string[];
1733
+ };
1734
+ environment: {
1735
+ protocolVersion: "openpond.taskEnvironment.v1";
1736
+ kind: "work" | "agent" | "chat" | "program" | "stateful_harness";
1737
+ entrypoint: string;
1738
+ stateful: boolean;
1739
+ deterministicSeeds: boolean;
1740
+ toolNames: string[];
1741
+ lifecycle: ("cleanup" | "create" | "grade" | "reset" | "step")[];
1742
+ defaultTimeoutMs: number;
1743
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
1744
+ metadata: Record<string, unknown>;
1745
+ actionBindings?: {
1746
+ schemaVersion: "openpond.harnessActionBinding.v1";
1747
+ actionId: string;
1748
+ modelToolName: string;
1749
+ description: string;
1750
+ inputSchema: Record<string, unknown>;
1751
+ actionSchemaHash: string;
1752
+ agentRelease: {
1753
+ id: string;
1754
+ contentHash: string;
1755
+ };
1756
+ implementationHash: string;
1757
+ runtimeBindingId: string;
1758
+ capabilityReceiptHash: string;
1759
+ sideEffect: "read" | "write";
1760
+ studentVisible: boolean;
1761
+ timeoutMs: number;
1762
+ episodeArgumentBindings: {
1763
+ argument: string;
1764
+ source: "case_id";
1765
+ }[];
1766
+ }[] | undefined;
1767
+ resources?: {
1768
+ id: string;
1769
+ kind: "file" | "catalog" | "configuration" | "code_module";
1770
+ path: string;
1771
+ visibility: "privileged" | "policy_visible" | "policy_hidden";
1772
+ required: boolean;
1773
+ metadata: Record<string, unknown>;
1774
+ mediaType?: string | null | undefined;
1775
+ }[] | undefined;
1776
+ };
1777
+ output: {
1778
+ mode: "text" | "structured_json" | "artifacts";
1779
+ jsonSchema: Record<string, unknown> | null;
1780
+ renderer: {
1781
+ module: string;
1782
+ exportName: string;
1783
+ configRef: string | null;
1784
+ } | null;
1785
+ };
1786
+ capabilities: {
1787
+ schemaVersion: "openpond.tasksetCapabilities.v1";
1788
+ taskKind: "custom_program" | "chat" | "single_agent" | "multi_agent";
1789
+ supportedSignals: ("label" | "reward" | "feedback" | "preference" | "demonstration" | "correction")[];
1790
+ compatibleMethods: ("none" | "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | "retrieval")[];
1791
+ rewardKinds: ("none" | "model_judge" | "human" | "deterministic" | "exact")[];
1792
+ requiresTools: boolean;
1793
+ requiresState: boolean;
1794
+ requiresPrivilegedGrading: boolean;
1795
+ environmentPlacements: ("local" | "remote" | "colocated" | "provider_native")[];
1796
+ exportable: boolean;
1797
+ portabilityBlockers: string[];
1798
+ };
1799
+ metrics: {
1800
+ schemaVersion: "openpond.tasksetMetricPolicy.v1";
1801
+ primaryMetric: string;
1802
+ aggregation: "custom" | "mean_score" | "pass_rate" | "weighted_mean";
1803
+ missingReward: "zero" | "exclude";
1804
+ customAggregator: {
1805
+ module: string;
1806
+ exportName: string;
1807
+ contentHash: string;
1808
+ timeoutMs: number;
1809
+ networkPolicy: "none";
1810
+ } | null;
1811
+ taskWeights?: Record<string, number> | undefined;
1812
+ };
1813
+ review: {
1814
+ enabled: boolean;
1815
+ candidateCount: number;
1816
+ minimumSamples: number;
1817
+ allowTies: boolean;
1818
+ allowRejectAll: boolean;
1819
+ rubric: string;
1820
+ criteria: {
1821
+ id: string;
1822
+ label: string;
1823
+ description: string;
1824
+ weight: number;
1825
+ }[];
1826
+ };
1827
+ tasks: {
1828
+ schemaVersion: "openpond.taskData.v1";
1829
+ id: string;
1830
+ clusterKey: string;
1831
+ split: "train" | "validation" | "test" | "frozen_eval";
1832
+ input: Record<string, unknown>;
1833
+ expectedOutput: Record<string, unknown> | null;
1834
+ policyVisibleContext: Record<string, unknown>;
1835
+ privilegedContextRef: string | null;
1836
+ tags: string[];
1837
+ metadata: Record<string, unknown>;
1838
+ sourceRefs: string[];
1839
+ assets?: {
1840
+ id: string;
1841
+ sourceRefId: string;
1842
+ artifactRef: string;
1843
+ fileName: string;
1844
+ mediaType: string;
1845
+ sha256: string;
1846
+ sizeBytes: number;
1847
+ split: "train" | "validation" | "test" | "frozen_eval";
1848
+ metadata: Record<string, unknown>;
1849
+ }[] | undefined;
1850
+ resourceRefs?: string[] | undefined;
1851
+ requiredOutputs?: {
1852
+ path: string;
1853
+ mediaType: string;
1854
+ metadata: Record<string, unknown>;
1855
+ schemaRef?: string | null | undefined;
1856
+ maxBytes?: number | undefined;
1857
+ }[] | undefined;
1858
+ }[];
1859
+ graders: ({
1860
+ id: string;
1861
+ version: string;
1862
+ label: string;
1863
+ weight: number;
1864
+ hardGate: boolean;
1865
+ rewardEligible: boolean;
1866
+ privileged: boolean;
1867
+ metadata: Record<string, unknown>;
1868
+ kind: "file" | "state" | "test" | "content" | "schema" | "runtime_event" | "diff";
1869
+ config: Record<string, unknown>;
1870
+ } | {
1871
+ id: string;
1872
+ version: string;
1873
+ label: string;
1874
+ weight: number;
1875
+ hardGate: boolean;
1876
+ rewardEligible: boolean;
1877
+ privileged: boolean;
1878
+ metadata: Record<string, unknown>;
1879
+ kind: "model_judge";
1880
+ rubric: string;
1881
+ judge: {
1882
+ providerId: "openpond" | "codex" | "anthropic" | "openai" | "xai" | "google" | "openrouter" | "deepseek" | "zai" | "moonshot" | "together" | "groq" | "custom-openai-compatible";
1883
+ modelId: string;
1884
+ };
1885
+ calibrationFixtureRefs: string[];
1886
+ calibrationStatus: "failed" | "pending" | "passed";
1887
+ temperature: number;
1888
+ } | {
1889
+ id: string;
1890
+ version: string;
1891
+ label: string;
1892
+ weight: number;
1893
+ hardGate: boolean;
1894
+ rewardEligible: boolean;
1895
+ privileged: boolean;
1896
+ metadata: Record<string, unknown>;
1897
+ kind: "human";
1898
+ rubric: string;
1899
+ reviewerRole: string;
1900
+ } | {
1901
+ id: string;
1902
+ version: string;
1903
+ label: string;
1904
+ weight: number;
1905
+ hardGate: boolean;
1906
+ rewardEligible: boolean;
1907
+ privileged: boolean;
1908
+ metadata: Record<string, unknown>;
1909
+ kind: "custom_verifier";
1910
+ module: string;
1911
+ exportName: string;
1912
+ timeoutMs: number;
1913
+ networkPolicy: "none";
1914
+ })[];
1915
+ graderFixtures: {
1916
+ id: string;
1917
+ taskId: string;
1918
+ label: "infrastructure_failure" | "positive" | "negative" | "boundary" | "adversarial" | "prompt_injection";
1919
+ output: Record<string, unknown>;
1920
+ infrastructureError: string | null;
1921
+ expectedPassed: boolean;
1922
+ expectedRewardEligible: boolean;
1923
+ metadata: Record<string, unknown>;
1924
+ }[];
1925
+ learningSignals: {
1926
+ demonstrations: {
1927
+ id: string;
1928
+ taskId: string | null;
1929
+ sourceRefs: string[];
1930
+ artifactRef: string;
1931
+ approved: boolean;
1932
+ confidence: number;
1933
+ metadata: Record<string, unknown>;
1934
+ kind: "demonstration";
1935
+ prompt: string | null;
1936
+ response: string | null;
1937
+ }[];
1938
+ preferences: {
1939
+ id: string;
1940
+ taskId: string | null;
1941
+ sourceRefs: string[];
1942
+ artifactRef: string;
1943
+ approved: boolean;
1944
+ confidence: number;
1945
+ metadata: Record<string, unknown>;
1946
+ kind: "preference";
1947
+ prompt: string;
1948
+ chosen: string;
1949
+ rejected: string;
1950
+ rationale: string | null;
1951
+ }[];
1952
+ corrections: {
1953
+ id: string;
1954
+ taskId: string | null;
1955
+ sourceRefs: string[];
1956
+ artifactRef: string;
1957
+ approved: boolean;
1958
+ confidence: number;
1959
+ metadata: Record<string, unknown>;
1960
+ kind: "correction";
1961
+ original: string;
1962
+ corrected: string;
1963
+ rationale: string | null;
1964
+ }[];
1965
+ feedback: {
1966
+ id: string;
1967
+ taskId: string | null;
1968
+ sourceRefs: string[];
1969
+ artifactRef: string;
1970
+ approved: boolean;
1971
+ confidence: number;
1972
+ metadata: Record<string, unknown>;
1973
+ kind: "feedback";
1974
+ feedback: string;
1975
+ polarity: "neutral" | "positive" | "negative" | "mixed";
1976
+ }[];
1977
+ rewards: {
1978
+ id: string;
1979
+ taskId: string | null;
1980
+ sourceRefs: string[];
1981
+ artifactRef: string;
1982
+ approved: boolean;
1983
+ confidence: number;
1984
+ metadata: Record<string, unknown>;
1985
+ kind: "reward";
1986
+ task: string;
1987
+ rules: {
1988
+ id: string;
1989
+ points: number;
1990
+ condition: string;
1991
+ }[];
1992
+ otherwisePoints: number;
1993
+ executable: boolean;
1994
+ }[];
1995
+ labels: {
1996
+ id: string;
1997
+ taskId: string | null;
1998
+ sourceRefs: string[];
1999
+ artifactRef: string;
2000
+ approved: boolean;
2001
+ confidence: number;
2002
+ metadata: Record<string, unknown>;
2003
+ kind: "label";
2004
+ labelKind: "rubric";
2005
+ task: string;
2006
+ criteria: {
2007
+ id: string;
2008
+ label: string;
2009
+ description: string;
2010
+ }[];
2011
+ calibrationExamples: {
2012
+ positive: string;
2013
+ negative: string;
2014
+ boundary: string;
2015
+ };
2016
+ }[];
2017
+ };
2018
+ publishedTasksetRef: {
2019
+ id: string;
2020
+ revision: number;
2021
+ contentHash: string;
2022
+ } | null;
2023
+ createdAt: string;
2024
+ updatedAt: string;
2025
+ metadata: Record<string, unknown>;
2026
+ datasetArtifact?: {
2027
+ schemaVersion: "openpond.datasetArtifact.v1";
2028
+ id: string;
2029
+ tasksetId: string;
2030
+ tasksetRevision: number;
2031
+ contentHash: string;
2032
+ format: "parquet";
2033
+ schema: {
2034
+ schemaVersion: "openpond.datasetSemanticSchema.v1";
2035
+ fields: {
2036
+ name: string;
2037
+ semanticRole: "metadata" | "prompt" | "reward" | "feedback" | "rejected" | "messages" | "row_id" | "cluster_id" | "demonstration" | "chosen" | "expected_output" | "privileged_context" | "tag";
2038
+ logicalType: "string" | "boolean" | "messages" | "integer" | "float" | "json";
2039
+ nullable: boolean;
2040
+ policy: "metadata" | "privileged" | "visible";
2041
+ }[];
2042
+ schemaHash: string;
2043
+ };
2044
+ shards: {
2045
+ id: string;
2046
+ split: "train" | "validation" | "test" | "frozen_eval";
2047
+ path: string;
2048
+ contentHash: string;
2049
+ schemaHash: string;
2050
+ sizeBytes: number;
2051
+ rowCount: number;
2052
+ rowGroupCount: number;
2053
+ }[];
2054
+ rowCount: number;
2055
+ splitCounts: Record<"train" | "validation" | "test" | "frozen_eval", number>;
2056
+ sourceReceiptRefs: string[];
2057
+ mappingHash: string;
2058
+ qualityReportHash: string;
2059
+ createdAt: string;
2060
+ } | null | undefined;
2061
+ };
2062
+ workspaceHash: string;
2063
+ projectEtag: string;
2064
+ teamId: string;
2065
+ modelId: string;
2066
+ schemaVersion: "openpond.tasksetDraftReadback.v1";
2067
+ }>;
2068
+ files(modelId: string, draftId: string, options?: Options): Promise<{
2069
+ draftId: string;
2070
+ draftRevision: number;
2071
+ files: {
2072
+ path: string;
2073
+ sizeBytes: number;
2074
+ writable: boolean;
2075
+ }[];
2076
+ teamId: string;
2077
+ modelId: string;
2078
+ schemaVersion: "openpond.tasksetDraftFileList.v1";
2079
+ }>;
2080
+ readFile(modelId: string, draftId: string, path: string, options?: Options): Promise<{
2081
+ draftId: string;
2082
+ draftRevision: number;
2083
+ file: {
2084
+ path: string;
2085
+ sizeBytes: number;
2086
+ writable: boolean;
2087
+ contentHash: string;
2088
+ content: {
2089
+ encoding: "utf8" | "base64";
2090
+ data: string;
2091
+ };
2092
+ };
2093
+ teamId: string;
2094
+ modelId: string;
2095
+ schemaVersion: "openpond.tasksetDraftFileReadback.v1";
2096
+ }>;
2097
+ saveFile(modelId: string, input: TasksetDraftFileMutation, options?: Options): Promise<{
2098
+ draft: {
2099
+ schemaVersion: "openpond.tasksetDraft.v1";
2100
+ id: string;
2101
+ revision: number;
2102
+ profileId: string;
2103
+ modelScope: {
2104
+ modelId: string;
2105
+ expectedModelRevision: number;
2106
+ source?: {
2107
+ schemaVersion: "openpond.modelTasksetDraftPreparation.v1";
2108
+ draftId: string;
2109
+ requestHash: string;
2110
+ sourcePackageHash: string;
2111
+ sourceTasksetRef: {
2112
+ id: string;
2113
+ contentHash: string;
2114
+ revision: number;
2115
+ };
2116
+ tasksetId: string;
2117
+ tasksetRevision: number;
2118
+ lineage: {
2119
+ schemaVersion: "openpond.modelTasksetAuthoring.v1";
2120
+ owner: {
2121
+ scopeId: string;
2122
+ modelId: string;
2123
+ };
2124
+ root: {
2125
+ id: string;
2126
+ contentHash: string;
2127
+ revision: number;
2128
+ };
2129
+ parent: {
2130
+ id: string;
2131
+ contentHash: string;
2132
+ revision: number;
2133
+ };
2134
+ };
2135
+ } | undefined;
2136
+ } | null;
2137
+ name: string;
2138
+ objective: string;
2139
+ purpose: "benchmark" | "general";
2140
+ benchmark: {
2141
+ schemaVersion: "openpond.tasksetBenchmark.v1";
2142
+ definitionId: string;
2143
+ releaseId: string;
2144
+ releaseHash: string;
2145
+ managedReleasePath: string;
2146
+ adaptationSplit: "train" | "validation" | "test" | "frozen_eval";
2147
+ evaluationSplit: "train" | "validation" | "test" | "frozen_eval";
2148
+ primaryMetric: "foreground_tokens" | "success_rate" | "latency_ms" | "cost_usd";
2149
+ qualityGate: "none" | "non_regression" | "all_pass";
2150
+ source: "builtin" | "imported";
2151
+ metadata: Record<string, unknown>;
2152
+ } | null;
2153
+ preferenceComparison: {
2154
+ schemaVersion: "openpond.tasksetPreferenceComparisonBinding.v1";
2155
+ releaseId: string;
2156
+ releaseHash: string;
2157
+ publishedAt: string;
2158
+ metadata: Record<string, unknown>;
2159
+ } | null;
2160
+ status: "draft" | "published" | "validating" | "needs_review";
2161
+ sourceRefs: ({
2162
+ id: string;
2163
+ profileId: string;
2164
+ title: string;
2165
+ sourceHash: string;
2166
+ occurredAt: string;
2167
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
2168
+ secretScanStatus: "pending" | "passed" | "blocked";
2169
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
2170
+ metadata: Record<string, unknown>;
2171
+ schemaVersion: "openpond.huggingFaceDatasetSource.v1";
2172
+ kind: "huggingface";
2173
+ repositoryId: string;
2174
+ repositoryUrl: string;
2175
+ revision: string;
2176
+ configuration: string;
2177
+ upstreamSplits: string[];
2178
+ gated: boolean;
2179
+ private: boolean;
2180
+ declaredLicense: string | null;
2181
+ sourceFileHashes: string[];
2182
+ } | {
2183
+ id: string;
2184
+ profileId: string;
2185
+ title: string;
2186
+ sourceHash: string;
2187
+ occurredAt: string;
2188
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
2189
+ secretScanStatus: "pending" | "passed" | "blocked";
2190
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
2191
+ metadata: Record<string, unknown>;
2192
+ schemaVersion: "openpond.uploadedFileDatasetSource.v1";
2193
+ kind: "uploaded_file";
2194
+ originalFileNames: string[];
2195
+ mediaTypes: string[];
2196
+ sourceFileHashes: string[];
2197
+ totalBytes: number;
2198
+ parserVersion: string;
2199
+ } | {
2200
+ id: string;
2201
+ profileId: string;
2202
+ title: string;
2203
+ sourceHash: string;
2204
+ occurredAt: string;
2205
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
2206
+ secretScanStatus: "pending" | "passed" | "blocked";
2207
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
2208
+ metadata: Record<string, unknown>;
2209
+ schemaVersion: "openpond.generatedDatasetSource.v1";
2210
+ kind: "generated";
2211
+ generatorId: string;
2212
+ generatorVersion: string;
2213
+ seed: number;
2214
+ generatorHash: string;
2215
+ } | {
2216
+ id: string;
2217
+ profileId: string;
2218
+ title: string;
2219
+ sourceHash: string;
2220
+ occurredAt: string;
2221
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
2222
+ secretScanStatus: "pending" | "passed" | "blocked";
2223
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
2224
+ metadata: Record<string, unknown>;
2225
+ schemaVersion: "openpond.learningBatchDatasetSource.v1";
2226
+ kind: "learning_batch";
2227
+ batch: {
2228
+ id: string;
2229
+ revision: number;
2230
+ contentHash: string;
2231
+ };
2232
+ taskDefinition: {
2233
+ id: string;
2234
+ revision: number;
2235
+ contentHash: string;
2236
+ };
2237
+ admittedBy: string;
2238
+ } | {
2239
+ schemaVersion: "openpond.trainingSource.v1";
2240
+ id: string;
2241
+ profileId: string;
2242
+ sessionId: string;
2243
+ turnIds: string[];
2244
+ workspaceId: string | null;
2245
+ sourceHash: string;
2246
+ clusterKey: string;
2247
+ title: string;
2248
+ occurredAt: string;
2249
+ consent: {
2250
+ status: "pending" | "granted" | "denied" | "revoked";
2251
+ scope: "metadata_only" | "selected_turns" | "full_session";
2252
+ grantedBy: string | null;
2253
+ grantedAt: string | null;
2254
+ purpose: "task_authoring_and_evaluation";
2255
+ };
2256
+ connectedAppIds: string[];
2257
+ secretScanStatus: "pending" | "passed" | "blocked";
2258
+ piiScanStatus: "pending" | "review" | "passed" | "blocked";
2259
+ licensingStatus: "pending" | "review" | "approved" | "blocked";
2260
+ metadata: Record<string, unknown>;
2261
+ })[];
2262
+ policy: {
2263
+ policyVisibleFields: string[];
2264
+ privilegedFields: string[];
2265
+ hiddenGraderRefs: string[];
2266
+ connectedAppScopes: string[];
2267
+ };
2268
+ environment: {
2269
+ protocolVersion: "openpond.taskEnvironment.v1";
2270
+ kind: "work" | "agent" | "chat" | "program" | "stateful_harness";
2271
+ entrypoint: string;
2272
+ stateful: boolean;
2273
+ deterministicSeeds: boolean;
2274
+ toolNames: string[];
2275
+ lifecycle: ("cleanup" | "create" | "grade" | "reset" | "step")[];
2276
+ defaultTimeoutMs: number;
2277
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
2278
+ metadata: Record<string, unknown>;
2279
+ actionBindings?: {
2280
+ schemaVersion: "openpond.harnessActionBinding.v1";
2281
+ actionId: string;
2282
+ modelToolName: string;
2283
+ description: string;
2284
+ inputSchema: Record<string, unknown>;
2285
+ actionSchemaHash: string;
2286
+ agentRelease: {
2287
+ id: string;
2288
+ contentHash: string;
2289
+ };
2290
+ implementationHash: string;
2291
+ runtimeBindingId: string;
2292
+ capabilityReceiptHash: string;
2293
+ sideEffect: "read" | "write";
2294
+ studentVisible: boolean;
2295
+ timeoutMs: number;
2296
+ episodeArgumentBindings: {
2297
+ argument: string;
2298
+ source: "case_id";
2299
+ }[];
2300
+ }[] | undefined;
2301
+ resources?: {
2302
+ id: string;
2303
+ kind: "file" | "catalog" | "configuration" | "code_module";
2304
+ path: string;
2305
+ visibility: "privileged" | "policy_visible" | "policy_hidden";
2306
+ required: boolean;
2307
+ metadata: Record<string, unknown>;
2308
+ mediaType?: string | null | undefined;
2309
+ }[] | undefined;
2310
+ };
2311
+ output: {
2312
+ mode: "text" | "structured_json" | "artifacts";
2313
+ jsonSchema: Record<string, unknown> | null;
2314
+ renderer: {
2315
+ module: string;
2316
+ exportName: string;
2317
+ configRef: string | null;
2318
+ } | null;
2319
+ };
2320
+ capabilities: {
2321
+ schemaVersion: "openpond.tasksetCapabilities.v1";
2322
+ taskKind: "custom_program" | "chat" | "single_agent" | "multi_agent";
2323
+ supportedSignals: ("label" | "reward" | "feedback" | "preference" | "demonstration" | "correction")[];
2324
+ compatibleMethods: ("none" | "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | "retrieval")[];
2325
+ rewardKinds: ("none" | "model_judge" | "human" | "deterministic" | "exact")[];
2326
+ requiresTools: boolean;
2327
+ requiresState: boolean;
2328
+ requiresPrivilegedGrading: boolean;
2329
+ environmentPlacements: ("local" | "remote" | "colocated" | "provider_native")[];
2330
+ exportable: boolean;
2331
+ portabilityBlockers: string[];
2332
+ };
2333
+ metrics: {
2334
+ schemaVersion: "openpond.tasksetMetricPolicy.v1";
2335
+ primaryMetric: string;
2336
+ aggregation: "custom" | "mean_score" | "pass_rate" | "weighted_mean";
2337
+ missingReward: "zero" | "exclude";
2338
+ customAggregator: {
2339
+ module: string;
2340
+ exportName: string;
2341
+ contentHash: string;
2342
+ timeoutMs: number;
2343
+ networkPolicy: "none";
2344
+ } | null;
2345
+ taskWeights?: Record<string, number> | undefined;
2346
+ };
2347
+ review: {
2348
+ enabled: boolean;
2349
+ candidateCount: number;
2350
+ minimumSamples: number;
2351
+ allowTies: boolean;
2352
+ allowRejectAll: boolean;
2353
+ rubric: string;
2354
+ criteria: {
2355
+ id: string;
2356
+ label: string;
2357
+ description: string;
2358
+ weight: number;
2359
+ }[];
2360
+ };
2361
+ tasks: {
2362
+ schemaVersion: "openpond.taskData.v1";
2363
+ id: string;
2364
+ clusterKey: string;
2365
+ split: "train" | "validation" | "test" | "frozen_eval";
2366
+ input: Record<string, unknown>;
2367
+ expectedOutput: Record<string, unknown> | null;
2368
+ policyVisibleContext: Record<string, unknown>;
2369
+ privilegedContextRef: string | null;
2370
+ tags: string[];
2371
+ metadata: Record<string, unknown>;
2372
+ sourceRefs: string[];
2373
+ assets?: {
2374
+ id: string;
2375
+ sourceRefId: string;
2376
+ artifactRef: string;
2377
+ fileName: string;
2378
+ mediaType: string;
2379
+ sha256: string;
2380
+ sizeBytes: number;
2381
+ split: "train" | "validation" | "test" | "frozen_eval";
2382
+ metadata: Record<string, unknown>;
2383
+ }[] | undefined;
2384
+ resourceRefs?: string[] | undefined;
2385
+ requiredOutputs?: {
2386
+ path: string;
2387
+ mediaType: string;
2388
+ metadata: Record<string, unknown>;
2389
+ schemaRef?: string | null | undefined;
2390
+ maxBytes?: number | undefined;
2391
+ }[] | undefined;
2392
+ }[];
2393
+ graders: ({
2394
+ id: string;
2395
+ version: string;
2396
+ label: string;
2397
+ weight: number;
2398
+ hardGate: boolean;
2399
+ rewardEligible: boolean;
2400
+ privileged: boolean;
2401
+ metadata: Record<string, unknown>;
2402
+ kind: "file" | "state" | "test" | "content" | "schema" | "runtime_event" | "diff";
2403
+ config: Record<string, unknown>;
2404
+ } | {
2405
+ id: string;
2406
+ version: string;
2407
+ label: string;
2408
+ weight: number;
2409
+ hardGate: boolean;
2410
+ rewardEligible: boolean;
2411
+ privileged: boolean;
2412
+ metadata: Record<string, unknown>;
2413
+ kind: "model_judge";
2414
+ rubric: string;
2415
+ judge: {
2416
+ providerId: "openpond" | "codex" | "anthropic" | "openai" | "xai" | "google" | "openrouter" | "deepseek" | "zai" | "moonshot" | "together" | "groq" | "custom-openai-compatible";
2417
+ modelId: string;
2418
+ };
2419
+ calibrationFixtureRefs: string[];
2420
+ calibrationStatus: "failed" | "pending" | "passed";
2421
+ temperature: number;
2422
+ } | {
2423
+ id: string;
2424
+ version: string;
2425
+ label: string;
2426
+ weight: number;
2427
+ hardGate: boolean;
2428
+ rewardEligible: boolean;
2429
+ privileged: boolean;
2430
+ metadata: Record<string, unknown>;
2431
+ kind: "human";
2432
+ rubric: string;
2433
+ reviewerRole: string;
2434
+ } | {
2435
+ id: string;
2436
+ version: string;
2437
+ label: string;
2438
+ weight: number;
2439
+ hardGate: boolean;
2440
+ rewardEligible: boolean;
2441
+ privileged: boolean;
2442
+ metadata: Record<string, unknown>;
2443
+ kind: "custom_verifier";
2444
+ module: string;
2445
+ exportName: string;
2446
+ timeoutMs: number;
2447
+ networkPolicy: "none";
2448
+ })[];
2449
+ graderFixtures: {
2450
+ id: string;
2451
+ taskId: string;
2452
+ label: "infrastructure_failure" | "positive" | "negative" | "boundary" | "adversarial" | "prompt_injection";
2453
+ output: Record<string, unknown>;
2454
+ infrastructureError: string | null;
2455
+ expectedPassed: boolean;
2456
+ expectedRewardEligible: boolean;
2457
+ metadata: Record<string, unknown>;
2458
+ }[];
2459
+ learningSignals: {
2460
+ demonstrations: {
2461
+ id: string;
2462
+ taskId: string | null;
2463
+ sourceRefs: string[];
2464
+ artifactRef: string;
2465
+ approved: boolean;
2466
+ confidence: number;
2467
+ metadata: Record<string, unknown>;
2468
+ kind: "demonstration";
2469
+ prompt: string | null;
2470
+ response: string | null;
2471
+ }[];
2472
+ preferences: {
2473
+ id: string;
2474
+ taskId: string | null;
2475
+ sourceRefs: string[];
2476
+ artifactRef: string;
2477
+ approved: boolean;
2478
+ confidence: number;
2479
+ metadata: Record<string, unknown>;
2480
+ kind: "preference";
2481
+ prompt: string;
2482
+ chosen: string;
2483
+ rejected: string;
2484
+ rationale: string | null;
2485
+ }[];
2486
+ corrections: {
2487
+ id: string;
2488
+ taskId: string | null;
2489
+ sourceRefs: string[];
2490
+ artifactRef: string;
2491
+ approved: boolean;
2492
+ confidence: number;
2493
+ metadata: Record<string, unknown>;
2494
+ kind: "correction";
2495
+ original: string;
2496
+ corrected: string;
2497
+ rationale: string | null;
2498
+ }[];
2499
+ feedback: {
2500
+ id: string;
2501
+ taskId: string | null;
2502
+ sourceRefs: string[];
2503
+ artifactRef: string;
2504
+ approved: boolean;
2505
+ confidence: number;
2506
+ metadata: Record<string, unknown>;
2507
+ kind: "feedback";
2508
+ feedback: string;
2509
+ polarity: "neutral" | "positive" | "negative" | "mixed";
2510
+ }[];
2511
+ rewards: {
2512
+ id: string;
2513
+ taskId: string | null;
2514
+ sourceRefs: string[];
2515
+ artifactRef: string;
2516
+ approved: boolean;
2517
+ confidence: number;
2518
+ metadata: Record<string, unknown>;
2519
+ kind: "reward";
2520
+ task: string;
2521
+ rules: {
2522
+ id: string;
2523
+ points: number;
2524
+ condition: string;
2525
+ }[];
2526
+ otherwisePoints: number;
2527
+ executable: boolean;
2528
+ }[];
2529
+ labels: {
2530
+ id: string;
2531
+ taskId: string | null;
2532
+ sourceRefs: string[];
2533
+ artifactRef: string;
2534
+ approved: boolean;
2535
+ confidence: number;
2536
+ metadata: Record<string, unknown>;
2537
+ kind: "label";
2538
+ labelKind: "rubric";
2539
+ task: string;
2540
+ criteria: {
2541
+ id: string;
2542
+ label: string;
2543
+ description: string;
2544
+ }[];
2545
+ calibrationExamples: {
2546
+ positive: string;
2547
+ negative: string;
2548
+ boundary: string;
2549
+ };
2550
+ }[];
2551
+ };
2552
+ publishedTasksetRef: {
2553
+ id: string;
2554
+ revision: number;
2555
+ contentHash: string;
2556
+ } | null;
2557
+ createdAt: string;
2558
+ updatedAt: string;
2559
+ metadata: Record<string, unknown>;
2560
+ datasetArtifact?: {
2561
+ schemaVersion: "openpond.datasetArtifact.v1";
2562
+ id: string;
2563
+ tasksetId: string;
2564
+ tasksetRevision: number;
2565
+ contentHash: string;
2566
+ format: "parquet";
2567
+ schema: {
2568
+ schemaVersion: "openpond.datasetSemanticSchema.v1";
2569
+ fields: {
2570
+ name: string;
2571
+ semanticRole: "metadata" | "prompt" | "reward" | "feedback" | "rejected" | "messages" | "row_id" | "cluster_id" | "demonstration" | "chosen" | "expected_output" | "privileged_context" | "tag";
2572
+ logicalType: "string" | "boolean" | "messages" | "integer" | "float" | "json";
2573
+ nullable: boolean;
2574
+ policy: "metadata" | "privileged" | "visible";
2575
+ }[];
2576
+ schemaHash: string;
2577
+ };
2578
+ shards: {
2579
+ id: string;
2580
+ split: "train" | "validation" | "test" | "frozen_eval";
2581
+ path: string;
2582
+ contentHash: string;
2583
+ schemaHash: string;
2584
+ sizeBytes: number;
2585
+ rowCount: number;
2586
+ rowGroupCount: number;
2587
+ }[];
2588
+ rowCount: number;
2589
+ splitCounts: Record<"train" | "validation" | "test" | "frozen_eval", number>;
2590
+ sourceReceiptRefs: string[];
2591
+ mappingHash: string;
2592
+ qualityReportHash: string;
2593
+ createdAt: string;
2594
+ } | null | undefined;
2595
+ };
2596
+ workspaceHash: string;
2597
+ projectEtag: string;
2598
+ teamId: string;
2599
+ modelId: string;
2600
+ schemaVersion: "openpond.tasksetDraftReadback.v1";
2601
+ }>;
2602
+ validate(modelId: string, draftId: string, input: TasksetDraftValidationRequest, options?: Options): Promise<{
2603
+ draftId: string;
2604
+ draftRevision: number;
2605
+ workspaceHash: string;
2606
+ valid: boolean;
2607
+ issues: {
2608
+ code: string;
2609
+ severity: "error" | "warning";
2610
+ message: string;
2611
+ path: string | null;
2612
+ }[];
2613
+ packageHash: string | null;
2614
+ tasksetRef: {
2615
+ id: string;
2616
+ contentHash: string;
2617
+ revision: number;
2618
+ } | null;
2619
+ teamId: string;
2620
+ modelId: string;
2621
+ schemaVersion: "openpond.tasksetDraftValidation.v1";
2622
+ }>;
2623
+ publish(modelId: string, draftId: string, input: TasksetDraftPublicationRequest, options?: Options): Promise<{
2624
+ schemaVersion: "openpond.tasksetPackageReceipt.v1";
2625
+ teamId: string;
2626
+ modelProjectId: string;
2627
+ operationId: string;
2628
+ taskset: {
2629
+ id: string;
2630
+ revision: number;
2631
+ contentHash: string;
2632
+ };
2633
+ packageHash: string;
2634
+ hostedTasksetId: string;
2635
+ projectEtag: string;
2636
+ project?: {
2637
+ id: string;
2638
+ teamId: string;
2639
+ portableProjectId: string;
2640
+ name: string;
2641
+ objective: string | null;
2642
+ defaultBaseModel: {
2643
+ schemaVersion: "openpond.baseModelPreference.v1";
2644
+ modelId: string;
2645
+ revision: string | null;
2646
+ tokenizerRevision: string | null;
2647
+ chatTemplateHash: string | null;
2648
+ modelAssetId: string | null;
2649
+ source: "local" | "managed" | "builtin";
2650
+ } | null;
2651
+ defaultDestinationId: string | null;
2652
+ trainingSetup: {
2653
+ method: "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo" | null;
2654
+ recipe: {
2655
+ [x: string]: unknown;
2656
+ schemaVersion: string;
2657
+ method: "sft" | "dpo" | "grpo" | "ppo" | "sdft" | "opd" | "opsd" | "sdpo";
2658
+ parameterization: "lora" | "full";
2659
+ } | null;
2660
+ tasksetRef: {
2661
+ id: string;
2662
+ contentHash: string;
2663
+ revision: number;
2664
+ } | null;
2665
+ tasksetRelease: {
2666
+ id: string;
2667
+ contentHash: string;
2668
+ } | null;
2669
+ harnessRelease: {
2670
+ id: string;
2671
+ contentHash: string;
2672
+ } | null;
2673
+ baseModel: {
2674
+ schemaVersion: "openpond.baseModelPreference.v1";
2675
+ modelId: string;
2676
+ revision: string | null;
2677
+ tokenizerRevision: string | null;
2678
+ chatTemplateHash: string | null;
2679
+ modelAssetId: string | null;
2680
+ source: "local" | "managed" | "builtin";
2681
+ } | null;
2682
+ destinationId: string | null;
2683
+ managedRolloutPlacement: "local" | "remote";
2684
+ managedGpuPlacementObjective: "fast" | "balanced" | "economical";
2685
+ runPreset: "custom" | "small" | "standard" | "small_experiment" | null;
2686
+ preferredMaximumSpendUsd: number | null;
2687
+ preferredRetentionDays: number | null;
2688
+ rewardBindingRef?: {
2689
+ id: string;
2690
+ contentHash: string;
2691
+ revision: number;
2692
+ } | null | undefined;
2693
+ };
2694
+ sourceRevision: number;
2695
+ sourceUpdatedAt: string;
2696
+ revision: number;
2697
+ etag: string;
2698
+ createdAt: string;
2699
+ updatedAt: string;
2700
+ } | undefined;
2701
+ selection?: "select" | "attach" | undefined;
2702
+ }>;
2703
+ delete(modelId: string, draftId: string, expectedDraftRevision: number, options?: Options): Promise<{
2704
+ draftId: string;
2705
+ revision: number;
2706
+ deleted: true;
2707
+ teamId: string;
2708
+ modelId: string;
2709
+ schemaVersion: "openpond.tasksetDraftDeletion.v1";
2710
+ }>;
2711
+ }
2712
+ export {};
2713
+ //# sourceMappingURL=taskset-draft-client.d.ts.map