openpond-sdk 0.12.8 → 0.12.10

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 (146) hide show
  1. package/TRAINING_PROTOCOL.md +40 -0
  2. package/TRAINING_WORKFLOWS.md +44 -10
  3. package/dist/advanced-refiner-evaluations.js +8 -7
  4. package/dist/candidate-evaluations.js +7 -6
  5. package/dist/{chunk-MGFI4226.js → chunk-2DK7UBAG.js} +3 -3
  6. package/dist/{chunk-U4QIGSP5.js → chunk-4L556MYM.js} +3 -3
  7. package/dist/{chunk-MRUDFIB6.js → chunk-5QMREXMU.js} +6 -4
  8. package/dist/{chunk-MRUDFIB6.js.map → chunk-5QMREXMU.js.map} +1 -1
  9. package/dist/{chunk-UWM2ZPGS.js → chunk-7FYPFHCQ.js} +3 -3
  10. package/dist/{chunk-RFKZSSLB.js → chunk-7WKCQ4V5.js} +5 -3
  11. package/dist/{chunk-RFKZSSLB.js.map → chunk-7WKCQ4V5.js.map} +1 -1
  12. package/dist/chunk-B3ZHJ2KK.js +152 -0
  13. package/dist/chunk-B3ZHJ2KK.js.map +1 -0
  14. package/dist/{chunk-YSEYPMQ3.js → chunk-BQ2C2Y54.js} +12 -154
  15. package/dist/chunk-BQ2C2Y54.js.map +1 -0
  16. package/dist/{chunk-HYCHLMP7.js → chunk-DMN6EF3R.js} +2 -2
  17. package/dist/{chunk-QVLJFJBU.js → chunk-ESW25WSD.js} +6 -6
  18. package/dist/chunk-EZME7DV4.js +161 -0
  19. package/dist/chunk-EZME7DV4.js.map +1 -0
  20. package/dist/{chunk-UMK6DH75.js → chunk-FC56EMHT.js} +6 -4
  21. package/dist/{chunk-UMK6DH75.js.map → chunk-FC56EMHT.js.map} +1 -1
  22. package/dist/{chunk-YP5DXGGC.js → chunk-GIEST52U.js} +2 -2
  23. package/dist/{chunk-BWFG46HX.js → chunk-GRQWKATA.js} +2 -2
  24. package/dist/chunk-GX6KMHW2.js +108 -0
  25. package/dist/chunk-GX6KMHW2.js.map +1 -0
  26. package/dist/{chunk-WYR3MZHU.js → chunk-HDKP6KE2.js} +2 -2
  27. package/dist/{chunk-EEZ5YHJQ.js → chunk-ICFFZ4WC.js} +3 -3
  28. package/dist/{chunk-EWRWGFKD.js → chunk-IIQENUOK.js} +6 -4
  29. package/dist/{chunk-EWRWGFKD.js.map → chunk-IIQENUOK.js.map} +1 -1
  30. package/dist/{chunk-LUFOAMN5.js → chunk-LKKKTBLL.js} +2 -2
  31. package/dist/{chunk-CJDEVI3T.js → chunk-LT2YQCZI.js} +5 -3
  32. package/dist/{chunk-CJDEVI3T.js.map → chunk-LT2YQCZI.js.map} +1 -1
  33. package/dist/{chunk-QHCY4MBG.js → chunk-PKW3II5M.js} +2 -2
  34. package/dist/{chunk-XL44IXBO.js → chunk-PT72OARU.js} +5 -5
  35. package/dist/{chunk-TWJYL5YF.js → chunk-QQ444G6A.js} +5 -5
  36. package/dist/{chunk-D3WOJTUY.js → chunk-RYDUAY52.js} +4 -14
  37. package/dist/chunk-RYDUAY52.js.map +1 -0
  38. package/dist/chunk-U2KGUAIS.js +18 -0
  39. package/dist/chunk-U2KGUAIS.js.map +1 -0
  40. package/dist/{chunk-IOZCYSJ6.js → chunk-UAYXORU5.js} +2 -2
  41. package/dist/{chunk-TZREEZ4C.js → chunk-WEL535AI.js} +9 -9
  42. package/dist/{chunk-EYMZQML2.js → chunk-WOD72SFI.js} +525 -484
  43. package/dist/chunk-WOD72SFI.js.map +1 -0
  44. package/dist/{chunk-GGG6H4MK.js → chunk-XJKGCU2K.js} +2 -2
  45. package/dist/{chunk-GZSQIOAH.js → chunk-XNRM3QGR.js} +6 -6
  46. package/dist/{chunk-CZXN63A4.js → chunk-ZZZU6XER.js} +2 -2
  47. package/dist/connected-evidence.js +18 -15
  48. package/dist/dataset-workspaces.js +21 -18
  49. package/dist/dataset-workspaces.js.map +1 -1
  50. package/dist/errors.js +13 -0
  51. package/dist/errors.js.map +1 -0
  52. package/dist/experiment-evaluation-schedules.js +22 -19
  53. package/dist/experiment-improvements.js +9 -8
  54. package/dist/experiments.js +22 -19
  55. package/dist/index.js +63 -58
  56. package/dist/index.js.map +1 -1
  57. package/dist/learning.js +4 -2
  58. package/dist/learning.js.map +1 -1
  59. package/dist/model-projects.js +6 -4
  60. package/dist/model-starter-attempts.js +3 -2
  61. package/dist/model-starter-catalog.js +13 -10
  62. package/dist/model-starter-catalog.js.map +1 -1
  63. package/dist/model-starters.js +13 -10
  64. package/dist/model-taskset-runs.js +4 -3
  65. package/dist/model-taskset-runs.js.map +1 -1
  66. package/dist/post-training.js +7 -6
  67. package/dist/taskset-drafts.js +17 -14
  68. package/dist/taskset-drafts.js.map +1 -1
  69. package/dist/taskset-packages.js +24 -21
  70. package/dist/tool-learning-local-store.js +202 -0
  71. package/dist/tool-learning-local-store.js.map +1 -0
  72. package/dist/tool-learning.js +3 -0
  73. package/dist/tool-learning.js.map +1 -0
  74. package/dist/training-bundle.js +31 -16
  75. package/dist/training-bundle.js.map +1 -1
  76. package/dist/training-hardware.js +23 -0
  77. package/dist/training-hardware.js.map +1 -0
  78. package/dist/training.js +30 -12
  79. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +40 -40
  80. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +20 -20
  81. package/dist/types/packages/sdk/src/errors.d.ts +3 -0
  82. package/dist/types/packages/sdk/src/errors.d.ts.map +1 -0
  83. package/dist/types/packages/sdk/src/experiment-client.d.ts +636 -636
  84. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +1622 -1622
  85. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +54 -54
  86. package/dist/types/packages/sdk/src/learning-client.d.ts +1 -6
  87. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  88. package/dist/types/packages/sdk/src/learning-error.d.ts +7 -0
  89. package/dist/types/packages/sdk/src/learning-error.d.ts.map +1 -0
  90. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +2 -0
  91. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  92. package/dist/types/packages/sdk/src/model-projects.d.ts +24 -0
  93. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  94. package/dist/types/packages/sdk/src/model-starters.d.ts +6 -0
  95. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  96. package/dist/types/packages/sdk/src/post-training.d.ts +58 -54
  97. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  98. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +20 -20
  99. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +2 -0
  100. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  101. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +6 -0
  102. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  103. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +20 -20
  104. package/dist/types/packages/sdk/src/tool-learning-local-store.d.ts +72 -0
  105. package/dist/types/packages/sdk/src/tool-learning-local-store.d.ts.map +1 -0
  106. package/dist/types/packages/sdk/src/tool-learning.d.ts +3 -0
  107. package/dist/types/packages/sdk/src/tool-learning.d.ts.map +1 -0
  108. package/dist/types/packages/sdk/src/training-compute-selection.d.ts +2 -0
  109. package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -1
  110. package/dist/types/packages/sdk/src/training-estimates.d.ts +9 -1
  111. package/dist/types/packages/sdk/src/training-estimates.d.ts.map +1 -1
  112. package/dist/types/packages/sdk/src/training-hardware.d.ts +886 -0
  113. package/dist/types/packages/sdk/src/training-hardware.d.ts.map +1 -0
  114. package/dist/types/packages/sdk/src/training-preparations.d.ts +22 -0
  115. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  116. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +2 -0
  117. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
  118. package/dist/types/packages/sdk/src/training-supervised.d.ts +101 -0
  119. package/dist/types/packages/sdk/src/training-supervised.d.ts.map +1 -0
  120. package/dist/types/packages/sdk/src/training-transport.d.ts +24 -0
  121. package/dist/types/packages/sdk/src/training-transport.d.ts.map +1 -0
  122. package/dist/types/packages/sdk/src/training.d.ts +34 -16
  123. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  124. package/examples/training/continual.ts +71 -9
  125. package/package.json +18 -2
  126. package/dist/chunk-D3WOJTUY.js.map +0 -1
  127. package/dist/chunk-EYMZQML2.js.map +0 -1
  128. package/dist/chunk-YSEYPMQ3.js.map +0 -1
  129. /package/dist/{chunk-MGFI4226.js.map → chunk-2DK7UBAG.js.map} +0 -0
  130. /package/dist/{chunk-U4QIGSP5.js.map → chunk-4L556MYM.js.map} +0 -0
  131. /package/dist/{chunk-UWM2ZPGS.js.map → chunk-7FYPFHCQ.js.map} +0 -0
  132. /package/dist/{chunk-HYCHLMP7.js.map → chunk-DMN6EF3R.js.map} +0 -0
  133. /package/dist/{chunk-QVLJFJBU.js.map → chunk-ESW25WSD.js.map} +0 -0
  134. /package/dist/{chunk-YP5DXGGC.js.map → chunk-GIEST52U.js.map} +0 -0
  135. /package/dist/{chunk-BWFG46HX.js.map → chunk-GRQWKATA.js.map} +0 -0
  136. /package/dist/{chunk-WYR3MZHU.js.map → chunk-HDKP6KE2.js.map} +0 -0
  137. /package/dist/{chunk-EEZ5YHJQ.js.map → chunk-ICFFZ4WC.js.map} +0 -0
  138. /package/dist/{chunk-LUFOAMN5.js.map → chunk-LKKKTBLL.js.map} +0 -0
  139. /package/dist/{chunk-QHCY4MBG.js.map → chunk-PKW3II5M.js.map} +0 -0
  140. /package/dist/{chunk-XL44IXBO.js.map → chunk-PT72OARU.js.map} +0 -0
  141. /package/dist/{chunk-TWJYL5YF.js.map → chunk-QQ444G6A.js.map} +0 -0
  142. /package/dist/{chunk-IOZCYSJ6.js.map → chunk-UAYXORU5.js.map} +0 -0
  143. /package/dist/{chunk-TZREEZ4C.js.map → chunk-WEL535AI.js.map} +0 -0
  144. /package/dist/{chunk-GGG6H4MK.js.map → chunk-XJKGCU2K.js.map} +0 -0
  145. /package/dist/{chunk-GZSQIOAH.js.map → chunk-XNRM3QGR.js.map} +0 -0
  146. /package/dist/{chunk-CZXN63A4.js.map → chunk-ZZZU6XER.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  prepareImportedTasksetPackage,
3
3
  projectLearningBatchGraders
4
- } from "./chunk-EEZ5YHJQ.js";
4
+ } from "./chunk-ICFFZ4WC.js";
5
5
  import {
6
6
  projectPortableTaskRecord,
7
7
  resolvePortableTasksetRewardExecution
@@ -10,15 +10,15 @@ import {
10
10
  TasksetDraftOutputContractSchema,
11
11
  TasksetSchema,
12
12
  computeTasksetHash
13
- } from "./chunk-IOZCYSJ6.js";
13
+ } from "./chunk-UAYXORU5.js";
14
14
  import {
15
15
  LearningBatchDatasetSourceRefSchema,
16
16
  MAX_TASKSET_PACKAGE_BYTES,
17
17
  decodeTasksetPackageFile,
18
18
  validateTasksetPackage
19
- } from "./chunk-RFKZSSLB.js";
20
- import "./chunk-TK3DXH7A.js";
19
+ } from "./chunk-7WKCQ4V5.js";
21
20
  import {
21
+ ManagedSftRecipeSchema,
22
22
  TRAINING_EVALUATION_SOURCE_PATH,
23
23
  TrainingCapabilitiesSchema,
24
24
  TrainingEvaluationSourceSchema,
@@ -30,11 +30,15 @@ import {
30
30
  trainingEvaluationSourceRef,
31
31
  trainingInputArtifactUploadHash,
32
32
  trainingJobSubmissionHash
33
- } from "./chunk-EYMZQML2.js";
33
+ } from "./chunk-WOD72SFI.js";
34
+ import "./chunk-EZME7DV4.js";
35
+ import "./chunk-GX6KMHW2.js";
36
+ import "./chunk-TK3DXH7A.js";
37
+ import "./chunk-H3367ISL.js";
34
38
  import {
35
39
  TrainingHandoffOriginSchema
36
- } from "./chunk-MRUDFIB6.js";
37
- import "./chunk-UWM2ZPGS.js";
40
+ } from "./chunk-5QMREXMU.js";
41
+ import "./chunk-7FYPFHCQ.js";
38
42
  import {
39
43
  HarnessSourceSelectionSchema,
40
44
  createAgentSnapshot,
@@ -42,13 +46,13 @@ import {
42
46
  validateHarnessPolicySourcePackage,
43
47
  validateHarnessSourcePackage
44
48
  } from "./chunk-Q4TKI2MV.js";
45
- import "./chunk-H3367ISL.js";
46
- import "./chunk-WYR3MZHU.js";
47
- import "./chunk-EWRWGFKD.js";
48
- import "./chunk-CJDEVI3T.js";
49
+ import "./chunk-HDKP6KE2.js";
50
+ import "./chunk-IIQENUOK.js";
51
+ import "./chunk-LT2YQCZI.js";
49
52
  import {
50
53
  TrainingGpuSelectionSchema
51
- } from "./chunk-YSEYPMQ3.js";
54
+ } from "./chunk-BQ2C2Y54.js";
55
+ import "./chunk-B3ZHJ2KK.js";
52
56
  import "./chunk-CL3IOOVL.js";
