openpond-sdk 0.12.4 → 0.12.6

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 (160) hide show
  1. package/TASKSETS.md +13 -0
  2. package/TRAINING_PROTOCOL.md +25 -0
  3. package/dist/advanced-refiner-evaluations.js +7 -7
  4. package/dist/candidate-evaluations.js +6 -6
  5. package/dist/{chunk-MO4HAJZG.js → chunk-2XLKMZH5.js} +486 -252
  6. package/dist/chunk-2XLKMZH5.js.map +1 -0
  7. package/dist/{chunk-HGXVOFCL.js → chunk-3SIGXGAE.js} +133 -88
  8. package/dist/chunk-3SIGXGAE.js.map +1 -0
  9. package/dist/{chunk-WMIKJGXW.js → chunk-3VGTVZHL.js} +3 -3
  10. package/dist/{chunk-U7XWIOSB.js → chunk-5T76GARR.js} +2 -2
  11. package/dist/{chunk-WQFU635Q.js → chunk-ATVQQCYN.js} +8 -4
  12. package/dist/chunk-ATVQQCYN.js.map +1 -0
  13. package/dist/{chunk-QRS7Y3EM.js → chunk-B2MKB7NB.js} +2 -2
  14. package/dist/{chunk-H4NTJFEE.js → chunk-D3WOJTUY.js} +3 -2
  15. package/dist/{chunk-H4NTJFEE.js.map → chunk-D3WOJTUY.js.map} +1 -1
  16. package/dist/{chunk-EFUT3XKW.js → chunk-ETFWUMEJ.js} +2 -2
  17. package/dist/{chunk-B5XTGEBE.js → chunk-FPA3AVCP.js} +85 -8
  18. package/dist/chunk-FPA3AVCP.js.map +1 -0
  19. package/dist/{chunk-BVMR5OFW.js → chunk-HRJKDHHG.js} +6 -4
  20. package/dist/chunk-HRJKDHHG.js.map +1 -0
  21. package/dist/{chunk-VN5V2E2S.js → chunk-HRZLFJXX.js} +3 -3
  22. package/dist/{chunk-I54WQBXL.js → chunk-KD6MM67B.js} +6 -6
  23. package/dist/{chunk-ZHQK3MOM.js → chunk-LIMTJR3A.js} +3 -3
  24. package/dist/{chunk-GAIDBPFY.js → chunk-ONGOAEY6.js} +14 -2
  25. package/dist/chunk-ONGOAEY6.js.map +1 -0
  26. package/dist/{chunk-CMWZZZGW.js → chunk-QDYHSJT5.js} +22 -8
  27. package/dist/chunk-QDYHSJT5.js.map +1 -0
  28. package/dist/{chunk-VHGC44HA.js → chunk-RDL6QIQO.js} +2 -2
  29. package/dist/{chunk-LHX7ENKZ.js → chunk-S2IASCGW.js} +3 -3
  30. package/dist/{chunk-XON75UFN.js → chunk-SER76PQ7.js} +2 -2
  31. package/dist/{chunk-ETX25FTB.js → chunk-SMHZT6RM.js} +2 -2
  32. package/dist/{chunk-24N6A6SF.js → chunk-SQBYHWZU.js} +2 -2
  33. package/dist/{chunk-DF2QXVZ3.js → chunk-VBVFE33M.js} +5 -5
  34. package/dist/{chunk-53LLNDXF.js → chunk-VQGTYGZH.js} +2 -2
  35. package/dist/{chunk-OR3TMIJN.js → chunk-VTAGUWXH.js} +2 -2
  36. package/dist/{chunk-LR5CTOC5.js → chunk-XF3JR72U.js} +3 -3
  37. package/dist/{chunk-ZIFZFP5I.js → chunk-Y3I7SN5W.js} +61 -35
  38. package/dist/chunk-Y3I7SN5W.js.map +1 -0
  39. package/dist/{chunk-RRKRA237.js → chunk-Z4XGSEKC.js} +577 -249
  40. package/dist/chunk-Z4XGSEKC.js.map +1 -0
  41. package/dist/{chunk-K5LWSWV7.js → chunk-ZGZLN4LH.js} +2 -2
  42. package/dist/connected-evidence.js +14 -14
  43. package/dist/dataset-workspaces.js +14 -14
  44. package/dist/experiment-evaluation-schedules.js +18 -18
  45. package/dist/experiment-improvements.js +7 -7
  46. package/dist/experiments.js +17 -17
  47. package/dist/index.js +90 -45
  48. package/dist/index.js.map +1 -1
  49. package/dist/learning.js +113 -9
  50. package/dist/learning.js.map +1 -1
  51. package/dist/model-projects.js +1 -1
  52. package/dist/model-starter-attempts.js +2 -2
  53. package/dist/model-starter-catalog.js +9 -9
  54. package/dist/model-starters.js +13 -9
  55. package/dist/model-taskset-runs.js +3 -3
  56. package/dist/post-training.js +6 -6
  57. package/dist/taskset-drafts.js +12 -12
  58. package/dist/taskset-packages.js +15 -15
  59. package/dist/training-bundle.js +81 -19
  60. package/dist/training-bundle.js.map +1 -1
  61. package/dist/training.js +39 -7
  62. package/dist/types/packages/cloud/src/hosted-chat.d.ts +28 -0
  63. package/dist/types/packages/cloud/src/hosted-chat.d.ts.map +1 -1
  64. package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts.map +1 -1
  65. package/dist/types/packages/cloud/src/sandbox/url.d.ts +3 -1
  66. package/dist/types/packages/cloud/src/sandbox/url.d.ts.map +1 -1
  67. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +4 -0
  68. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  69. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +2 -0
  70. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -1
  71. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +14 -0
  72. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  73. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +4 -0
  74. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  75. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +4 -0
  76. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  77. package/dist/types/packages/sdk/src/learning-client.d.ts +1 -0
  78. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  79. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts +358 -0
  80. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts.map +1 -0
  81. package/dist/types/packages/sdk/src/learning.d.ts +1 -0
  82. package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
  83. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +24 -0
  84. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  85. package/dist/types/packages/sdk/src/model-bound-taskset-authoring.d.ts.map +1 -1
  86. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +16 -0
  87. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  88. package/dist/types/packages/sdk/src/model-projects.d.ts +192 -0
  89. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  90. package/dist/types/packages/sdk/src/model-starters.d.ts +84 -1
  91. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  92. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +28 -28
  93. package/dist/types/packages/sdk/src/model-training-defaults.d.ts +14 -0
  94. package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
  95. package/dist/types/packages/sdk/src/post-training.d.ts +54 -0
  96. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  97. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  98. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
  99. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +4 -0
  100. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  101. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +142 -120
  102. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  103. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +4 -0
  104. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  105. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +4 -0
  106. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  107. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +4 -0
  108. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  109. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +63 -0
  110. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  111. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  112. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  113. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  114. package/dist/types/packages/sdk/src/training-compute-selection.d.ts +52 -0
  115. package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -0
  116. package/dist/types/packages/sdk/src/training-estimates.d.ts +1069 -0
  117. package/dist/types/packages/sdk/src/training-estimates.d.ts.map +1 -0
  118. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +40 -40
  119. package/dist/types/packages/sdk/src/training-physical-placement.d.ts +16 -0
  120. package/dist/types/packages/sdk/src/training-physical-placement.d.ts.map +1 -0
  121. package/dist/types/packages/sdk/src/training-preparations.d.ts +248 -0
  122. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  123. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +20 -0
  124. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
  125. package/dist/types/packages/sdk/src/training-queue.d.ts +24 -0
  126. package/dist/types/packages/sdk/src/training-queue.d.ts.map +1 -0
  127. package/dist/types/packages/sdk/src/training-recipe-binding.d.ts.map +1 -1
  128. package/dist/types/packages/sdk/src/training-recovery.d.ts +85 -0
  129. package/dist/types/packages/sdk/src/training-recovery.d.ts.map +1 -0
  130. package/dist/types/packages/sdk/src/training-verifier-assets.d.ts +7 -0
  131. package/dist/types/packages/sdk/src/training-verifier-assets.d.ts.map +1 -0
  132. package/dist/types/packages/sdk/src/training.d.ts +599 -0
  133. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  134. package/package.json +3 -3
  135. package/dist/chunk-B5XTGEBE.js.map +0 -1
  136. package/dist/chunk-BVMR5OFW.js.map +0 -1
  137. package/dist/chunk-CMWZZZGW.js.map +0 -1
  138. package/dist/chunk-GAIDBPFY.js.map +0 -1
  139. package/dist/chunk-HGXVOFCL.js.map +0 -1
  140. package/dist/chunk-MO4HAJZG.js.map +0 -1
  141. package/dist/chunk-RRKRA237.js.map +0 -1
  142. package/dist/chunk-WQFU635Q.js.map +0 -1
  143. package/dist/chunk-ZIFZFP5I.js.map +0 -1
  144. /package/dist/{chunk-WMIKJGXW.js.map → chunk-3VGTVZHL.js.map} +0 -0
  145. /package/dist/{chunk-U7XWIOSB.js.map → chunk-5T76GARR.js.map} +0 -0
  146. /package/dist/{chunk-QRS7Y3EM.js.map → chunk-B2MKB7NB.js.map} +0 -0
  147. /package/dist/{chunk-EFUT3XKW.js.map → chunk-ETFWUMEJ.js.map} +0 -0
  148. /package/dist/{chunk-VN5V2E2S.js.map → chunk-HRZLFJXX.js.map} +0 -0
  149. /package/dist/{chunk-I54WQBXL.js.map → chunk-KD6MM67B.js.map} +0 -0
  150. /package/dist/{chunk-ZHQK3MOM.js.map → chunk-LIMTJR3A.js.map} +0 -0
  151. /package/dist/{chunk-VHGC44HA.js.map → chunk-RDL6QIQO.js.map} +0 -0
  152. /package/dist/{chunk-LHX7ENKZ.js.map → chunk-S2IASCGW.js.map} +0 -0
  153. /package/dist/{chunk-XON75UFN.js.map → chunk-SER76PQ7.js.map} +0 -0
  154. /package/dist/{chunk-ETX25FTB.js.map → chunk-SMHZT6RM.js.map} +0 -0
  155. /package/dist/{chunk-24N6A6SF.js.map → chunk-SQBYHWZU.js.map} +0 -0
  156. /package/dist/{chunk-DF2QXVZ3.js.map → chunk-VBVFE33M.js.map} +0 -0
  157. /package/dist/{chunk-53LLNDXF.js.map → chunk-VQGTYGZH.js.map} +0 -0
  158. /package/dist/{chunk-OR3TMIJN.js.map → chunk-VTAGUWXH.js.map} +0 -0
  159. /package/dist/{chunk-LR5CTOC5.js.map → chunk-XF3JR72U.js.map} +0 -0
  160. /package/dist/{chunk-K5LWSWV7.js.map → chunk-ZGZLN4LH.js.map} +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  TasksetPreferenceComparisonBindingSchema,
