openpond-sdk 0.6.7 → 0.7.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 (86) hide show
  1. package/dist/{chunk-EJYSXE4V.js → chunk-32H2EJRA.js} +292 -456
  2. package/dist/chunk-32H2EJRA.js.map +7 -0
  3. package/dist/chunk-3HV3G6DG.js +95 -0
  4. package/dist/chunk-3HV3G6DG.js.map +7 -0
  5. package/dist/{chunk-FPOW5PU7.js → chunk-CGIMLZE5.js} +7 -7
  6. package/dist/chunk-DNBAJUVR.js +380 -0
  7. package/dist/chunk-DNBAJUVR.js.map +7 -0
  8. package/dist/{chunk-YGCHXNPI.js → chunk-DT7FRNIZ.js} +3 -94
  9. package/dist/{chunk-YGCHXNPI.js.map → chunk-DT7FRNIZ.js.map} +4 -4
  10. package/dist/{chunk-DNEPLQXN.js → chunk-KYCQ7LZ4.js} +5 -5
  11. package/dist/{chunk-TXQHWOFM.js → chunk-LGEF4S5I.js} +2 -2
  12. package/dist/chunk-QABCKPW6.js +171 -0
  13. package/dist/chunk-QABCKPW6.js.map +7 -0
  14. package/dist/{chunk-42YOB36J.js → chunk-WOPM32SE.js} +7 -7
  15. package/dist/{chunk-EAEYAU4R.js → chunk-Y4NGWGTA.js} +23 -2
  16. package/dist/{chunk-EAEYAU4R.js.map → chunk-Y4NGWGTA.js.map} +4 -4
  17. package/dist/dataset-workspaces.js +118 -0
  18. package/dist/dataset-workspaces.js.map +7 -0
  19. package/dist/index.js +20 -15
  20. package/dist/index.js.map +2 -2
  21. package/dist/learning.js +4 -4
  22. package/dist/model-starter-catalog.js +5 -5
  23. package/dist/model-starters.js +5 -5
  24. package/dist/model-taskset-runs.js +4 -4
  25. package/dist/taskset-drafts.js +10 -8
  26. package/dist/taskset-drafts.js.map +1 -1
  27. package/dist/taskset-packages.js +42 -364
  28. package/dist/taskset-packages.js.map +4 -4
  29. package/dist/training-bundle.js +10 -8
  30. package/dist/training-bundle.js.map +1 -1
  31. package/dist/training-projects.js +134 -0
  32. package/dist/training-projects.js.map +7 -0
  33. package/dist/training.js +3 -3
  34. package/dist/types/packages/cloud/src/hosted-chat.d.ts +1 -0
  35. package/dist/types/packages/cloud/src/hosted-chat.d.ts.map +1 -1
  36. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +1627 -0
  37. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -0
  38. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +1622 -0
  39. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -0
  40. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts +3 -0
  41. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts.map +1 -0
  42. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +2 -2
  43. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +3 -3
  44. package/dist/types/packages/sdk/src/model-batch-review.d.ts +7 -7
  45. package/dist/types/packages/sdk/src/model-learning-intent.d.ts +1 -1
  46. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +1 -1
  47. package/dist/types/packages/sdk/src/model-projects.d.ts +122 -122
  48. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +17 -17
  49. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +23 -23
  50. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +3 -3
  51. package/dist/types/packages/sdk/src/model-starters.d.ts +22 -22
  52. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +8 -8
  53. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +6 -6
  54. package/dist/types/packages/sdk/src/task-inventory.d.ts +3 -3
  55. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +51 -51
  56. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +30 -30
  57. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +86 -86
  58. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +183 -183
  59. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +42 -42
  60. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +36 -36
  61. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +34 -34
  62. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +43 -43
  63. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +1094 -48
  64. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  65. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +71 -71
  66. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +84 -84
  67. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +671 -671
  68. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +371 -371
  69. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +1 -1
  70. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +5 -5
  71. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +87 -87
  72. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +1 -1
  73. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +64 -64
  74. package/dist/types/packages/sdk/src/training-project-client.d.ts +401 -0
  75. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -0
  76. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +617 -0
  77. package/dist/types/packages/sdk/src/training-project-contracts.d.ts.map +1 -0
  78. package/dist/types/packages/sdk/src/training-projects.d.ts +3 -0
  79. package/dist/types/packages/sdk/src/training-projects.d.ts.map +1 -0
  80. package/dist/types/packages/sdk/src/training.d.ts +24 -24
  81. package/package.json +10 -1
  82. package/dist/chunk-EJYSXE4V.js.map +0 -7
  83. /package/dist/{chunk-FPOW5PU7.js.map → chunk-CGIMLZE5.js.map} +0 -0
  84. /package/dist/{chunk-DNEPLQXN.js.map → chunk-KYCQ7LZ4.js.map} +0 -0
  85. /package/dist/{chunk-TXQHWOFM.js.map → chunk-LGEF4S5I.js.map} +0 -0
  86. /package/dist/{chunk-42YOB36J.js.map → chunk-WOPM32SE.js.map} +0 -0
@@ -48,14 +48,14 @@ export declare const TrainingJobKindSchema: z.ZodEnum<{
48
48
  }>;
49
49
  export declare const TrainingJobStateSchema: z.ZodEnum<{
50
50
  succeeded: "succeeded";
51
- running: "running";
52
51
  failed: "failed";
53
- queued: "queued";
54
52
  cancelled: "cancelled";
55
- cancelling: "cancelling";
53
+ queued: "queued";
56
54
  admitting: "admitting";
57
55
  provisioning: "provisioning";
56
+ running: "running";
58
57
  stopping: "stopping";
58
+ cancelling: "cancelling";
59
59
  }>;