53
57
  import {
54
58
  ImmutableReleaseRefSchema,
@@ -371,6 +375,7 @@ async function prepareManagedTrainingSubmission(raw) {
371
375
  const manifest = HarnessRunManifestSchema.parse(input.manifest);
372
376
  const bundle = ResolvedTrainingBundleManifestSchema.parse(input.bundleManifest);
373
377
  const qualification = input.executionMode === "qualification";
378
+ const gpuSelection = input.gpuSelection ?? project.trainingSetup.managedGpuSelection ? TrainingGpuSelectionSchema.parse(input.gpuSelection ?? project.trainingSetup.managedGpuSelection) : void 0;
374
379
  const physicalPlacement = input.physicalPlacement ? TrainingPhysicalPlacementSchema.parse(input.physicalPlacement) : void 0;
375
380
  const qualificationGroupSize = manifest.qualificationSamples === void 0 ? null : z2.object({ rollout: z2.object({ groupSize: z2.number().int().min(2).max(32) }).passthrough() }).passthrough().parse(recipe).rollout.groupSize;
376
381
  if (manifest.qualificationSamples !== bundle.qualificationSamples || manifest.qualificationSamples !== void 0 && (!qualification || manifest.qualificationSamples > qualificationGroupSize)) {
@@ -393,8 +398,17 @@ async function prepareManagedTrainingSubmission(raw) {
393
398
  if (!baseModel || baseModel.modelId !== manifest.model.source || baseModel.revision !== manifest.model.revision || baseModel.tokenizerRevision !== manifest.model.tokenizerRevision || baseModel.chatTemplateHash !== manifest.model.chatTemplateHash) {
394
399
  throw new Error("The synced Model Project base Model does not match the Run manifest.");
395
400
  }
396
- if (recipe.method !== "grpo" || contentHash(recipe) !== manifest.recipe.configHash || approval.approvalHash !== manifest.approval.approvalHash || approval.maximumSpendUsd !== manifest.approval.maximumSpendUsd) {
397
- throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");
401
+ if (!["grpo", "sft"].includes(recipe.method) || contentHash(recipe) !== manifest.recipe.configHash || approval.approvalHash !== manifest.approval.approvalHash || approval.maximumSpendUsd !== manifest.approval.maximumSpendUsd) {
402
+ throw new Error("Managed training requires the exact approved supported recipe and spend ceiling.");
403
+ }
404
+ if (recipe.method === "sft") {
405
+ const supervised = ManagedSftRecipeSchema.parse(recipe);
406
+ if (contentHash(supervised) !== contentHash(recipe))
407
+ throw new Error("SFT recipe must be fully materialized before approval.");
408
+ if (qualification || input.resumeFrom || physicalPlacement || (gpuSelection?.gpuCount ?? 1) !== 1)
409
+ throw new Error(
410
+ "Initial managed SFT requires a fresh single-GPU run without reuse-only placement or rollout qualification."
411
+ );
398
412
  }
399
413
  const limits = z2.object({ wallTimeMs: z2.number().positive() }).parse(recipe.resourceLimits);
400
414
  if (input.idempotencyKey !== void 0)
@@ -472,7 +486,8 @@ async function prepareManagedTrainingSubmission(raw) {
472
486
  resumeFrom: input.resumeFrom
473
487
  },
474
488
  requestedCapabilities: [
475
- { id: qualification ? "managed_rl.policy.qualification" : "managed_rl.policy.grpo", version: "1", required: true },
489
+ { id: qualification ? "managed_rl.policy.qualification" : recipe.method === "sft" ? "managed_training.sft" : "managed_rl.policy.grpo", version: "1", required: true },
490
+ ...gpuSelection?.gpuCount === 2 ? [{ id: "managed_rl.policy.data_parallel", version: "1", required: true }] : [],
476
491
  {
477
492
  id: `managed_rl.rollouts.${manifest.runtimeTarget.placement}`,
478
493
  version: "1",
@@ -481,7 +496,7 @@ async function prepareManagedTrainingSubmission(raw) {
481
496
  ...project.trainingSetup.managedGpuRequirement === "h100_hbm3" ? [{ id: "managed_rl.gpu.h100_hbm3", version: "1", required: true }] : []
482
497
  ],
483
498
  placementObjective: project.trainingSetup.managedGpuPlacementObjective,
484
- ...input.gpuSelection ?? project.trainingSetup.managedGpuSelection ? { gpuSelection: TrainingGpuSelectionSchema.parse(input.gpuSelection ?? project.trainingSetup.managedGpuSelection) } : {},
499
+ ...gpuSelection ? { gpuSelection } : {},
485
500
  ...physicalPlacement ? { physicalPlacement } : {},
486
501
  budget: {
487
502
  maximumSpendUsd: approval.maximumSpendUsd,