12
12
  TasksetPurposeSchema,
13
13
  TasksetSourceRefSchema
14
- } from "./chunk-MO4HAJZG.js";
14
+ } from "./chunk-2XLKMZH5.js";
15
15
  import {
16
16
  ModelTasksetDraftPreparationSchema
17
17
  } from "./chunk-TK3DXH7A.js";
@@ -66,12 +66,24 @@ var TasksetDraftReviewPolicySchema = z.object({
66
66
  var TasksetDraftOutputContractSchema = z.object({
67
67
  mode: z.enum(["text", "structured_json", "artifacts"]),
68
68
  jsonSchema: z.record(z.string(), z.unknown()).nullable(),
69
+ requiredOutputSource: z.literal("task.requiredOutputs").optional(),
70
+ responsePath: z.string().trim().min(1).max(1e3).refine(safeRelativeFilePath, "Response paths must name a safe relative output path.").optional(),
69
71
  renderer: z.object({
70
72
  module: z.string().trim().min(1).max(1e3).refine(safeRelativeFilePath, "Renderer modules must use a safe relative path."),
71
73
  exportName: CodeIdentifierSchema,
72
74
  configRef: z.string().trim().min(1).max(1e3).refine(safeRelativeFilePath, "Renderer configuration must use a safe relative path.").nullable().default(null)
73
75
  }).nullable()
74
76
  }).superRefine((output, context) => {
77
+ if (output.responsePath !== void 0 && (output.mode !== "artifacts" || output.requiredOutputSource !== "task.requiredOutputs")) {
78
+ context.addIssue({
79
+ code: "custom",
80
+ path: ["responsePath"],
81
+ message: "An artifact response path requires artifacts mode and task.requiredOutputs."
82
+ });
83
+ }
84
+ if (output.requiredOutputSource !== void 0 && output.mode !== "artifacts") {
85
+ context.addIssue({ code: "custom", path: ["requiredOutputSource"], message: "Required output sources belong to artifacts mode." });
86
+ }
75
87
  if (output.mode === "structured_json" && !output.jsonSchema) {
76
88
  context.addIssue({
77
89
  code: "custom",
@@ -898,4 +910,4 @@ export {
898
910
  computeTasksetHash,
899
911
  validatePortability
900
912
  };
901
- //# sourceMappingURL=chunk-GAIDBPFY.js.map
913
+ //# sourceMappingURL=chunk-ONGOAEY6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/taskset-draft-document.ts","../src/taskset-authored-contracts.ts","../src/taskset-draft-authoring.ts","../src/taskset-authored-validation.ts"],"sourcesContent":["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 requiredOutputSource: z.literal(\"task.requiredOutputs\").optional(),\n responsePath: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Response paths must name a safe relative output path.\").optional(),\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.responsePath !== undefined && (output.mode !== \"artifacts\" || output.requiredOutputSource !== \"task.requiredOutputs\")) {\n context.addIssue({ code: \"custom\", path: [\"responsePath\"],\n message: \"An artifact response path requires artifacts mode and task.requiredOutputs.\" });\n }\n if (output.requiredOutputSource !== undefined && output.mode !== \"artifacts\") {\n context.addIssue({ code: \"custom\", path: [\"requiredOutputSource\"], message: \"Required output sources belong to artifacts mode.\" });\n }\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 { z } from \"zod\";\nimport { VersionedReleaseRefSchema } from \"@openpond/harness\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { TasksetMetricPolicySchema } from \"@openpond/evals/metrics\";\nimport { DatasetArtifactManifestSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport {\n TasksetPurposeSchema,\n TasksetBenchmarkBindingSchema,\n TasksetPreferenceComparisonBindingSchema,\n TasksetSourceRefSchema,\n TaskPolicyBoundarySchema,\n TasksetEnvironmentContractSchema,\n TasksetCapabilityManifestSchema,\n TaskDataRecordSchema,\n GraderSpecSchema,\n GraderFixtureSchema,\n LearningSignalInventorySchema,\n type TasksetSourceRef, type TrainingSourceRef,\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 MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst NullableIdSchema = IdSchema.nullable();\n\nexport const TASKSET_WORK_TOOL_NAMES = [\n \"work_capabilities\",\n \"work_environment\",\n \"work_list_files\",\n \"work_read_file\",\n \"work_read_document\",\n \"work_write_file\",\n \"work_write_docx\",\n \"work_edit_file\",\n \"work_delete_file\",\n \"work_exec\",\n \"work_save_output\",\n \"work_stop\",\n] as const;\n\nexport const TasksetStatusSchema = z.enum([\n \"draft\",\n \"awaiting_disclosure_approval\",\n \"awaiting_materialization_approval\",\n \"materializing\",\n \"validating\",\n \"needs_review\",\n \"baselining\",\n \"ready\",\n \"blocked\",\n \"failed\",\n \"archived\",\n]);\n\nexport const DatasetBuildIntentSchema = z.enum([\n \"demonstrations\",\n \"preferences\",\n \"verifiable_reward\",\n \"rubric\",\n \"discovery\",\n]);\n\nconst DatasetEvidenceTextSchema = z.string().trim().max(100_000);\n\nexport const DatasetBuildSpecificationSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"demonstrations\"),\n behavior: DatasetEvidenceTextSchema,\n examples: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n response: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"preferences\"),\n preference: DatasetEvidenceTextSchema,\n pairs: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n chosen: DatasetEvidenceTextSchema,\n rejected: DatasetEvidenceTextSchema,\n rationale: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"verifiable_reward\"),\n task: DatasetEvidenceTextSchema,\n rules: z.array(z.object({\n id: IdSchema,\n points: z.number().finite(),\n condition: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n otherwisePoints: z.number().finite().default(0),\n }),\n z.object({\n kind: z.literal(\"rubric\"),\n task: DatasetEvidenceTextSchema,\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().max(500),\n description: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n positiveExample: DatasetEvidenceTextSchema,\n negativeExample: DatasetEvidenceTextSchema,\n boundaryExample: DatasetEvidenceTextSchema,\n }),\n]);\n\nexport const GeneratedTaskFileSchema = z.object({\n path: z.string().trim().min(1).max(1_000),\n role: z.enum([\"environment\", \"verifier\", \"fixture\"]),\n content: z.string().max(250_000),\n});\n\nexport const TrainingPathRecommendationSchema = z.object({\n primaryMethod: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opsd\", \"sdpo\"]),\n bootstrap: z.object({\n method: z.literal(\"sft\"),\n purpose: z.literal(\"trajectory_bootstrap\"),\n demonstrationRefs: z.array(IdSchema).min(1).max(100_000),\n limitations: z.array(z.string().trim().min(1).max(5_000)).min(1).max(100),\n }).nullable(),\n});\n\nexport const TrainingMethodReadinessReasonCodeSchema = z.enum([\n \"taskset_not_ready\",\n \"demonstrations_missing\",\n \"preference_pairs_missing\",\n \"preference_pairs_invalid\",\n \"executable_reward_missing\",\n \"reward_not_calibrated\",\n \"reward_model_missing\",\n \"value_model_required\",\n \"frozen_eval_missing\",\n]);\n\nexport const TrainingMethodReadinessSchema = z.object({\n method: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\"]),\n status: z.enum([\"recommended\", \"compatible\", \"needs_dataset_work\"]),\n reasonCodes: z.array(TrainingMethodReadinessReasonCodeSchema).default([]),\n reasons: z.array(z.string().trim().min(1).max(5_000)).default([]),\n});\n\nexport const TasksetReadinessFindingSchema = z.object({\n code: IdSchema,\n message: z.string().trim().min(1).max(5_000),\n path: z.string().trim().max(2_000).nullable(),\n});\n\nexport const TasksetReadinessReportSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetReadiness.v1\"),\n tasksetId: IdSchema,\n tasksetHash: HashSchema,\n ready: z.boolean(),\n recommendedMethod: z.enum([\"none\", \"retrieval\", \"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opd\", \"opsd\", \"sdpo\"]),\n trainingPath: TrainingPathRecommendationSchema.nullable().default(null),\n methodReadiness: z.array(TrainingMethodReadinessSchema).default([]),\n compatibleDestinationClasses: z.array(\n z.enum([\"export\", \"custom\", \"hosted_managed\"]),\n ),\n blockers: z.array(TasksetReadinessFindingSchema).default([]),\n advisories: z.array(TasksetReadinessFindingSchema).default([]),\n warnings: z.array(z.string().trim().min(1).max(5_000)).default([]),\n generatedAt: TimestampSchema,\n});\n\nexport const AuthoringRepairSchema = z.object({ attempt: z.number().int().positive(), summary: z.string().trim().min(1).max(5_000), createdAt: TimestampSchema });\n\nexport const AuthoringProvenanceSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskAuthoringProvenance.v1\"),\n model: ChatModelRefSchema.nullable(),\n modelConfig: MetadataSchema,\n skillHash: HashSchema,\n promptTemplateVersion: z.string().trim().min(1).max(200),\n buildIntent: DatasetBuildIntentSchema.default(\"demonstrations\"),\n buildSpecification: DatasetBuildSpecificationSchema.nullable().default(null),\n evidenceHashes: z.array(HashSchema).max(100_000),\n tasksetSdkVersion: z.string().trim().min(1).max(100),\n sourceCommit: z.string().trim().min(1).max(256).nullable(),\n repairHistory: z.array(AuthoringRepairSchema).max(1_000),\n createdAt: TimestampSchema,\n});\n\nexport const TasksetSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskset.v1\"),\n id: IdSchema,\n revision: z.number().int().positive().default(1),\n profileId: IdSchema,\n profileRelease: VersionedReleaseRefSchema.nullable().optional(),\n createImproveRunId: NullableIdSchema.default(null),\n name: z.string().trim().min(1).max(500),\n // Portable tasks may carry all instructions in their individual inputs.\n // Preserve an absent package prompt; draft publication validates its objective.\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: TasksetStatusSchema,\n sourceRefs: z.array(TasksetSourceRefSchema).min(1).max(100_000),\n datasetArtifact: DatasetArtifactManifestSchema.nullable().optional(),\n policy: TaskPolicyBoundarySchema,\n environment: TasksetEnvironmentContractSchema,\n capabilities: TasksetCapabilityManifestSchema,\n metrics: TasksetMetricPolicySchema.optional(),\n tasks: z.array(TaskDataRecordSchema).max(1_000_000),\n graders: z.array(GraderSpecSchema).max(1_000),\n // Imported releases are inspectable before local calibration. Admission\n // requires real fixtures separately in validateTaskset.\n graderFixtures: z.array(GraderFixtureSchema).max(100_000),\n learningSignals: LearningSignalInventorySchema,\n authoringProvenance: AuthoringProvenanceSchema,\n readiness: TasksetReadinessReportSchema.nullable(),\n contentHash: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n metadata: MetadataSchema,\n}).superRefine((taskset, context) => {\n if (taskset.purpose === \"benchmark\" && !taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Benchmark Tasksets require an immutable benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.purpose !== \"benchmark\" && taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Only benchmark Tasksets may carry a benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.datasetArtifact && taskset.tasks.length > 0) {\n context.addIssue({\n code: \"custom\",\n message:\n \"Artifact-backed Tasksets may not duplicate canonical rows inline.\",\n path: [\"tasks\"],\n });\n }\n if (!taskset.datasetArtifact && taskset.tasks.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"A Taskset requires inline tasks or a Dataset artifact manifest.\",\n path: [\"tasks\"],\n });\n }\n});\n\nexport type DatasetBuildIntent = z.infer<typeof DatasetBuildIntentSchema>;\nexport type DatasetBuildSpecification = z.infer<typeof DatasetBuildSpecificationSchema>;\nexport type GeneratedTaskFile = z.infer<typeof GeneratedTaskFileSchema>;\nexport type TrainingPathRecommendation = z.infer<typeof TrainingPathRecommendationSchema>;\nexport type TrainingMethodReadinessReasonCode = z.infer<typeof TrainingMethodReadinessReasonCodeSchema>;\nexport type TrainingMethodReadiness = z.infer<typeof TrainingMethodReadinessSchema>;\nexport type TasksetReadinessReport = z.infer<typeof TasksetReadinessReportSchema>;\nexport type AuthoringProvenance = z.infer<typeof AuthoringProvenanceSchema>;\nexport type AuthoringRepair = z.infer<typeof AuthoringRepairSchema>;\nexport type Taskset = z.infer<typeof TasksetSchema>;\n\nexport function isTrainingSourceRef(\n source: TasksetSourceRef,\n): source is TrainingSourceRef {\n return source.schemaVersion === \"openpond.trainingSource.v1\";\n}\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 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 type { TasksetCapabilityManifest } from \"./taskset-draft-core.js\";\nimport {\n isTrainingSourceRef,\n TASKSET_WORK_TOOL_NAMES,\n TasksetSchema,\n type Taskset,\n} from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\n\nexport type TasksetValidationIssue = {\n code: string;\n severity: \"warning\" | \"error\";\n message: string;\n path: string | null;\n};\n\nexport type TasksetValidationReport = {\n valid: boolean;\n taskset: Taskset | null;\n computedHash: string | null;\n issues: TasksetValidationIssue[];\n};\n\nexport function validateTaskset(input: unknown, options: { allowUnscoredOnlineRewardBatch?: boolean; purpose?: \"publication\" | \"execution\" } = {}): TasksetValidationReport {\n const parsed = TasksetSchema.safeParse(input);\n if (!parsed.success) {\n return {\n valid: false,\n taskset: null,\n computedHash: null,\n issues: parsed.error.issues.map((issue) => ({\n code: \"schema_invalid\",\n severity: \"error\",\n message: issue.message,\n path: issue.path.join(\".\"),\n })),\n };\n }\n\n const taskset = parsed.data;\n const issues: TasksetValidationIssue[] = [];\n validateSourceConsent(taskset, issues);\n validateDatasetArtifact(taskset, issues);\n validateSplitIsolation(taskset, issues);\n validatePolicyBoundary(taskset, issues);\n validateGraders(taskset, issues);\n if (options.purpose !== \"publication\") {\n if (!taskset.graders.length) issues.push({ code: \"graders_required\", severity: \"error\", message: \"Scored execution requires at least one grader.\", path: \"graders\" });\n validateGraderFixtures(taskset, issues, options);\n }\n validateLearningSignals(taskset, issues);\n validateCapabilities(taskset.capabilities, issues, taskset);\n validateWorkExecution(taskset, issues);\n\n const computedHash = tasksetContentHash(taskset);\n if (taskset.contentHash !== computedHash) {\n issues.push({\n code: \"content_hash_mismatch\",\n severity: \"error\",\n message: `Taskset contentHash is ${taskset.contentHash}, expected ${computedHash}.`,\n path: \"contentHash\",\n });\n }\n\n return {\n valid: !issues.some((issue) => issue.severity === \"error\"),\n taskset,\n computedHash,\n issues,\n };\n}\n\nfunction validateGraderFixtures(taskset: Taskset, issues: TasksetValidationIssue[], options: { allowUnscoredOnlineRewardBatch?: boolean }): void {\n // The hosted learning boundary checks the sealed batch and executable Reward\n // before opting into fresh-rollout GRPO. Human-only review has no automated\n // grader to calibrate; every mixed/automated taskset retains fixture gates.\n const humanReviewOnly = taskset.graders.length > 0 && taskset.graders.every(grader => grader.kind === \"human\");\n if (!humanReviewOnly && !taskset.graderFixtures.length && !(options.allowUnscoredOnlineRewardBatch && taskset.metadata.trainingMethod === \"grpo\" && taskset.metadata.learning)) {\n issues.push({ code: \"grader_fixtures_required\", severity: \"error\", message: \"Taskset admission requires authored grader fixtures.\", path: \"graderFixtures\" });\n }\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const required = new Set([\"positive\", \"negative\", \"boundary\", \"adversarial\", \"prompt_injection\", \"infrastructure_failure\"]);\n for (const fixture of taskset.graderFixtures) {\n if (!taskset.datasetArtifact && !taskIds.has(fixture.taskId)) issues.push({ code: \"grader_fixture_task_missing\", severity: \"warning\", message: `Fixture ${fixture.id} references a task outside this Taskset revision (${fixture.taskId}).`, path: `graderFixtures.${fixture.id}.taskId` });\n required.delete(fixture.label);\n if (fixture.label === \"infrastructure_failure\" && !fixture.infrastructureError) issues.push({ code: \"infrastructure_fixture_error_missing\", severity: \"error\", message: `Infrastructure fixture ${fixture.id} must declare an infrastructure error.`, path: `graderFixtures.${fixture.id}.infrastructureError` });\n }\n for (const label of humanReviewOnly ? [] : required) issues.push({ code: \"grader_fixture_missing\", severity: \"warning\", message: `Taskset does not include the optional ${label} grader calibration fixture.`, path: \"graderFixtures\" });\n}\n\nfunction validateDatasetArtifact(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n const artifact = taskset.datasetArtifact;\n if (!artifact) return;\n if (\n artifact.tasksetId !== taskset.id\n || artifact.tasksetRevision !== taskset.revision\n ) {\n issues.push({\n code: \"dataset_artifact_taskset_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact identity does not match its Taskset revision.\",\n path: \"datasetArtifact\",\n });\n }\n const splitTotal = Object.values(artifact.splitCounts)\n .reduce((total, count) => total + count, 0);\n const shardTotal = artifact.shards\n .reduce((total, shard) => total + shard.rowCount, 0);\n if (splitTotal !== artifact.rowCount || shardTotal !== artifact.rowCount) {\n issues.push({\n code: \"dataset_artifact_row_count_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact row, split, and shard counts do not agree.\",\n path: \"datasetArtifact.rowCount\",\n });\n }\n const shardSplitCounts = new Map<string, number>();\n for (const shard of artifact.shards) {\n shardSplitCounts.set(\n shard.split,\n (shardSplitCounts.get(shard.split) ?? 0) + shard.rowCount,\n );\n }\n for (const [split, count] of Object.entries(artifact.splitCounts)) {\n if ((shardSplitCounts.get(split) ?? 0) !== count) {\n issues.push({\n code: \"dataset_artifact_split_count_mismatch\",\n severity: \"error\",\n message: `Dataset artifact ${split} shard counts do not match its manifest.`,\n path: `datasetArtifact.splitCounts.${split}`,\n });\n }\n }\n const { contentHash: _contentHash, ...hashable } = artifact;\n if (contentHash(hashable) !== artifact.contentHash) {\n issues.push({\n code: \"dataset_artifact_hash_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact manifest content hash is invalid.\",\n path: \"datasetArtifact.contentHash\",\n });\n }\n}\n\nexport function computeTasksetHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n return tasksetContentHash(taskset);\n}\n\nfunction tasksetContentHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n const { contentHash: _contentHash, status: _status, readiness: _readiness, updatedAt: _updatedAt, ...source } = taskset as Taskset;\n return contentHash(source);\n}\n\nexport function validatePortability(capabilities: TasksetCapabilityManifest): TasksetValidationIssue[] {\n const issues: TasksetValidationIssue[] = [];\n validateCapabilities(capabilities, issues, null);\n return issues;\n}\n\nfunction validateSourceConsent(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n for (const [index, source] of taskset.sourceRefs.entries()) {\n if (isTrainingSourceRef(source) && source.consent.status !== \"granted\") {\n issues.push({ code: \"source_consent_missing\", severity: \"error\", message: `Source ${source.id} is not consented.`, path: `sourceRefs.${index}.consent.status` });\n }\n if (source.secretScanStatus !== \"passed\") {\n issues.push({ code: \"source_secret_scan\", severity: \"error\", message: `Source ${source.id} did not pass secret scanning.`, path: `sourceRefs.${index}.secretScanStatus` });\n }\n if (source.piiScanStatus !== \"passed\") {\n issues.push({ code: \"source_pii_scan\", severity: \"error\", message: `Source ${source.id} has unresolved PII policy.`, path: `sourceRefs.${index}.piiScanStatus` });\n }\n if (source.licensingStatus !== \"approved\") {\n issues.push({ code: \"source_license\", severity: \"error\", message: `Source ${source.id} has unresolved licensing policy.`, path: `sourceRefs.${index}.licensingStatus` });\n }\n }\n}\n\nfunction validateSplitIsolation(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const clusterSplits = new Map<string, Set<string>>();\n for (const task of taskset.tasks) {\n const splits = clusterSplits.get(task.clusterKey) ?? new Set<string>();\n splits.add(task.split);\n clusterSplits.set(task.clusterKey, splits);\n }\n for (const [cluster, splits] of clusterSplits) {\n if (splits.size > 1) {\n issues.push({ code: \"split_cluster_contamination\", severity: \"error\", message: `Source cluster ${cluster} appears in multiple splits: ${[...splits].join(\", \")}.`, path: \"tasks\" });\n }\n }\n const frozenCount = taskset.datasetArtifact\n ? taskset.datasetArtifact.splitCounts.frozen_eval ?? 0\n : taskset.tasks.filter((task) => task.split === \"frozen_eval\").length;\n if (frozenCount === 0) issues.push({ code: \"frozen_eval_missing\", severity: \"warning\", message: \"Add an independent test example before training.\", path: \"tasks\" });\n}\n\nfunction validateWorkExecution(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n if (taskset.environment.kind !== \"work\") return;\n if (taskset.environment.entrypoint !== \"openpond-work-v1\") {\n issues.push({\n code: \"work_entrypoint_invalid\",\n severity: \"error\",\n message: \"Work Tasksets must use the openpond-work-v1 entrypoint.\",\n path: \"environment.entrypoint\",\n });\n }\n if (!taskset.environment.lifecycle.includes(\"reset\") || !taskset.environment.lifecycle.includes(\"cleanup\")) {\n issues.push({\n code: \"work_reset_lifecycle_missing\",\n severity: \"error\",\n message: \"Work attempts require reset and cleanup; filesystem state belongs to one attempt.\",\n path: \"environment.lifecycle\",\n });\n }\n const allowedTools = new Set<string>(TASKSET_WORK_TOOL_NAMES);\n const unknownTools = taskset.environment.toolNames.filter(\n (name) => !allowedTools.has(name),\n );\n if (unknownTools.length) {\n issues.push({\n code: \"work_tool_unknown\",\n severity: \"error\",\n message: `Work Taskset declares unknown tools: ${unknownTools.join(\", \")}.`,\n path: \"environment.toolNames\",\n });\n }\n if (!taskset.environment.toolNames.includes(\"work_save_output\")) {\n issues.push({\n code: \"work_output_tool_missing\",\n severity: \"error\",\n message: \"Work Tasksets must declare work_save_output.\",\n path: \"environment.toolNames\",\n });\n }\n for (const lifecycle of [\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"] as const) {\n if (!taskset.environment.lifecycle.includes(lifecycle)) {\n issues.push({\n code: \"work_lifecycle_incomplete\",\n severity: \"error\",\n message: `Work Tasksets require the ${lifecycle} lifecycle stage.`,\n path: \"environment.lifecycle\",\n });\n }\n }\n\n const sourceById = new Map(\n taskset.sourceRefs.map((source) => [source.id, source]),\n );\n for (const [taskIndex, task] of taskset.tasks.entries()) {\n const assetIds = new Set<string>();\n const fileNames = new Set<string>();\n for (const [assetIndex, asset] of (task.assets ?? []).entries()) {\n const path = `tasks.${taskIndex}.assets.${assetIndex}`;\n if (assetIds.has(asset.id)) {\n issues.push({\n code: \"work_asset_duplicate_id\",\n severity: \"error\",\n message: `Task ${task.id} repeats asset id ${asset.id}.`,\n path: `${path}.id`,\n });\n }\n const stagedPath = asset.stagingPath ?? asset.fileName;\n if (fileNames.has(stagedPath)) {\n issues.push({\n code: \"work_asset_duplicate_name\",\n severity: \"error\",\n message: `Task ${task.id} repeats staged path ${stagedPath}.`,\n path: `${path}.fileName`,\n });\n }\n assetIds.add(asset.id);\n fileNames.add(stagedPath);\n if (!task.sourceRefs.includes(asset.sourceRefId)) {\n issues.push({\n code: \"work_asset_task_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references source ${asset.sourceRefId} outside task ${task.id}.`,\n path: `${path}.sourceRefId`,\n });\n }\n const source = sourceById.get(asset.sourceRefId);\n if (!source) {\n issues.push({\n code: \"work_asset_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references missing source ${asset.sourceRefId}.`,\n path: `${path}.sourceRefId`,\n });\n } else if (\n \"sourceFileHashes\" in source\n && !source.sourceFileHashes?.includes(asset.sha256)\n ) {\n issues.push({\n code: \"work_asset_hash_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} hash is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.sha256`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.originalFileNames.includes(asset.fileName)\n ) {\n issues.push({\n code: \"work_asset_name_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} file name is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.fileName`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.mediaTypes.includes(asset.mediaType)\n ) {\n issues.push({\n code: \"work_asset_media_type_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} media type is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.mediaType`,\n });\n }\n if (asset.split !== task.split) {\n issues.push({\n code: \"work_asset_split_mismatch\",\n severity: \"error\",\n message: `Asset ${asset.id} is assigned to ${asset.split}, not task split ${task.split}.`,\n path: `${path}.split`,\n });\n }\n }\n\n const outputPaths = new Set<string>();\n for (const [outputIndex, output] of (task.requiredOutputs ?? []).entries()) {\n const normalized = output.path.replaceAll(\"\\\\\", \"/\");\n const path = `tasks.${taskIndex}.requiredOutputs.${outputIndex}.path`;\n if (outputPaths.has(normalized)) {\n issues.push({\n code: \"work_output_duplicate_path\",\n severity: \"error\",\n message: `Task ${task.id} repeats required output path ${normalized}.`,\n path,\n });\n }\n outputPaths.add(normalized);\n }\n if ((task.requiredOutputs ?? []).length === 0) {\n issues.push({\n code: \"work_output_missing\",\n severity: \"error\",\n message: `Work task ${task.id} must declare at least one required output.`,\n path: `tasks.${taskIndex}.requiredOutputs`,\n });\n }\n }\n}\n\nfunction validatePolicyBoundary(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const visible = new Set(taskset.policy.policyVisibleFields);\n for (const field of taskset.policy.privilegedFields) {\n if (visible.has(field)) issues.push({ code: \"privileged_field_visible\", severity: \"error\", message: `Field ${field} is both policy-visible and privileged.`, path: \"policy\" });\n }\n for (const task of taskset.tasks) {\n if (task.privilegedContextRef && Object.keys(task.policyVisibleContext).includes(task.privilegedContextRef)) {\n issues.push({ code: \"privileged_context_leak\", severity: \"error\", message: `Task ${task.id} exposes its privileged context reference.`, path: `tasks.${task.id}.policyVisibleContext` });\n }\n }\n}\n\nfunction validateGraders(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const taskIds = new Set(taskset.tasks.map(task => task.id));\n const ids = new Set<string>();\n for (const grader of taskset.graders) {\n if (grader.taskIds?.some(id => !taskIds.has(id))) issues.push({ code: \"grader_task_missing\", severity: \"error\", message: `Grader ${grader.id} refers to a task outside this Dataset.`, path: \"graders\" });\n if (ids.has(grader.id)) issues.push({ code: \"grader_duplicate\", severity: \"error\", message: `Duplicate grader id ${grader.id}.`, path: \"graders\" });\n ids.add(grader.id);\n if (grader.kind === \"model_judge\" && grader.rewardEligible && grader.calibrationStatus !== \"passed\") {\n issues.push({ code: \"judge_calibration_pending\", severity: \"warning\", message: `Model judge ${grader.id} is selected for reward without a passing advisory calibration report.`, path: `graders.${grader.id}` });\n }\n if (grader.kind === \"model_judge\" && grader.calibrationStatus === \"passed\" && typeof grader.metadata.calibrationEvidenceHash !== \"string\") {\n issues.push({ code: \"judge_calibration_evidence_missing\", severity: \"warning\", message: `Model judge ${grader.id} declares calibration without an OpenPond fixture evidence hash.`, path: `graders.${grader.id}.metadata.calibrationEvidenceHash` });\n }\n if (grader.kind === \"human\" && grader.rewardEligible) {\n issues.push({ code: \"human_online_reward\", severity: \"error\", message: `Human grader ${grader.id} cannot be an online optimizer reward.`, path: `graders.${grader.id}` });\n }\n }\n}\n\nfunction validateLearningSignals(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const sourceIds = new Set(taskset.sourceRefs.map((source) => source.id));\n for (const signal of [\n ...taskset.learningSignals.demonstrations,\n ...taskset.learningSignals.preferences,\n ...taskset.learningSignals.corrections,\n ...taskset.learningSignals.feedback,\n ...taskset.learningSignals.rewards,\n ...taskset.learningSignals.labels,\n ]) {\n if (signal.taskId && !taskset.datasetArtifact && !taskIds.has(signal.taskId)) {\n issues.push({ code: \"learning_signal_task_missing\", severity: \"error\", message: `Signal ${signal.id} references missing task ${signal.taskId}.`, path: `learningSignals.${signal.kind}.${signal.id}.taskId` });\n }\n if (signal.sourceRefs.some((sourceId) => !sourceIds.has(sourceId))) {\n issues.push({ code: \"learning_signal_source_missing\", severity: \"error\", message: `Signal ${signal.id} references a source outside the Dataset.`, path: `learningSignals.${signal.kind}.${signal.id}.sourceRefs` });\n }\n }\n for (const preference of taskset.learningSignals.preferences) {\n if (preference.chosen.trim() === preference.rejected.trim()) {\n issues.push({ code: \"preference_pair_identical\", severity: \"error\", message: `Preference ${preference.id} has identical chosen and rejected responses.`, path: `learningSignals.preferences.${preference.id}` });\n }\n }\n for (const reward of taskset.learningSignals.rewards) {\n if (!reward.executable) {\n issues.push({ code: \"reward_not_executable\", severity: \"warning\", message: `Reward ${reward.id} is a reviewed specification but has no executable verifier yet.`, path: `learningSignals.rewards.${reward.id}.executable` });\n }\n }\n}\n\nfunction validateCapabilities(\n capabilities: TasksetCapabilityManifest,\n issues: TasksetValidationIssue[],\n taskset: Taskset | null,\n): void {\n if (!capabilities.exportable && capabilities.portabilityBlockers.length === 0) {\n issues.push({ code: \"portability_reason_missing\", severity: \"error\", message: \"Non-exportable Tasksets must declare a portability blocker.\", path: \"capabilities.portabilityBlockers\" });\n }\n if (capabilities.compatibleMethods.includes(\"grpo\") && !capabilities.rewardKinds.some((kind) => kind === \"exact\" || kind === \"deterministic\" || kind === \"model_judge\")) {\n issues.push({ code: \"grpo_reward_missing\", severity: \"error\", message: \"GRPO compatibility requires a scalar reward kind.\", path: \"capabilities.rewardKinds\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"sft\") && taskset.learningSignals.demonstrations.length === 0) {\n issues.push({ code: \"sft_demonstrations_missing\", severity: \"error\", message: \"SFT compatibility requires approved demonstrations.\", path: \"learningSignals.demonstrations\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"dpo\") && taskset.learningSignals.preferences.length === 0) {\n issues.push({ code: \"dpo_preferences_missing\", severity: \"error\", message: \"DPO compatibility requires chosen and rejected response pairs.\", path: \"learningSignals.preferences\" });\n }\n if (\n taskset\n && (taskset.capabilities.compatibleMethods.includes(\"grpo\") || taskset.capabilities.compatibleMethods.includes(\"ppo\"))\n && !taskset.learningSignals.rewards.some((reward) => reward.executable)\n && !taskset.graders.some(grader => grader.rewardEligible && grader.weight > 0 && grader.kind !== \"human\")\n ) {\n issues.push({ code: \"online_reward_not_executable\", severity: \"error\", message: \"GRPO/PPO compatibility requires an executable scalar reward.\", path: \"learningSignals.rewards\" });\n }\n}\n"],"mappings":"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","names":["z","TasksetMetricPolicySchema","IdSchema","z","TimestampSchema","HashSchema","MetadataSchema","TasksetMetricPolicySchema"]}
@@ -2,7 +2,7 @@ import {
2
2
  TasksetSchema,
3
3
  computeTasksetHash,
4
4
  createTasksetDraft
5
- } from "./chunk-GAIDBPFY.js";
5
+ } from "./chunk-ONGOAEY6.js";
6
6
  import {
7
7
  GraderFixtureSchema,
8
8
  GraderSpecSchema,
@@ -11,7 +11,7 @@ import {
11
11
  decodeTasksetPackageFile,
12
12
  resolveTasksetPackageInstructions,
13
13
  validateTasksetPackage
14
- } from "./chunk-MO4HAJZG.js";
14
+ } from "./chunk-2XLKMZH5.js";
15
15
  import {
16
16
  contentHash
17
17
  } from "./chunk-H3JZ3P5T.js";
@@ -142,6 +142,15 @@ function prepareImportedTasksetPackage(input) {
142
142
  const fixtures = GraderFixtureSchema.array().max(1e5).parse(authoring?.graderFixtures ?? []);
143
143
  const kind = release.environment.kind === "text" ? "chat" : release.environment.kind === "custom_program" ? "program" : release.environment.kind;
144
144
  const stagingPaths = z2.record(z2.string(), z2.record(z2.string(), z2.string())).parse(release.metadata.workAssetStagingPaths ?? {});
145
+ const environmentResources = TasksetEnvironmentResourceSchema.array().max(1e4).parse(release.metadata.environmentResources ?? []);
146
+ const policyResources = environmentResources.filter((resource) => resource.visibility === "policy_visible").map((resource) => {
147
+ const matches = value.files.filter((file) => file.asset.path === resource.path);
148
+ if (matches.length !== 1 || matches[0].asset.visibility !== "policy") {
149
+ throw new Error(`Policy environment resource requires one public package file: ${resource.path}.`);
150
+ }
151
+ return matches[0].asset;
152
+ });
153
+ const sharedResourceIds = new Set(policyResources.map((asset) => asset.id));
145
154
  const projected = TasksetSchema.parse({
146
155
  schemaVersion: "openpond.taskset.v1",
147
156
  id: release.id,
@@ -159,7 +168,7 @@ function prepareImportedTasksetPackage(input) {
159
168
  ...draft.environment,
160
169
  kind,
161
170
  entrypoint: release.environment.entrypoint,
162
- resources: TasksetEnvironmentResourceSchema.array().max(1e4).parse(release.metadata.environmentResources ?? []),
171
+ resources: environmentResources,
163
172
  stateful: release.environment.stateful,
164
173
  deterministicSeeds: release.environment.deterministicSeeds,
165
174
  toolNames: release.tools.map((tool) => tool.name),
@@ -184,17 +193,20 @@ function prepareImportedTasksetPackage(input) {
184
193
  ...task,
185
194
  schemaVersion: "openpond.taskData.v1",
186
195
  sourceRefs: [source.id],
187
- assets: [...new Map([...task.artifactRefs, ...(task.requiredOutputs ?? []).flatMap((output) => output.submissionMode === "structured_json" && output.schemaRef ? [output.schemaRef] : [])].map((asset) => [asset.id, asset])).values()].map((asset) => ({
196
+ assets: [...new Map([...task.artifactRefs, ...(task.requiredOutputs ?? []).flatMap((output) => output.submissionMode === "structured_json" && output.schemaRef ? [output.schemaRef] : []), ...policyResources].map((asset) => [asset.id, asset])).values()].map((asset) => ({
188
197
  id: asset.id,
189
198
  sourceRefId: source.id,
190
199
  artifactRef: asset.path,
191
200
  fileName: asset.path.split("/").at(-1),
192
- ...stagingPaths[task.id]?.[asset.id] ? { stagingPath: stagingPaths[task.id][asset.id] } : {},
201
+ ...sharedResourceIds.has(asset.id) ? { stagingPath: asset.path } : stagingPaths[task.id]?.[asset.id] ? { stagingPath: stagingPaths[task.id][asset.id] } : {},
193
202
  mediaType: asset.mediaType,
194
203
  sha256: asset.contentHash,
195
204
  sizeBytes: asset.sizeBytes,
196
205
  split: task.split,
197
- metadata: { portableAsset: asset }
206
+ metadata: {
207
+ portableAsset: asset,
208
+ ...sharedResourceIds.has(asset.id) ? { sharedEnvironmentResource: { id: environmentResources.find((resource) => resource.path === asset.path).id, path: asset.path } } : {}
209
+ }
198
210
  })),
199
211
  ...task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map((output) => ({
200
212
  ...output,
@@ -227,7 +239,9 @@ function prepareImportedTasksetPackage(input) {
227
239
  updatedAt: input.createdAt,
228
240
  metadata: {
229
241
  importedPackageHash: value.contentHash,
230
- tasksetOutputContract: release.metadata.tasksetOutputContract ?? null,
242
+ ...release.metadata.tasksetOutputContract === void 0 ? {} : {
243
+ tasksetOutputContract: release.metadata.tasksetOutputContract
244
+ },
231
245
  ...learning ? { learning } : {},
232
246
  portableFileInventory: value.files.map((file) => ({ asset: file.asset, sourcePath: file.asset.path })),
233
247
  ...resources ? {
@@ -252,4 +266,4 @@ export {
252
266
  prepareImportedTasksetPackage,
253
267
  tasksetPackageSourceId
254
268
  };
255
- //# sourceMappingURL=chunk-CMWZZZGW.js.map
269
+ //# sourceMappingURL=chunk-QDYHSJT5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/taskset-package-grader-projection.ts","../src/taskset-package-projection.ts"],"sourcesContent":["import { compileBoundGraders, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { learningRef, verifyLearningTextAsset, RewardFixtureAuthoringFieldsSchema, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { GraderSpec } from \"./taskset-draft-core.js\";\nimport { GraderSpecSchema } from \"./taskset-draft-core.js\";\nimport { decodeTasksetPackageFile, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { z } from \"zod\";\n\n/** Project an ordinary portable package without inventing a Reward binding. */\nexport function importedPackageGraders(value: TasksetPackage) {\n const authoring = value.taskset.metadata.ordinaryAuthoring as { judgeCalibrationFixtures?: unknown } | undefined;\n const calibrationFixtures = z.record(z.string(), z.array(z.string().min(1)).max(100_000)).parse(authoring?.judgeCalibrationFixtures ?? {});\n return value.taskset.graders.map(grader => {\n const base = { ...grader, label: grader.id, metadata: { portableGrader: grader } };\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: grader.verifierRef.path, exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef } });\n if (grader.kind === \"human\" || grader.kind === \"model_judge\") {\n const file = value.files.find(file => file.asset.id === grader.rubricRef.id);\n if (!file) throw new Error(`Imported rubric is missing: ${grader.id}.`);\n const rubric = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n const metadata = { ...base.metadata, portableRubricRef: grader.rubricRef };\n if (grader.kind === \"human\") return GraderSpecSchema.parse({ ...base, rubric, metadata });\n if (!grader.model) throw new Error(`Imported judge ${grader.id} requires its declared model before local preparation.`);\n return GraderSpecSchema.parse({ ...base, rubric, metadata, judge: grader.model, temperature: grader.temperature ?? 0,\n calibrationStatus: \"pending\", calibrationFixtureRefs: calibrationFixtures[grader.id] ?? [] });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind,\n config: grader.kind === \"artifact\" ? { ...grader.config, ...(grader.config.refIncludes === undefined ? {} : { pathIncludes: grader.config.refIncludes }) } : grader.config });\n });\n}\n\nexport function projectLearningBatchGraders(binding: RewardBinding, rewards: RewardRelease[], assets: LearningTextAsset[] = []): GraderSpec[] {\n const resolved = resolveBoundRewards(binding, rewards);\n return compileBoundGraders(binding, rewards).map((grader) => {\n const reward = resolved.find(({ source }) => source.graderId === grader.id)!.reward;\n const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };\n if (grader.kind === \"model_judge\") {\n if (!grader.model || grader.calibrationStatus !== \"passed\" || !reward.calibrationCheckRef || !reward.fixtureSetRef) throw new Error(`Reward ${grader.id} needs a retained passing calibration check before preparation.`);\n const rubric = assets.find(asset => asset.id === grader.rubricRef.id);\n const fixtures = assets.find(asset => asset.id === reward.fixtureSetRef!.id);\n if (!rubric || !fixtures) throw new Error(`Reward ${grader.id} is missing its immutable rubric or calibration fixtures.`);\n const fields = RewardFixtureAuthoringFieldsSchema.array().min(1).max(50).parse(JSON.parse(verifyLearningTextAsset(fixtures, reward.fixtureSetRef)));\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(rubric, grader.rubricRef), judge: grader.model,\n temperature: grader.temperature ?? 0, calibrationFixtureRefs: fields.map(fixture => fixture.id),\n metadata: { ...base.metadata, portableGrader: grader, portableRubricRef: grader.rubricRef,\n calibrationEvidenceHash: reward.calibrationCheckRef.contentHash, calibrationCheckRef: reward.calibrationCheckRef },\n });\n }\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: grader.verifierRef.path, exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef },\n });\n if (grader.kind === \"human\") {\n const asset = assets.find((asset) => asset.id === grader.rubricRef.id);\n if (!asset) throw new Error(`Reward ${grader.id} is missing its immutable rubric.`);\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(asset, grader.rubricRef),\n metadata: { ...base.metadata, portableGrader: grader, portableRubricRef: grader.rubricRef },\n });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind });\n });\n}\n\nexport function learningVerifierModule(hash: string) { return `graders/reward-${hash}.js`; }\n","import { GraderFixtureSchema, TasksetEnvironmentResourceSchema, TasksetSourceRefSchema } from \"./taskset-draft-core.js\";\nimport { TasksetSchema, type GeneratedTaskFile } from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { z } from \"zod\";\nimport { learningRef, taskBatchPackageMetadata, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { createTasksetDraft } from \"./taskset-draft-authoring.js\";\nimport { projectLearningBatchGraders, importedPackageGraders } from \"./taskset-package-grader-projection.js\";\nimport { decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Local identity includes Profile and provenance; portable identity stays in\n * the receipt. Downloading does not approve targets, privacy or licensing. */\nexport function prepareImportedTasksetPackage(input: {\n package: TasksetPackage; profileId: string; name: string; createdAt: string;\n}) {\n const value = validateTasksetPackage(input.package);\n const release = value.taskset;\n const resources = value.modelResources;\n const learning = value.learningResources ? taskBatchPackageMetadata(release) : undefined;\n const source = TasksetSourceRefSchema.parse({\n schemaVersion: \"openpond.uploadedFileDatasetSource.v1\", kind: \"uploaded_file\",\n id: `package-source-${contentHash({ profileId: input.profileId, packageHash: value.contentHash })}`,\n profileId: input.profileId, title: input.name, sourceHash: value.contentHash, occurredAt: input.createdAt,\n licensingStatus: \"pending\", secretScanStatus: \"pending\", piiScanStatus: \"pending\",\n originalFileNames: [\"taskset-package.json\"], mediaTypes: [\"application/json\"], sourceFileHashes: [value.contentHash],\n totalBytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, parserVersion: \"openpond.tasksetPackage.v1\", metadata: {},\n });\n const draft = createTasksetDraft({ profileId: input.profileId, id: `${release.id}-import`, name: input.name, now: input.createdAt });\n const files: GeneratedTaskFile[] = [];\n for (const grader of release.graders) if (grader.kind === \"custom_verifier\") {\n const asset = resources?.assets.find(asset => asset.id === grader.verifierRef.id);\n const file = value.files.find(file => file.asset.id === grader.verifierRef.id);\n if (!file) throw new Error(`Imported verifier source is missing: ${grader.id}.`);\n const name = grader.verifierRef.path;\n if (!files.some(file => file.path === name)) files.push({ path: name, role: \"verifier\", content: asset ? verifyLearningTextAsset(asset, grader.verifierRef) : new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file)) });\n }\n const authoring = (release.metadata.ordinaryAuthoring ?? release.metadata.starterAuthoring) as { graderFixtures?: unknown } | undefined;\n const fixtures = GraderFixtureSchema.array().max(100_000).parse(authoring?.graderFixtures ?? []);\n const kind = release.environment.kind === \"text\" ? \"chat\" : release.environment.kind === \"custom_program\" ? \"program\" : release.environment.kind;\n const stagingPaths = z.record(z.string(), z.record(z.string(), z.string())).parse(release.metadata.workAssetStagingPaths ?? {});\n const environmentResources = TasksetEnvironmentResourceSchema.array().max(10_000).parse(release.metadata.environmentResources ?? []);\n // Work mounts TaskData.assets, not resource declarations. Materialize only\n // declared public files; private verifier/context files stay evaluator-owned.\n const policyResources = environmentResources.filter(resource => resource.visibility === \"policy_visible\").map(resource => {\n const matches = value.files.filter(file => file.asset.path === resource.path);\n if (matches.length !== 1 || matches[0]!.asset.visibility !== \"policy\") {\n throw new Error(`Policy environment resource requires one public package file: ${resource.path}.`);\n }\n return matches[0]!.asset;\n });\n const sharedResourceIds = new Set(policyResources.map(asset => asset.id));\n const projected = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\", id: release.id, revision: release.revision,\n profileId: input.profileId, profileRelease: null, createImproveRunId: null,\n name: input.name, objective: resolveTasksetPackageInstructions(value), status: \"needs_review\",\n sourceRefs: [source], datasetArtifact: null, policy: release.policy,\n environment: { ...draft.environment, kind, entrypoint: release.environment.entrypoint,\n resources: environmentResources,\n stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds,\n toolNames: release.tools.map(tool => tool.name), defaultTimeoutMs: release.environment.defaultTimeoutMs,\n networkPolicy: release.environment.networkPolicy, metadata: {\n runtimeSourceTasksetId: tasksetPackageSourceId(input.profileId, value.contentHash),\n portableEnvironment: release.environment, portableTools: release.tools,\n portableExecutionResources: { environment: value.environment, verifierSet: value.verifierSet },\n } },\n capabilities: { ...draft.capabilities, taskKind: kind === \"chat\" ? \"chat\" : kind === \"program\" ? \"custom_program\" : \"single_agent\",\n compatibleMethods: [\"none\"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful,\n rewardKinds: [...new Set(release.graders.map(grader => grader.kind === \"human\" ? \"human\" : grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))],\n },\n tasks: release.tasks.map(task => ({ ...task, schemaVersion: \"openpond.taskData.v1\", sourceRefs: [source.id],\n assets: [...new Map([...task.artifactRefs, ...(task.requiredOutputs ?? []).flatMap(output => output.submissionMode === \"structured_json\" && output.schemaRef ? [output.schemaRef] : []), ...policyResources].map(asset => [asset.id, asset])).values()].map(asset => ({ id: asset.id, sourceRefId: source.id, artifactRef: asset.path,\n fileName: asset.path.split(\"/\").at(-1)!, ...(sharedResourceIds.has(asset.id) ? { stagingPath: asset.path } : stagingPaths[task.id]?.[asset.id] ? { stagingPath: stagingPaths[task.id]![asset.id] } : {}),\n mediaType: asset.mediaType, sha256: asset.contentHash,\n sizeBytes: asset.sizeBytes, split: task.split, metadata: { portableAsset: asset,\n ...(sharedResourceIds.has(asset.id) ? { sharedEnvironmentResource: { id: environmentResources.find(resource => resource.path === asset.path)!.id, path: asset.path } } : {}) } })),\n ...(task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map(output => ({ ...output,\n schemaRef: output.schemaRef?.id ?? null, maxBytes: output.maxBytes ?? undefined })) } : {}),\n metadata: { portableTaskRecord: task, exampleOrigin: \"imported\" },\n })),\n graders: resources ? projectLearningBatchGraders(resources.rewardBinding, resources.rewards, resources.assets)\n : learning ? projectLearningBatchGraders(learning.binding, learning.rewards, value.learningResources!.assets) : importedPackageGraders(value),\n graderFixtures: fixtures, learningSignals: draft.learningSignals,\n ...(release.metrics ? { metrics: release.metrics } : {}),\n authoringProvenance: { schemaVersion: \"openpond.taskAuthoringProvenance.v1\", model: null, modelConfig: {},\n skillHash: contentHash(\"openpond-package-import-v1\"), promptTemplateVersion: \"package-import-v1\", buildIntent: \"discovery\",\n buildSpecification: null, evidenceHashes: [value.contentHash], tasksetSdkVersion: \"package-import-v1\",\n sourceCommit: null, repairHistory: [], createdAt: input.createdAt },\n readiness: null, contentHash: \"00000000\", createdAt: input.createdAt, updatedAt: input.createdAt,\n metadata: { importedPackageHash: value.contentHash,\n ...(release.metadata.tasksetOutputContract === undefined ? {} : {\n tasksetOutputContract: release.metadata.tasksetOutputContract,\n }),\n ...(learning ? { learning } : {}),\n portableFileInventory: value.files.map(file => ({ asset: file.asset, sourcePath: file.asset.path })),\n ...(resources ? { taskDefinition: learningRef(resources.taskDefinition),\n rewardBinding: learningRef(resources.rewardBinding), rewardExecution: { binding: resources.rewardBinding, rewards: resources.rewards } } : {}),\n portableCapabilities: release.capabilities, derivedPortableMetadata: release.metadata,\n ...(release.metadata.modelTasksetDerivation ? { modelTasksetDerivation: release.metadata.modelTasksetDerivation } : {}),\n },\n });\n return { package: value, taskset: TasksetSchema.parse({ ...projected, contentHash: computeTasksetHash(projected) }), generatedFiles: files };\n}\n\nexport type PreparedImportedTasksetPackage = ReturnType<typeof prepareImportedTasksetPackage> & { reuseExisting?: boolean };\n\n/** Stable source identity; it is never an authorization or object-store pointer. */\nexport function tasksetPackageSourceId(profileId: string, packageHash: string): string {\n return `package-${contentHash({ profileId, packageHash })}`;\n}\n"],"mappings":"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","names":["file","asset","z","learningRef","verifyLearningTextAsset","asset","file","verifyLearningTextAsset","z","learningRef"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ExperimentImprovementOptionsSchema
3
- } from "./chunk-XON75UFN.js";
3
+ } from "./chunk-SER76PQ7.js";
4
4
  import {
5
5
  EvaluationCoordinationTransport
6
6
  } from "./chunk-3B5KSH3V.js";
@@ -264,4 +264,4 @@ export {
264
264
  AdvancedRefinerEvaluationAccountingSchema,
265
265
  OpenPondAdvancedRefinerEvaluationClient
266
266
  };
267
- //# sourceMappingURL=chunk-VHGC44HA.js.map
267
+ //# sourceMappingURL=chunk-RDL6QIQO.js.map
@@ -2,14 +2,14 @@ import {
2
2
  GeneratedTaskFileSchema,
3
3
  TasksetReadinessReportSchema,
4
4
  TrainingPathRecommendationSchema
5
- } from "./chunk-GAIDBPFY.js";
5
+ } from "./chunk-ONGOAEY6.js";
6
6
  import {
7
7
  GraderFixtureLabelSchema,
8
8
  GraderSpecSchema,
9
9
  TaskPolicyBoundarySchema,
10
10
  TasksetCapabilityManifestSchema,
11
11
  TasksetSplitSchema
12
- } from "./chunk-MO4HAJZG.js";
12
+ } from "./chunk-2XLKMZH5.js";
13
13
 
14
14
  // src/task-design-contracts.ts
15
15
  import { z } from "zod";
@@ -97,4 +97,4 @@ export {
97
97
  TaskExampleProposalSchema,
98
98
  TaskDesignProposalSchema
99
99
  };
100
- //# sourceMappingURL=chunk-LHX7ENKZ.js.map
100
+ //# sourceMappingURL=chunk-S2IASCGW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ExperimentScoringRequestSchema
3
- } from "./chunk-53LLNDXF.js";
3
+ } from "./chunk-VQGTYGZH.js";
4
4
  import {
5
5
  ImmutableReleaseRefSchema,
6
6
  contentHash
@@ -141,4 +141,4 @@ export {
141
141
  verifyExperimentImprovementHumanOptions,
142
142
  sealExperimentImprovementHumanOptions
143
143
  };
144
- //# sourceMappingURL=chunk-XON75UFN.js.map
144
+ //# sourceMappingURL=chunk-SER76PQ7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RunExperimentSchema
3
- } from "./chunk-WMIKJGXW.js";
3
+ } from "./chunk-3VGTVZHL.js";
4
4
  import {
5
5
  contentHash
6
6
  } from "./chunk-H3JZ3P5T.js";
@@ -136,4 +136,4 @@ export {
136
136
  CandidateEvaluationPreparationSchema,
137
137
  CandidateEvaluationControlSchema
138
138
  };
139
- //# sourceMappingURL=chunk-ETX25FTB.js.map
139
+ //# sourceMappingURL=chunk-SMHZT6RM.js.map
@@ -8,7 +8,7 @@ import {
8
8
  ConnectedStartingAssetsRequestSchema,
9
9
  DatasetWorkspaceReceiptSchema,
10
10
  verifyConnectedStartingAssetsReceipt
11
- } from "./chunk-EFUT3XKW.js";
11
+ } from "./chunk-ETFWUMEJ.js";
12
12
  import {
13
13
  fetchConnectedJson
14
14
  } from "./chunk-O6FKHAWN.js";
@@ -650,4 +650,4 @@ export {
650
650
  summarizeCollectorCoverage2 as summarizeCollectorCoverage,
651
651
  hashCollectorEligibleBoundaries
652
652
  };
653
- //# sourceMappingURL=chunk-24N6A6SF.js.map
653
+ //# sourceMappingURL=chunk-SQBYHWZU.js.map
@@ -5,16 +5,16 @@ import {
5
5
  } from "./chunk-GPQLBVQC.js";
6
6
  import {
7
7
  AuthoredTasksetFileInventorySchema
8
- } from "./chunk-B5XTGEBE.js";
8
+ } from "./chunk-FPA3AVCP.js";
9
9
  import {
10
10
  configuredTasksetDraftFiles,
11
11
  createTasksetDraftWorkspace,
12
12
  decodeTasksetDraftWorkspaceFile,
13
13
  isManagedTasksetDraftFilePath
14
- } from "./chunk-LR5CTOC5.js";
14
+ } from "./chunk-XF3JR72U.js";
15
15
  import {
16
16
  TasksetDraftSchema
17
- } from "./chunk-GAIDBPFY.js";
17
+ } from "./chunk-ONGOAEY6.js";
18
18
  import {
19
19
  compileModelTasksetReward,
20
20
  createTasksetPackage,
@@ -22,7 +22,7 @@ import {
22
22
  resolveTasksetPackageExecution,
23
23
  resolveTasksetPackageInstructions,
24
24
  validateTasksetPackage
25
- } from "./chunk-MO4HAJZG.js";
25
+ } from "./chunk-2XLKMZH5.js";
26
26
  import {
27
27
  ModelTasksetDraftPreparationSchema,
28
28
  TasksetDraftFilePathSchema
@@ -432,4 +432,4 @@ export {
432
432
  prepareTasksetDraftSource,
433
433
  materializeTasksetDraftWorkspace
434
434
  };
435
- //# sourceMappingURL=chunk-DF2QXVZ3.js.map
435
+ //# sourceMappingURL=chunk-VBVFE33M.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ExperimentFieldMappingsSchema,
3
3
  ExperimentGraderPinSchema
4
- } from "./chunk-QRS7Y3EM.js";
4
+ } from "./chunk-B2MKB7NB.js";
5
5
  import {
6
6
  ImmutableReleaseRefSchema,
7
7
  contentHash
@@ -67,4 +67,4 @@ export {
67
67
  ExperimentScoringPassSchema,
68
68
  verifyExperimentScoringPass
69
69
  };
70
- //# sourceMappingURL=chunk-53LLNDXF.js.map
70
+ //# sourceMappingURL=chunk-VQGTYGZH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  ExperimentImprovementTestRecipeSchema,
7
7
  verifyExperimentImprovementHumanOptions,
8
8
  verifyExperimentImprovementState
9
- } from "./chunk-XON75UFN.js";
9
+ } from "./chunk-SER76PQ7.js";
10
10
  import {
11
11
  HarnessPolicySourcePackageSchema,
12
12
  validateHarnessPolicySourcePackage
@@ -157,4 +157,4 @@ export {
157
157
  HostedProfileCandidateCommandSchema,
158
158
  ExperimentImprovementClient
159
159
  };
160
- //# sourceMappingURL=chunk-OR3TMIJN.js.map
160
+ //# sourceMappingURL=chunk-VTAGUWXH.js.map
@@ -5,10 +5,10 @@ import {
5
5
  computeTasksetHash,
6
6
  draftPublishIssues,
7
7
  validateTaskset
8
- } from "./chunk-GAIDBPFY.js";
8
+ } from "./chunk-ONGOAEY6.js";
9
9
  import {
10
10
  TaskDataRecordSchema
11
- } from "./chunk-MO4HAJZG.js";
11
+ } from "./chunk-2XLKMZH5.js";
12
12
  import {
13
13
  TasksetDraftFileContentSchema,
14
14
  TasksetDraftFileMutationSchema,
@@ -487,4 +487,4 @@ export {
487
487
  tasksetDraftFromTaskset,
488
488
  publishTasksetDraft
489
489
  };
490
- //# sourceMappingURL=chunk-LR5CTOC5.js.map
490
+ //# sourceMappingURL=chunk-XF3JR72U.js.map