60
60
  export declare const TrainingCapabilityRequirementSchema: z.ZodObject<{
61
61
  id: z.ZodString;
@@ -117,8 +117,8 @@ export declare const RewardModelTrainingRequestSchema: z.ZodObject<{
117
117
  modelAssetId: z.ZodNullable<z.ZodString>;
118
118
  source: z.ZodEnum<{
119
119
  local: "local";
120
- managed: "managed";
121
120
  builtin: "builtin";
121
+ managed: "managed";
122
122
  }>;
123
123
  }, z.core.$strict>;
124
124
  preferenceDatasetRelease: z.ZodObject<{
@@ -146,8 +146,8 @@ export declare const PolicyOptimizationRequestSchema: z.ZodObject<{
146
146
  modelAssetId: z.ZodNullable<z.ZodString>;
147
147
  source: z.ZodEnum<{
148
148
  local: "local";
149
- managed: "managed";
150
149
  builtin: "builtin";
150
+ managed: "managed";
151
151
  }>;
152
152
  }, z.core.$strict>;
153
153
  recipe: z.ZodObject<{
@@ -224,8 +224,8 @@ export declare const TrainingJobRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObj
224
224
  modelAssetId: z.ZodNullable<z.ZodString>;
225
225
  source: z.ZodEnum<{
226
226
  local: "local";
227
- managed: "managed";
228
227
  builtin: "builtin";
228
+ managed: "managed";
229
229
  }>;
230
230
  }, z.core.$strict>;
231
231
  preferenceDatasetRelease: z.ZodObject<{
@@ -252,8 +252,8 @@ export declare const TrainingJobRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObj
252
252
  modelAssetId: z.ZodNullable<z.ZodString>;
253
253
  source: z.ZodEnum<{
254
254
  local: "local";
255
- managed: "managed";
256
255
  builtin: "builtin";
256
+ managed: "managed";
257
257
  }>;
258
258
  }, z.core.$strict>;
259
259
  recipe: z.ZodObject<{
@@ -386,8 +386,8 @@ export declare const TrainingJobSubmissionSchema: z.ZodObject<{
386
386
  modelAssetId: z.ZodNullable<z.ZodString>;
387
387
  source: z.ZodEnum<{
388
388
  local: "local";
389
- managed: "managed";
390
389
  builtin: "builtin";
390
+ managed: "managed";
391
391
  }>;
392
392
  }, z.core.$strict>;
393
393
  preferenceDatasetRelease: z.ZodObject<{
@@ -414,8 +414,8 @@ export declare const TrainingJobSubmissionSchema: z.ZodObject<{
414
414
  modelAssetId: z.ZodNullable<z.ZodString>;
415
415
  source: z.ZodEnum<{
416
416
  local: "local";
417
- managed: "managed";
418
417
  builtin: "builtin";
418
+ managed: "managed";
419
419
  }>;
420
420
  }, z.core.$strict>;
421
421
  recipe: z.ZodObject<{
@@ -521,14 +521,14 @@ export declare const TrainingJobSchema: z.ZodObject<{
521
521
  submissionHash: z.ZodString;
522
522
  state: z.ZodEnum<{
523
523
  succeeded: "succeeded";
524
- running: "running";
525
524
  failed: "failed";
526
- queued: "queued";
527
525
  cancelled: "cancelled";
528
- cancelling: "cancelling";
526
+ queued: "queued";
529
527
  admitting: "admitting";
530
528
  provisioning: "provisioning";
529
+ running: "running";
531
530
  stopping: "stopping";
531
+ cancelling: "cancelling";
532
532
  }>;
533
533
  phase: z.ZodString;
534
534
  version: z.ZodNumber;
@@ -561,14 +561,14 @@ export declare const TrainingJobPageSchema: z.ZodObject<{
561
561
  submissionHash: z.ZodString;
562
562
  state: z.ZodEnum<{
563
563
  succeeded: "succeeded";
564
- running: "running";
565
564
  failed: "failed";
566
- queued: "queued";
567
565
  cancelled: "cancelled";
568
- cancelling: "cancelling";
566
+ queued: "queued";
569
567
  admitting: "admitting";
570
568
  provisioning: "provisioning";
569
+ running: "running";
571
570
  stopping: "stopping";
571
+ cancelling: "cancelling";
572
572
  }>;
573
573
  phase: z.ZodString;
574
574
  version: z.ZodNumber;
@@ -619,8 +619,8 @@ export declare const TrainingJobOutputSchema: z.ZodObject<{
619
619
  id: z.ZodString;
620
620
  jobId: z.ZodString;
621
621
  kind: z.ZodEnum<{
622
- evaluation: "evaluation";
623
622
  metrics: "metrics";
623
+ evaluation: "evaluation";
624
624
  checkpoint: "checkpoint";
625
625
  adapter: "adapter";
626
626
  scorer: "scorer";
@@ -676,8 +676,8 @@ export declare const TrainingJobOutputsSchema: z.ZodObject<{
676
676
  id: z.ZodString;
677
677
  jobId: z.ZodString;
678
678
  kind: z.ZodEnum<{
679
- evaluation: "evaluation";
680
679
  metrics: "metrics";
680
+ evaluation: "evaluation";
681
681
  checkpoint: "checkpoint";
682
682
  adapter: "adapter";
683
683
  scorer: "scorer";
@@ -818,7 +818,7 @@ export declare function createTrainingClient(input: {
818
818
  portableProjectId: string;
819
819
  sourceProjectRevision: number;
820
820
  submissionHash: string;
821
- state: "succeeded" | "running" | "failed" | "queued" | "cancelled" | "cancelling" | "admitting" | "provisioning" | "stopping";
821
+ state: "succeeded" | "failed" | "cancelled" | "queued" | "admitting" | "provisioning" | "running" | "stopping" | "cancelling";
822
822
  phase: string;
823
823
  version: number;
824
824
  progress: number;
@@ -849,7 +849,7 @@ export declare function createTrainingClient(input: {
849
849
  portableProjectId: string;
850
850
  sourceProjectRevision: number;
851
851
  submissionHash: string;
852
- state: "succeeded" | "running" | "failed" | "queued" | "cancelled" | "cancelling" | "admitting" | "provisioning" | "stopping";
852
+ state: "succeeded" | "failed" | "cancelled" | "queued" | "admitting" | "provisioning" | "running" | "stopping" | "cancelling";
853
853
  phase: string;
854
854
  version: number;
855
855
  progress: number;
@@ -876,7 +876,7 @@ export declare function createTrainingClient(input: {
876
876
  portableProjectId: string;
877
877
  sourceProjectRevision: number;
878
878
  submissionHash: string;
879
- state: "succeeded" | "running" | "failed" | "queued" | "cancelled" | "cancelling" | "admitting" | "provisioning" | "stopping";
879
+ state: "succeeded" | "failed" | "cancelled" | "queued" | "admitting" | "provisioning" | "running" | "stopping" | "cancelling";
880
880
  phase: string;
881
881
  version: number;
882
882
  progress: number;
@@ -901,7 +901,7 @@ export declare function createTrainingClient(input: {
901
901
  portableProjectId: string;
902
902
  sourceProjectRevision: number;
903
903
  submissionHash: string;
904
- state: "succeeded" | "running" | "failed" | "queued" | "cancelled" | "cancelling" | "admitting" | "provisioning" | "stopping";
904
+ state: "succeeded" | "failed" | "cancelled" | "queued" | "admitting" | "provisioning" | "running" | "stopping" | "cancelling";
905
905
  phase: string;
906
906
  version: number;
907
907
  progress: number;
@@ -926,7 +926,7 @@ export declare function createTrainingClient(input: {
926
926
  portableProjectId: string;
927
927
  sourceProjectRevision: number;
928
928
  submissionHash: string;
929
- state: "succeeded" | "running" | "failed" | "queued" | "cancelled" | "cancelling" | "admitting" | "provisioning" | "stopping";
929
+ state: "succeeded" | "failed" | "cancelled" | "queued" | "admitting" | "provisioning" | "running" | "stopping" | "cancelling";
930
930
  phase: string;
931
931
  version: number;
932
932
  progress: number;
@@ -959,7 +959,7 @@ export declare function createTrainingClient(input: {
959
959
  schemaVersion: "openpond.trainingJobOutput.v2";
960
960
  id: string;
961
961
  jobId: string;
962
- kind: "evaluation" | "metrics" | "checkpoint" | "adapter" | "scorer" | "trace" | "receipt";
962
+ kind: "metrics" | "evaluation" | "checkpoint" | "adapter" | "scorer" | "trace" | "receipt";
963
963
  artifactRef: string;
964
964
  contentHash: string;
965
965
  sizeBytes: number;
@@ -1009,7 +1009,7 @@ export declare function createTrainingClient(input: {
1009
1009
  id: string;
1010
1010
  contentHash: string;
1011
1011
  };
1012
- kind: "candidate" | "baseline";
1012
+ kind: "baseline" | "candidate";
1013
1013
  policyVersion: number;
1014
1014
  taskset: {
1015
1015
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openpond-sdk",
3
- "version": "0.6.7",
3
+ "version": "0.7.0",
4
4
  "description": "Server-side TypeScript SDK for OpenPond sandboxes and agentic work",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -98,6 +98,14 @@
98
98
  "./training-bundle": {
99
99
  "types": "./dist/types/packages/sdk/src/training-bundle.d.ts",
100
100
  "import": "./dist/training-bundle.js"
101
+ },
102
+ "./training-projects": {
103
+ "types": "./dist/types/packages/sdk/src/training-projects.d.ts",
104
+ "import": "./dist/training-projects.js"
105
+ },
106
+ "./dataset-workspaces": {
107
+ "types": "./dist/types/packages/sdk/src/dataset-workspaces.d.ts",
108
+ "import": "./dist/dataset-workspaces.js"
101
109
  }
102
110
  },
103
111
  "publishConfig": {
@@ -141,6 +149,7 @@
141
149
  "dependencies": {
142
150
  "@openpond/evals": "^0.11.8",
143
151
  "@openpond/harness": "^0.4.2",
152
+ "yaml": "^2.9.0",
144
153
  "esbuild": "0.28.1",
145
154
  "zod": "^4.1.13"
146
155
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/taskset-package-client.ts", "../src/taskset-draft-document.ts", "../src/taskset-draft-authoring.ts", "../src/taskset-draft-publication.ts", "../src/taskset-draft-files.ts", "../src/taskset-draft-manifests.ts", "../src/taskset-draft-workspace.ts"],
4
- "sourcesContent": ["import { z } from \"zod\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nimport { MAX_TASKSET_PACKAGE_BYTES, TasksetPackageSchema, tasksetPackageRewardBinding, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { HostedModelProjectSummarySchema, HostedModelProjectSyncSchema, HostedModelProjectTrainingSetupSchema } from \"./model-projects.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { learningRef } from \"@openpond/evals/learning\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\n/** Configuration and package selection share one hosted commit. Package-owned\n * references cannot accidentally contain a Desktop-local content hash. */\nexport const TasksetPackageModelConfigurationSchema = HostedModelProjectSyncSchema.pick({\n portableProjectId: true, name: true, objective: true, defaultBaseModel: true, defaultDestinationId: true,\n sourceRevision: true, sourceUpdatedAt: true,\n}).extend({ trainingSetup: HostedModelProjectTrainingSetupSchema.omit({ tasksetRef: true, rewardBindingRef: true, tasksetRelease: true }) }).strict();\nexport const TasksetPackagePublicationSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetPackagePublication.v1\"),\n operationId: IdSchema, modelProjectId: IdSchema, expectedProjectEtag: HashSchema.nullable(),\n name: z.string().trim().min(1).max(200), description: z.string().max(5_000),\n buildIntent: z.enum([\"demonstrations\", \"preferences\", \"verifiable_reward\", \"rubric\", \"discovery\"]),\n methodHint: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\"]).nullable(), package: TasksetPackageSchema,\n modelConfiguration: TasksetPackageModelConfigurationSchema.optional(),\n evaluationPackage: TasksetPackageSchema.optional(),\n selection: z.enum([\"select\", \"attach\"]).optional(),\n}).strict().refine(value => value.selection !== \"attach\" || value.modelConfiguration === undefined, \"Attachment-only publication cannot replace Model configuration.\")\n .refine(value => !value.evaluationPackage || (value.modelConfiguration !== undefined\n && value.modelConfiguration.trainingSetup.evaluationTasksetRef != null\n && contentHash(value.modelConfiguration.trainingSetup.evaluationTasksetRef) === contentHash(learningRef(value.evaluationPackage.taskset))),\n \"Evaluation package must match the selected immutable evaluation in Model configuration.\");\nexport const TasksetPackageReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetPackageReceipt.v1\"),\n teamId: IdSchema, modelProjectId: IdSchema, operationId: IdSchema,\n taskset: TasksetCatalogReleaseRefSchema, packageHash: HashSchema,\n hostedTasksetId: IdSchema, projectEtag: HashSchema,\n project: HostedModelProjectSummarySchema.optional(),\n selection: z.enum([\"select\", \"attach\"]).optional(),\n evaluation: z.object({ taskset: TasksetCatalogReleaseRefSchema, packageHash: HashSchema, hostedTasksetId: IdSchema }).strict().optional(),\n}).strict();\nexport const TasksetPackageReadbackSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetPackageReadback.v1\"),\n teamId: IdSchema, modelProjectId: IdSchema, package: TasksetPackageSchema,\n}).strict();\nexport type TasksetPackagePublication = z.infer<typeof TasksetPackagePublicationSchema>;\nexport type TasksetPackageReceipt = z.infer<typeof TasksetPackageReceiptSchema>;\nexport type TasksetPackageModelConfiguration = z.infer<typeof TasksetPackageModelConfigurationSchema>;\n\nexport class OpenPondTasksetPackageError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); this.name = \"OpenPondTasksetPackageError\"; }\n}\n\n/** Private package operations are explicitly scoped to an authorized Model.\n * Catalog inventory remains metadata-only and never calls this client itself. */\nexport class OpenPondTasksetPackageClient {\n readonly #options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch }) {\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"Taskset package client requires a clean HTTP(S) endpoint and workspace credentials.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n\n async publish(input: TasksetPackagePublication, options: { signal?: AbortSignal } = {}): Promise<TasksetPackageReceipt> {\n const request = TasksetPackagePublicationSchema.parse(input);\n validateTasksetPackage(request.package);\n if (request.evaluationPackage) validateTasksetPackage(request.evaluationPackage);\n const receipt = TasksetPackageReceiptSchema.parse(await this.#request(\"\", \"POST\", request, options.signal));\n const release = request.package.taskset;\n if (receipt.teamId !== this.#options.teamId || receipt.modelProjectId !== request.modelProjectId || receipt.operationId !== request.operationId\n || receipt.packageHash !== request.package.contentHash || receipt.taskset.id !== release.id || receipt.taskset.revision !== release.revision || receipt.taskset.contentHash !== release.contentHash) {\n throw new OpenPondTasksetPackageError(502, \"package_receipt_mismatch\", \"Taskset publication receipt did not match the requested package and owner.\");\n }\n if (request.selection !== undefined && receipt.selection !== request.selection) throw new OpenPondTasksetPackageError(502, \"package_receipt_mismatch\", \"Taskset publication did not retain its selection mode.\");\n if (request.evaluationPackage && (!receipt.evaluation\n || receipt.evaluation.packageHash !== request.evaluationPackage.contentHash\n || contentHash(receipt.evaluation.taskset) !== contentHash(learningRef(request.evaluationPackage.taskset)))) {\n throw new OpenPondTasksetPackageError(502, \"package_receipt_mismatch\", \"Taskset publication did not retain the complete selected evaluation package.\");\n }\n if (request.selection === \"attach\" && receipt.projectEtag !== request.expectedProjectEtag) throw new OpenPondTasksetPackageError(502, \"package_receipt_mismatch\", \"Attaching a historical Taskset changed the Model configuration.\");\n if (request.modelConfiguration) {\n const expected = request.modelConfiguration;\n const project = receipt.project;\n const binding = tasksetPackageRewardBinding(request.package);\n const setup = HostedModelProjectTrainingSetupSchema.parse({ ...expected.trainingSetup, tasksetRef: learningRef(release),\n rewardBindingRef: binding ? learningRef(binding) : null,\n tasksetRelease: null });\n if (!project || project.teamId !== this.#options.teamId || project.etag !== receipt.projectEtag\n || ![project.id, project.portableProjectId].includes(request.modelProjectId)\n || project.portableProjectId !== expected.portableProjectId || project.name !== expected.name || project.objective !== expected.objective\n || project.sourceRevision !== expected.sourceRevision || Date.parse(project.sourceUpdatedAt) !== Date.parse(expected.sourceUpdatedAt)\n || contentHash(project.defaultBaseModel) !== contentHash(expected.defaultBaseModel) || project.defaultDestinationId !== expected.defaultDestinationId\n || contentHash(project.trainingSetup) !== contentHash(setup)) {\n throw new OpenPondTasksetPackageError(502, \"package_receipt_mismatch\", \"Taskset publication did not retain the requested Model configuration.\");\n }\n }\n return receipt;\n }\n\n async get(modelProjectId: string, reference: z.infer<typeof TasksetCatalogReleaseRefSchema>, options: { signal?: AbortSignal; expectedPackageHash?: string } = {}): Promise<TasksetPackage> {\n const project = IdSchema.parse(modelProjectId);\n const ref = TasksetCatalogReleaseRefSchema.parse(reference);\n const expectedPackageHash = options.expectedPackageHash === undefined ? undefined : HashSchema.parse(options.expectedPackageHash);\n const response = TasksetPackageReadbackSchema.parse(await this.#request(`/${encodeURIComponent(project)}/${encodeURIComponent(ref.id)}/${ref.revision}/${ref.contentHash}`, \"GET\", undefined, options.signal));\n const taskset = response.package.taskset;\n if (response.teamId !== this.#options.teamId || response.modelProjectId !== project || taskset.id !== ref.id || taskset.revision !== ref.revision || taskset.contentHash !== ref.contentHash) throw new OpenPondTasksetPackageError(502, \"package_readback_mismatch\", \"Taskset package did not match the requested release and owner.\");\n if (expectedPackageHash !== undefined && response.package.contentHash !== expectedPackageHash) throw new OpenPondTasksetPackageError(502, \"package_readback_mismatch\", \"Taskset package did not match the saved publication receipt.\");\n return validateTasksetPackage(response.package);\n }\n\n async #request(path: string, method: string, body: unknown, signal?: AbortSignal): Promise<unknown> {\n const serialized = body === undefined ? undefined : JSON.stringify(body);\n if (serialized && new TextEncoder().encode(serialized).byteLength > MAX_TASKSET_PACKAGE_BYTES) throw new OpenPondTasksetPackageError(413, \"package_too_large\", \"Taskset publication exceeds the 64 MiB envelope.\");\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/taskset-packages${path}`, {\n method, headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"X-OpenPond-Team-Id\": this.#options.teamId, Accept: \"application/json\", ...(serialized ? { \"Content-Type\": \"application/json\" } : {}) },\n body: serialized, signal, redirect: \"error\",\n });\n const reader = response.body?.getReader();\n if (!reader) throw new OpenPondTasksetPackageError(response.status, \"empty_response\", \"Taskset package response was empty.\");\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n let bytes = 0;\n let text = \"\";\n try {\n while (true) {\n const chunk = await reader.read();\n if (chunk.done) break;\n bytes += chunk.value.byteLength;\n if (bytes > MAX_TASKSET_PACKAGE_BYTES) throw new OpenPondTasksetPackageError(413, \"package_too_large\", \"Taskset response exceeds the 64 MiB envelope.\");\n text += decoder.decode(chunk.value, { stream: true });\n }\n text += decoder.decode();\n } finally { await reader.cancel(); reader.releaseLock(); }\n const payload: unknown = JSON.parse(text);\n if (!response.ok) {\n const error = z.object({ code: z.string(), message: z.string() }).safeParse(payload);\n throw new OpenPondTasksetPackageError(response.status, error.success ? error.data.code : \"package_request_failed\", error.success ? error.data.message : `Taskset package request failed (${response.status}).`);\n }\n return payload;\n }\n}\n", "import { z } from \"zod\";\nimport { TasksetMetricPolicySchema } from \"@openpond/evals/metrics\";\nimport { ModelTasksetDraftPreparationSchema } from \"./model-taskset-authoring-contracts.js\";\n\nimport { DatasetArtifactManifestSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport {\n GraderFixtureSchema,\n GraderSpecSchema,\n LearningSignalInventorySchema,\n TaskDataRecordSchema,\n TaskPolicyBoundarySchema,\n TasksetBenchmarkBindingSchema,\n TasksetCapabilityManifestSchema,\n TasksetEnvironmentContractSchema,\n TasksetPreferenceComparisonBindingSchema,\n TasksetPurposeSchema,\n TasksetSourceRefSchema,\n} from \"./taskset-draft-core.js\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst CodeIdentifierSchema = z.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\n\nfunction safeRelativeFilePath(value: string): boolean {\n const normalized = value.trim().replaceAll(\"\\\\\", \"/\");\n if (\n !normalized\n || normalized.startsWith(\"/\")\n || normalized === \".\"\n || normalized === \"..\"\n ) {\n return false;\n }\n return !normalized.split(\"/\").some((segment) =>\n !segment || segment === \".\" || segment === \"..\"\n );\n}\n\nexport const TaskDataDraftSchema = TaskDataRecordSchema.extend({\n sourceRefs: z.array(IdSchema).max(100).default([]),\n});\n\nexport const TasksetDraftStatusSchema = z.enum([\n \"draft\",\n \"validating\",\n \"needs_review\",\n \"published\",\n]);\n\nexport const TasksetDraftReviewPolicySchema = z.object({\n enabled: z.boolean(),\n candidateCount: z.number().int().min(2).max(4),\n minimumSamples: z.number().int().min(1).max(10_000).default(100),\n allowTies: z.boolean(),\n allowRejectAll: z.boolean(),\n rubric: z.string().trim().max(50_000),\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().min(1).max(500),\n description: z.string().trim().max(10_000),\n weight: z.number().nonnegative().max(1_000),\n })).max(100),\n});\n\nexport const TasksetDraftOutputContractSchema = z.object({\n mode: z.enum([\"text\", \"structured_json\", \"artifacts\"]),\n jsonSchema: z.record(z.string(), z.unknown()).nullable(),\n renderer: z.object({\n module: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Renderer modules must use a safe relative path.\"),\n exportName: CodeIdentifierSchema,\n configRef: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Renderer configuration must use a safe relative path.\")\n .nullable()\n .default(null),\n }).nullable(),\n}).superRefine((output, context) => {\n if (output.mode === \"structured_json\" && !output.jsonSchema) {\n context.addIssue({\n code: \"custom\",\n message: \"Structured JSON output requires a JSON Schema.\",\n path: [\"jsonSchema\"],\n });\n }\n if (output.mode === \"text\" && output.renderer) {\n context.addIssue({\n code: \"custom\",\n message: \"Text output cannot configure an artifact renderer.\",\n path: [\"renderer\"],\n });\n }\n});\n\nexport const TasksetDraftSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetDraft.v1\"),\n id: IdSchema,\n revision: z.number().int().positive(),\n profileId: IdSchema,\n modelScope: z.object({\n modelId: IdSchema,\n expectedModelRevision: z.number().int().positive(),\n source: ModelTasksetDraftPreparationSchema.optional(),\n }).strict().nullable().default(null),\n name: z.string().trim().max(500),\n objective: z.string().trim().max(20_000),\n purpose: TasksetPurposeSchema.default(\"general\"),\n benchmark: TasksetBenchmarkBindingSchema.nullable().default(null),\n preferenceComparison: TasksetPreferenceComparisonBindingSchema.nullable().default(null),\n status: TasksetDraftStatusSchema,\n sourceRefs: z.array(TasksetSourceRefSchema).max(100_000).default([]),\n datasetArtifact: DatasetArtifactManifestSchema.nullable().optional(),\n policy: TaskPolicyBoundarySchema,\n environment: TasksetEnvironmentContractSchema,\n output: TasksetDraftOutputContractSchema.default({\n mode: \"text\",\n jsonSchema: null,\n renderer: null,\n }),\n capabilities: TasksetCapabilityManifestSchema,\n metrics: TasksetMetricPolicySchema,\n review: TasksetDraftReviewPolicySchema,\n tasks: z.array(TaskDataDraftSchema).max(1_000_000).default([]),\n graders: z.array(GraderSpecSchema).max(1_000).default([]),\n graderFixtures: z.array(GraderFixtureSchema).max(100_000).default([]),\n learningSignals: LearningSignalInventorySchema,\n publishedTasksetRef: z.object({\n id: IdSchema,\n revision: z.number().int().positive(),\n contentHash: HashSchema,\n }).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n metadata: MetadataSchema,\n}).superRefine((draft, context) => {\n if (draft.purpose === \"benchmark\" && !draft.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Benchmark drafts require an immutable benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (draft.purpose !== \"benchmark\" && draft.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Only benchmark drafts may carry a benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (draft.datasetArtifact && draft.tasks.length > 0) {\n context.addIssue({\n code: \"custom\",\n message: \"Artifact-backed drafts may not duplicate canonical rows inline.\",\n path: [\"tasks\"],\n });\n }\n if (draft.status === \"published\" && !draft.publishedTasksetRef) {\n context.addIssue({\n code: \"custom\",\n message: \"Published drafts require an immutable Taskset reference.\",\n path: [\"publishedTasksetRef\"],\n });\n }\n});\n\nexport type TaskDataDraft = z.infer<typeof TaskDataDraftSchema>;\nexport type TasksetDraftStatus = z.infer<typeof TasksetDraftStatusSchema>;\nexport type TasksetDraftReviewPolicy = z.infer<typeof TasksetDraftReviewPolicySchema>;\nexport type TasksetDraftOutputContract = z.infer<typeof TasksetDraftOutputContractSchema>;\nexport type TasksetDraft = z.infer<typeof TasksetDraftSchema>;\n", "import { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\n\nexport type TasksetDraftPublishIssue = {\n code: string;\n message: string;\n path: string | null;\n};\n\nexport class TasksetDraftPublishError extends Error {\n readonly issues: TasksetDraftPublishIssue[];\n\n constructor(issues: TasksetDraftPublishIssue[]) {\n super(issues.map((issue) => issue.message).join(\"\\n\"));\n this.name = \"TasksetDraftPublishError\";\n this.issues = issues;\n }\n}\n\nexport function createTasksetDraft(input: {\n profileId: string;\n modelScope?: TasksetDraft[\"modelScope\"];\n id?: string;\n name?: string;\n now?: string;\n}): TasksetDraft {\n const timestamp = input.now ?? new Date().toISOString();\n const id = input.id?.trim() || `taskset-draft-${globalThis.crypto.randomUUID()}`;\n return TasksetDraftSchema.parse({\n schemaVersion: \"openpond.tasksetDraft.v1\",\n id,\n revision: 1,\n profileId: input.profileId,\n modelScope: input.modelScope ?? null,\n name: input.name?.trim() ?? \"\",\n objective: \"\",\n purpose: \"general\",\n benchmark: null,\n preferenceComparison: null,\n status: \"draft\",\n sourceRefs: [],\n datasetArtifact: null,\n policy: {\n policyVisibleFields: [\"input\"],\n privilegedFields: [\"expectedOutput\"],\n hiddenGraderRefs: [],\n connectedAppScopes: [],\n },\n environment: {\n protocolVersion: \"openpond.taskEnvironment.v1\",\n kind: \"chat\",\n entrypoint: \"openpond-chat-v1\",\n stateful: false,\n deterministicSeeds: true,\n toolNames: [],\n lifecycle: [\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"],\n defaultTimeoutMs: 120_000,\n networkPolicy: \"none\",\n resources: [],\n metadata: {},\n },\n output: {\n mode: \"text\",\n jsonSchema: null,\n renderer: null,\n },\n capabilities: {\n schemaVersion: \"openpond.tasksetCapabilities.v1\",\n taskKind: \"chat\",\n supportedSignals: [\n \"demonstration\",\n \"preference\",\n \"correction\",\n \"feedback\",\n \"reward\",\n \"label\",\n ],\n compatibleMethods: [\"none\"],\n rewardKinds: [\"none\"],\n requiresTools: false,\n requiresState: false,\n requiresPrivilegedGrading: true,\n environmentPlacements: [\"local\", \"remote\", \"colocated\"],\n exportable: true,\n portabilityBlockers: [],\n },\n metrics: {\n schemaVersion: \"openpond.tasksetMetricPolicy.v1\",\n primaryMetric: \"score\",\n aggregation: \"mean_score\",\n missingReward: \"zero\",\n customAggregator: null,\n },\n review: {\n enabled: false,\n candidateCount: 2,\n minimumSamples: 100,\n allowTies: true,\n allowRejectAll: true,\n rubric: \"\",\n criteria: [],\n },\n tasks: [],\n graders: [],\n graderFixtures: [],\n learningSignals: {\n demonstrations: [],\n preferences: [],\n corrections: [],\n feedback: [],\n rewards: [],\n labels: [],\n },\n publishedTasksetRef: null,\n createdAt: timestamp,\n updatedAt: timestamp,\n metadata: {},\n });\n}\n\nexport function draftPublishIssues(draft: TasksetDraft): TasksetDraftPublishIssue[] {\n const issues: TasksetDraftPublishIssue[] = [];\n if (!draft.name.trim()) issues.push({ code: \"name_missing\", message: \"Name is required.\", path: \"name\" });\n if (!draft.objective.trim()) issues.push({ code: \"objective_missing\", message: \"Objective is required.\", path: \"objective\" });\n if (!draft.datasetArtifact && draft.tasks.length === 0) issues.push({ code: \"tasks_missing\", message: \"Add at least one task or Dataset artifact.\", path: \"tasks\" });\n if (draft.graders.length === 0) issues.push({ code: \"graders_missing\", message: \"Add at least one grader.\", path: \"graders\" });\n if (draft.graderFixtures.length === 0) issues.push({ code: \"grader_fixtures_missing\", message: \"Add grader fixtures before publishing.\", path: \"graderFixtures\" });\n const sourceIds = new Set(draft.sourceRefs.map((source) => source.id));\n for (const task of draft.tasks) {\n for (const sourceId of task.sourceRefs) {\n if (!sourceIds.has(sourceId)) issues.push({ code: \"task_source_missing\", message: `Task ${task.id} references missing source ${sourceId}.`, path: `tasks.${task.id}.sourceRefs` });\n }\n }\n return issues;\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { TasksetSchema, type Taskset, type DatasetBuildIntent } from \"./taskset-authored-contracts.js\";\nimport { TaskDataRecordSchema, type TasksetSourceRef } from \"./taskset-draft-core.js\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { draftPublishIssues, TasksetDraftPublishError } from \"./taskset-draft-authoring.js\";\nimport { computeTasksetHash, validateTaskset } from \"./taskset-authored-validation.js\";\n\nexport function tasksetDraftFromTaskset(\n tasksetInput: unknown,\n now = new Date().toISOString(),\n): TasksetDraft {\n const taskset = TasksetSchema.parse(tasksetInput);\n return TasksetDraftSchema.parse({\n schemaVersion: \"openpond.tasksetDraft.v1\",\n id: `${taskset.id}-draft`,\n revision: 1,\n profileId: taskset.profileId,\n name: taskset.name,\n objective: taskset.objective,\n purpose: taskset.purpose,\n benchmark: taskset.benchmark,\n preferenceComparison: taskset.preferenceComparison,\n status: \"draft\",\n sourceRefs: taskset.sourceRefs,\n datasetArtifact: taskset.datasetArtifact ?? null,\n policy: taskset.policy,\n environment: taskset.environment,\n output: tasksetOutputContract(taskset.metadata),\n capabilities: taskset.capabilities,\n metrics: taskset.metrics ?? {\n schemaVersion: \"openpond.tasksetMetricPolicy.v1\",\n primaryMetric: \"score\",\n aggregation: \"mean_score\",\n missingReward: \"zero\",\n customAggregator: null,\n },\n review: {\n enabled: Boolean(taskset.preferenceComparison),\n candidateCount: 2,\n minimumSamples: 100,\n allowTies: true,\n allowRejectAll: true,\n rubric: \"\",\n criteria: [],\n },\n tasks: taskset.tasks,\n graders: taskset.graders,\n graderFixtures: taskset.graderFixtures,\n learningSignals: taskset.learningSignals,\n publishedTasksetRef: {\n id: taskset.id,\n revision: taskset.revision,\n contentHash: taskset.contentHash,\n },\n createdAt: now,\n updatedAt: now,\n metadata: {\n ...taskset.metadata,\n importedFromTaskset: {\n id: taskset.id,\n revision: taskset.revision,\n contentHash: taskset.contentHash,\n },\n },\n });\n}\n\nexport function publishTasksetDraft(input: {\n draft: unknown;\n now?: string;\n tasksetId?: string;\n sourcePackageHash?: string;\n}): Taskset {\n const draft = TasksetDraftSchema.parse(input.draft);\n const timestamp = input.now ?? new Date().toISOString();\n const issues = draftPublishIssues(draft);\n if (issues.length) throw new TasksetDraftPublishError(issues);\n\n const preparedSource = draft.modelScope?.source;\n if (preparedSource && input.tasksetId && input.tasksetId !== preparedSource.tasksetId) throw new Error(\"Taskset draft publication differs from its prepared identity.\");\n const tasksetId = preparedSource?.tasksetId || input.tasksetId?.trim()\n || draft.publishedTasksetRef?.id\n || draft.id.replace(/-draft$/, \"\");\n const revision = preparedSource?.tasksetRevision ?? (draft.publishedTasksetRef?.id === tasksetId\n ? draft.publishedTasksetRef.revision + 1\n : 1);\n const sourceRefs = draft.sourceRefs.length\n ? draft.sourceRefs\n : [generatedDraftSource(draft, tasksetId, timestamp)];\n const defaultSourceId = sourceRefs[0]!.id;\n const tasks = draft.tasks.map((task) => TaskDataRecordSchema.parse({\n ...task,\n sourceRefs: task.sourceRefs.length ? task.sourceRefs : [defaultSourceId],\n metadata: {\n exampleOrigin: \"expert_authored\",\n ...task.metadata,\n },\n }));\n const explicitMethod = draft.capabilities.compatibleMethods.find(\n (method) => method !== \"none\" && method !== \"retrieval\",\n ) ?? null;\n const buildIntent = buildIntentForDraft(draft);\n const rewardGraders = draft.graders.filter(grader => grader.rewardEligible && grader.weight > 0 && grader.kind !== \"human\");\n const inferRewardMethod = explicitMethod === null && buildIntent === \"verifiable_reward\" && rewardGraders.length > 0;\n const authoredMethod = explicitMethod ?? (inferRewardMethod ? \"grpo\" : null);\n const taskset = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\",\n id: tasksetId,\n revision,\n profileId: draft.profileId,\n profileRelease: null,\n createImproveRunId: null,\n name: draft.name,\n objective: draft.objective,\n purpose: draft.purpose,\n benchmark: draft.benchmark,\n preferenceComparison: draft.preferenceComparison,\n status: \"needs_review\",\n sourceRefs,\n datasetArtifact: draft.datasetArtifact ?? null,\n policy: draft.policy,\n environment: draft.environment,\n capabilities: inferRewardMethod ? { ...draft.capabilities, compatibleMethods: [\"grpo\"],\n rewardKinds: [...new Set(rewardGraders.map(grader => grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))] } : draft.capabilities,\n metrics: draft.metrics,\n tasks,\n graders: draft.graders,\n graderFixtures: draft.graderFixtures,\n learningSignals: draft.learningSignals,\n authoringProvenance: {\n schemaVersion: \"openpond.taskAuthoringProvenance.v1\",\n model: null,\n modelConfig: {},\n skillHash: contentHash(\"openpond-taskset-draft-authoring-v1\"),\n promptTemplateVersion: \"taskset-draft-v1\",\n buildIntent,\n buildSpecification: null,\n evidenceHashes: sourceRefs.map((source) => source.sourceHash),\n tasksetSdkVersion: \"draft-v1\",\n sourceCommit: null,\n repairHistory: [],\n createdAt: timestamp,\n },\n readiness: null,\n contentHash: \"00000000\",\n createdAt: revision === 1 ? draft.createdAt : timestamp,\n updatedAt: timestamp,\n metadata: {\n ...draft.metadata,\n ...(preparedSource ? { modelTasksetAuthoring: preparedSource.lineage } : {}),\n tasksetReviewPolicy: draft.review,\n tasksetOutputContract: draft.output,\n ...(input.sourcePackageHash\n ? { sourcePackageHash: input.sourcePackageHash }\n : {}),\n ...(authoredMethod ? { trainingMethod: authoredMethod } : {}),\n diagnosis: {\n schemaVersion: \"openpond.capabilityDiagnosis.v1\",\n summary: draft.objective,\n stableBehavior: [draft.objective],\n changingKnowledge: [],\n requiredContext: [],\n requiredTools: draft.environment.toolNames,\n intervention: authoredMethod === \"dpo\"\n ? \"preference\"\n : authoredMethod === \"grpo\" || authoredMethod === \"ppo\"\n ? \"grpo_rft\"\n : authoredMethod === \"sft\" ? \"sft\" : \"no_training\",\n trainingEligible: authoredMethod !== null,\n rationale: authoredMethod\n ? [`The author selected ${authoredMethod.toUpperCase()} compatibility.`]\n : [\"The Taskset is currently configured for evaluation only.\"],\n confidence: 1,\n },\n },\n });\n const hashed = TasksetSchema.parse({\n ...taskset,\n contentHash: computeTasksetHash(taskset),\n });\n const report = validateTaskset(hashed);\n const validationErrors = report.issues.filter((issue) => issue.severity === \"error\");\n if (validationErrors.length) {\n throw new TasksetDraftPublishError(validationErrors.map((issue) => ({\n code: issue.code,\n message: issue.message,\n path: issue.path,\n })));\n }\n return hashed;\n}\n\nfunction generatedDraftSource(\n draft: TasksetDraft,\n tasksetId: string,\n timestamp: string,\n): TasksetSourceRef {\n const generatorHash = contentHash({\n draftId: draft.id,\n draftRevision: draft.revision,\n tasks: draft.tasks,\n });\n return {\n schemaVersion: \"openpond.generatedDatasetSource.v1\",\n kind: \"generated\",\n id: `source-${tasksetId}`,\n profileId: draft.profileId,\n title: `${draft.name} manual authoring`,\n sourceHash: generatorHash,\n occurredAt: timestamp,\n licensingStatus: \"approved\",\n secretScanStatus: \"passed\",\n piiScanStatus: \"passed\",\n generatorId: \"openpond-taskset-draft\",\n generatorVersion: \"1\",\n seed: 0,\n generatorHash,\n metadata: { draftId: draft.id, draftRevision: draft.revision },\n };\n}\n\nfunction buildIntentForDraft(draft: TasksetDraft): DatasetBuildIntent {\n if (draft.learningSignals.preferences.length) return \"preferences\";\n if (draft.learningSignals.rewards.length) return \"verifiable_reward\";\n if (draft.learningSignals.labels.length) return \"rubric\";\n if (!draft.capabilities.compatibleMethods.some(method => method !== \"none\" && method !== \"retrieval\")\n && draft.graders.some(grader => grader.rewardEligible && grader.weight > 0 && grader.kind !== \"human\")) return \"verifiable_reward\";\n return \"demonstrations\";\n}\n\nfunction tasksetOutputContract(metadata: Record<string, unknown>): TasksetDraft[\"output\"] {\n const value = metadata.tasksetOutputContract;\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return value as TasksetDraft[\"output\"];\n }\n return { mode: \"text\", jsonSchema: null, renderer: null };\n}\n", "import { sha256 } from \"@openpond/harness\";\nimport { TasksetDraftFileContentSchema, TasksetDraftFilePathSchema, type TasksetDraftFile } from \"./model-taskset-authoring-contracts.js\";\n\nexport const MAX_TASKSET_DRAFT_EDIT_FILE_BYTES = 6_000_000;\nconst MANAGED_FILES = new Set([\"taskset.json\", \"capabilities.json\", \"data/tasks.jsonl\", \"tasks/tasks.jsonl\", \"graders/graders.json\", \"fixtures/grader-fixtures.json\", \"metrics/policy.json\", \"assets/manifest.json\", \"environment/contract.json\", \"environment/taskset.ts\", \"rubrics/preference-review.md\", \"comparisons/policy.json\"]);\n\nexport function isWritableTasksetDraftFilePath(value: string): boolean {\n const path = TasksetDraftFilePathSchema.parse(value);\n return !MANAGED_FILES.has(path) && !path.startsWith(\"source-artifacts/\");\n}\n\nexport function isManagedTasksetDraftFilePath(value: string): boolean {\n return MANAGED_FILES.has(TasksetDraftFilePathSchema.parse(value));\n}\n\n/** Editor transport retains exact bytes, including a UTF-8 byte-order mark. */\nexport function createTasksetDraftFile(path: string, bytes: Uint8Array): TasksetDraftFile {\n const writable = isWritableTasksetDraftFilePath(path);\n if (bytes.byteLength > MAX_TASKSET_DRAFT_EDIT_FILE_BYTES) throw new Error(\"Taskset draft file content is invalid or exceeds 6 MB.\");\n let content: TasksetDraftFile[\"content\"];\n try {\n const text = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes);\n content = /[\\u0000-\\u0008\\u000e-\\u001f]/.test(text) ? base64Content(bytes) : { encoding: \"utf8\", data: text };\n } catch { content = base64Content(bytes); }\n return { path, writable, content, sizeBytes: bytes.byteLength, contentHash: sha256(bytes) };\n}\n\nexport function decodeTasksetDraftFileContent(input: unknown): Uint8Array {\n const content = TasksetDraftFileContentSchema.parse(input);\n let bytes: Uint8Array;\n try {\n if (content.encoding === \"utf8\") bytes = new TextEncoder().encode(content.data);\n else {\n const raw = atob(content.data);\n if (btoa(raw) !== content.data) throw new Error(\"Noncanonical base64\");\n bytes = Uint8Array.from(raw, character => character.charCodeAt(0));\n }\n } catch { throw new Error(\"Taskset draft file content is invalid or exceeds 6 MB.\"); }\n if (bytes.byteLength > MAX_TASKSET_DRAFT_EDIT_FILE_BYTES) throw new Error(\"Taskset draft file content is invalid or exceeds 6 MB.\");\n return bytes;\n}\n\nfunction base64Content(bytes: Uint8Array): TasksetDraftFile[\"content\"] {\n // Avoid spreading a multi-megabyte file onto the JavaScript call stack.\n let raw = \"\";\n for (let offset = 0; offset < bytes.length; offset += 8192) raw += String.fromCharCode(...bytes.subarray(offset, offset + 8192));\n return { encoding: \"base64\", data: btoa(raw) };\n}\n", "import { canonicalJson } from \"@openpond/harness\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { TasksetDraftFilePathSchema } from \"./model-taskset-authoring-contracts.js\";\n\nexport function configuredTasksetDraftFiles(draft: TasksetDraft): Array<{ relativePath: string; source: string }> {\n const configured: Array<{ relativePath: string; source: string }> = [];\n if (draft.output.renderer) {\n configured.push({\n relativePath: draft.output.renderer.module,\n source: `export async function ${draft.output.renderer.exportName}(output: unknown) {\\n // Return artifact paths or bytes derived from the model's structured output.\\n return output;\\n}\\n`,\n });\n }\n for (const grader of draft.graders) {\n if (grader.kind !== \"custom_verifier\") continue;\n configured.push({\n relativePath: grader.module,\n source: `export async function ${grader.exportName}(input: { output: unknown; task: unknown }) {\\n return { passed: false, score: 0, feedback: \"Implement this verifier.\" };\\n}\\n`,\n });\n }\n if (draft.metrics.customAggregator) {\n configured.push({\n relativePath: draft.metrics.customAggregator.module,\n source: `export function ${draft.metrics.customAggregator.exportName}(scores: number[]) {\\n return scores.length ? scores.reduce((sum, score) => sum + score, 0) / scores.length : 0;\\n}\\n`,\n });\n }\n for (const file of configured) TasksetDraftFilePathSchema.parse(file.relativePath);\n return configured;\n}\n\n/** Canonical form-owned files have one structured document as their source. */\nexport function renderTasksetDraftManifests(input: unknown): Map<string, string> {\n const draft = TasksetDraftSchema.parse(input);\n return new Map([\n [\"taskset.json\", canonicalJson(draft)],\n [\"tasks/tasks.jsonl\", jsonLines(draft.tasks)],\n [\"graders/graders.json\", canonicalJson(draft.graders)],\n [\"fixtures/grader-fixtures.json\", canonicalJson(draft.graderFixtures)],\n [\"metrics/policy.json\", canonicalJson(draft.metrics)],\n [\"assets/manifest.json\", canonicalJson(draft.tasks.flatMap(task => task.assets ?? []))],\n [\"environment/contract.json\", canonicalJson(draft.environment)],\n [\"rubrics/preference-review.md\", rubricMarkdown(draft)],\n [\"comparisons/policy.json\", canonicalJson(draft.review)],\n ]);\n}\n\nfunction rubricMarkdown(draft: TasksetDraft): string {\n const criteria = draft.review.criteria.length\n ? `\\n\\n## Criteria\\n\\n${draft.review.criteria.map((criterion) =>\n `- **${criterion.label}** (${criterion.weight}): ${criterion.description}`\n ).join(\"\\n\")}`\n : \"\";\n return `# Preference review rubric\\n\\n${draft.review.rubric}${criteria}\\n`;\n}\n\nfunction jsonLines(values: unknown[]): string {\n return values.length ? `${values.map((value) => JSON.stringify(value)).join(\"\\n\")}\\n` : \"\";\n}\n", "import { z } from \"zod\";\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { TasksetDraftSchema } from \"./taskset-draft-document.js\";\nimport { TasksetDraftFileMutationSchema, TasksetDraftFilePathSchema, type TasksetDraftFileMutation } from \"./model-taskset-authoring-contracts.js\";\nimport { createTasksetDraftFile, decodeTasksetDraftFileContent, isManagedTasksetDraftFilePath, isWritableTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { configuredTasksetDraftFiles, renderTasksetDraftManifests } from \"./taskset-draft-manifests.js\";\n\nexport const MAX_TASKSET_DRAFT_WORKSPACE_BYTES = 64 * 1024 * 1024;\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const TasksetDraftWorkspaceFileSchema = z.object({\n path: TasksetDraftFilePathSchema,\n contentHash: HashSchema,\n sizeBytes: z.number().int().nonnegative().max(MAX_TASKSET_DRAFT_WORKSPACE_BYTES),\n base64: z.string().max(MAX_TASKSET_DRAFT_WORKSPACE_BYTES),\n}).strict();\nconst WorkspaceContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetDraftWorkspace.v1\"),\n draft: TasksetDraftSchema,\n files: z.array(TasksetDraftWorkspaceFileSchema).max(10_000),\n}).strict();\nexport const TasksetDraftWorkspaceSchema = WorkspaceContentSchema.extend({ contentHash: HashSchema }).strict();\nexport type TasksetDraftWorkspace = z.infer<typeof TasksetDraftWorkspaceSchema>;\nexport type TasksetDraftWorkspaceFile = z.infer<typeof TasksetDraftWorkspaceFileSchema>;\n\n/** Files are retained separately from the structured document, including bytes\n * too large for the code editor. Publication remains a separate validation step. */\nexport function createTasksetDraftWorkspace(input: z.input<typeof WorkspaceContentSchema>): TasksetDraftWorkspace {\n assertBoundedTaskJson(input, MAX_TASKSET_DRAFT_WORKSPACE_BYTES);\n const content = WorkspaceContentSchema.parse(input);\n content.files.sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0);\n return validateTasksetDraftWorkspace({ ...content, contentHash: contentHash(content) });\n}\n\nexport function validateTasksetDraftWorkspace(input: unknown): TasksetDraftWorkspace {\n assertBoundedTaskJson(input, MAX_TASKSET_DRAFT_WORKSPACE_BYTES);\n const workspace = TasksetDraftWorkspaceSchema.parse(input);\n const { contentHash: expectedHash, ...content } = workspace;\n if (contentHash(content) !== expectedHash) throw new Error(\"Taskset draft workspace differs from its retained bytes.\");\n let previousPath: string | null = null;\n const paths = new Set<string>();\n for (const file of workspace.files) {\n if (isManagedTasksetDraftFilePath(file.path)) throw new Error(\"Managed Taskset files are represented by the draft document.\");\n if (previousPath !== null && previousPath >= file.path) throw new Error(\"Taskset draft file paths must be unique and sorted.\");\n const segments = file.path.split(\"/\");\n for (let end = 1; end < segments.length; end++) if (paths.has(segments.slice(0, end).join(\"/\"))) throw new Error(\"A Taskset draft file occupies another file's directory.\");\n decodeTasksetDraftWorkspaceFile(file);\n paths.add(file.path);\n previousPath = file.path;\n }\n return workspace;\n}\n\nexport function readTasksetDraftWorkspaceFile(input: TasksetDraftWorkspace, path: string) {\n const workspace = validateTasksetDraftWorkspace(input);\n TasksetDraftFilePathSchema.parse(path);\n const file = workspace.files.find(candidate => candidate.path === path);\n const manifest = isManagedTasksetDraftFilePath(path) ? renderTasksetDraftManifests(workspace.draft).get(path) : undefined;\n if (!file && manifest === undefined) throw new Error(\"Taskset draft file does not exist.\");\n const result = createTasksetDraftFile(path, file ? decodeTasksetDraftWorkspaceFile(file) : new TextEncoder().encode(manifest!));\n return { draftRevision: workspace.draft.revision, file: { ...result, writable: result.writable && workspace.draft.status !== \"published\" } };\n}\n\nexport function listTasksetDraftWorkspaceFiles(input: TasksetDraftWorkspace) {\n const workspace = validateTasksetDraftWorkspace(input);\n const files = workspace.files.map(file => ({ path: file.path, sizeBytes: file.sizeBytes,\n writable: workspace.draft.status !== \"published\" && isWritableTasksetDraftFilePath(file.path) }));\n for (const [path, content] of renderTasksetDraftManifests(workspace.draft)) files.push({ path, sizeBytes: new TextEncoder().encode(content).byteLength, writable: false });\n return { draftRevision: workspace.draft.revision, files: files.sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0) };\n}\n\nexport function saveTasksetDraftWorkspaceDocument(input: { workspace: TasksetDraftWorkspace; expectedDraftRevision: number; draft: unknown; now: string }): TasksetDraftWorkspace {\n const workspace = editableWorkspace(input.workspace, input.expectedDraftRevision);\n const draft = TasksetDraftSchema.parse(input.draft);\n const current = workspace.draft;\n if (draft.id !== current.id || draft.profileId !== current.profileId || contentHash(draft.modelScope) !== contentHash(current.modelScope)) throw new Error(\"Taskset draft Model ownership cannot change.\");\n if (draft.revision !== current.revision || draft.status !== current.status || draft.createdAt !== current.createdAt || contentHash(draft.publishedTasksetRef) !== contentHash(current.publishedTasksetRef)) throw new Error(\"Taskset draft lifecycle fields cannot change through form edits.\");\n const files = [...workspace.files];\n for (const configured of configuredTasksetDraftFiles(draft)) if (!files.some(file => file.path === configured.relativePath)) {\n const bytes = new TextEncoder().encode(configured.source);\n files.push({ path: configured.relativePath, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: base64(bytes) });\n }\n const aggregator = draft.metrics.customAggregator;\n const module = aggregator ? files.find(file => file.path === aggregator.module) : undefined;\n return createTasksetDraftWorkspace({ schemaVersion: workspace.schemaVersion, files,\n draft: { ...draft, revision: current.revision + 1, status: \"draft\", updatedAt: input.now,\n ...(aggregator && module ? { metrics: { ...draft.metrics, customAggregator: { ...aggregator, contentHash: module.contentHash } } } : {}) } });\n}\n\nexport function saveTasksetDraftWorkspaceFile(input: { workspace: TasksetDraftWorkspace; mutation: TasksetDraftFileMutation; now: string }): TasksetDraftWorkspace {\n const mutation = TasksetDraftFileMutationSchema.parse(input.mutation);\n const workspace = editableWorkspace(input.workspace, mutation.expectedDraftRevision);\n if (workspace.draft.id !== mutation.draftId) throw new Error(\"Taskset draft file belongs to another draft.\");\n if (!isWritableTasksetDraftFilePath(mutation.path)) throw new Error(\"This file is managed by the Taskset forms or retained source history.\");\n const previous = workspace.files.find(file => file.path === mutation.path);\n if ((previous?.contentHash ?? null) !== mutation.expectedFileHash) throw new Error(\"Taskset draft file changed. Reload it before saving.\");\n if (!previous && mutation.content === null) throw new Error(\"Taskset draft file does not exist.\");\n const files = workspace.files.filter(file => file.path !== mutation.path);\n if (mutation.content !== null) {\n const bytes = decodeTasksetDraftFileContent(mutation.content);\n files.push({ path: mutation.path, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: base64(bytes) });\n }\n return createTasksetDraftWorkspace({ schemaVersion: workspace.schemaVersion, files,\n draft: { ...workspace.draft, revision: workspace.draft.revision + 1, status: \"draft\", updatedAt: input.now } });\n}\n\nfunction editableWorkspace(input: unknown, expectedRevision: number): TasksetDraftWorkspace {\n const workspace = validateTasksetDraftWorkspace(input);\n if (workspace.draft.status === \"published\") throw new Error(\"Published Taskset drafts are immutable.\");\n if (workspace.draft.revision !== expectedRevision) throw new Error(\"Taskset draft changed. Reload before saving.\");\n return workspace;\n}\n\nexport function decodeTasksetDraftWorkspaceFile(input: TasksetDraftWorkspaceFile): Uint8Array {\n const file = TasksetDraftWorkspaceFileSchema.parse(input);\n let raw: string;\n try { raw = atob(file.base64); }\n catch { throw new Error(\"Taskset draft file contains invalid base64.\"); }\n if (btoa(raw) !== file.base64) throw new Error(\"Taskset draft file contains noncanonical base64.\");\n const bytes = Uint8Array.from(raw, character => character.charCodeAt(0));\n if (bytes.byteLength !== file.sizeBytes || sha256(bytes) !== file.contentHash) throw new Error(\"Taskset draft file differs from its retained bytes.\");\n return bytes;\n}\n\nfunction base64(bytes: Uint8Array): string {\n let raw = \"\";\n for (let offset = 0; offset < bytes.length; offset += 8192) raw += String.fromCharCode(...bytes.subarray(offset, offset + 8192));\n return btoa(raw);\n}\n"],
5
- "mappings": "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",
6
- "names": ["z", "IdSchema", "z", "HashSchema", "z", "HashSchema", "z"]
7
- }