openpond-sdk 0.12.5 → 0.12.7

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 (157) 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-EJZ7HOIS.js → chunk-2XLKMZH5.js} +485 -251
  6. package/dist/chunk-2XLKMZH5.js.map +1 -0
  7. package/dist/{chunk-CAMLCKSF.js → chunk-3SIGXGAE.js} +132 -87
  8. package/dist/chunk-3SIGXGAE.js.map +1 -0
  9. package/dist/{chunk-T3MFWGMX.js → chunk-3VGTVZHL.js} +3 -3
  10. package/dist/{chunk-O54KGALH.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-MJELLVQP.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-F4GITADW.js → chunk-ETFWUMEJ.js} +2 -2
  17. package/dist/{chunk-6KKM2XRR.js → chunk-FPA3AVCP.js} +35 -6
  18. package/dist/chunk-FPA3AVCP.js.map +1 -0
  19. package/dist/{chunk-QFBSNSUL.js → chunk-HRJKDHHG.js} +6 -4
  20. package/dist/chunk-HRJKDHHG.js.map +1 -0
  21. package/dist/{chunk-6GQ3GIAP.js → chunk-HRZLFJXX.js} +3 -3
  22. package/dist/{chunk-BJ5MKLWH.js → chunk-KD6MM67B.js} +6 -6
  23. package/dist/{chunk-RE426Q7Y.js → chunk-LIMTJR3A.js} +3 -3
  24. package/dist/{chunk-ZFYI4P6C.js → chunk-ONGOAEY6.js} +14 -2
  25. package/dist/chunk-ONGOAEY6.js.map +1 -0
  26. package/dist/{chunk-FLNWE5ZA.js → chunk-QDYHSJT5.js} +22 -8
  27. package/dist/chunk-QDYHSJT5.js.map +1 -0
  28. package/dist/{chunk-GWGDWZVN.js → chunk-RDL6QIQO.js} +2 -2
  29. package/dist/{chunk-BGNPKYBJ.js → chunk-S2IASCGW.js} +3 -3
  30. package/dist/{chunk-KKL6OICH.js → chunk-SER76PQ7.js} +2 -2
  31. package/dist/{chunk-6MFFKAU6.js → chunk-SMHZT6RM.js} +2 -2
  32. package/dist/{chunk-BYNVSWIQ.js → chunk-SQBYHWZU.js} +2 -2
  33. package/dist/{chunk-6Y67YHVH.js → chunk-VBVFE33M.js} +5 -5
  34. package/dist/{chunk-DBKCSQVH.js → chunk-VQGTYGZH.js} +2 -2
  35. package/dist/{chunk-25L5IXHA.js → chunk-VTAGUWXH.js} +2 -2
  36. package/dist/{chunk-HOOHJCE7.js → chunk-XF3JR72U.js} +3 -3
  37. package/dist/{chunk-VZPNRPXL.js → chunk-Y3I7SN5W.js} +61 -35
  38. package/dist/chunk-Y3I7SN5W.js.map +1 -0
  39. package/dist/{chunk-XACJ63U4.js → chunk-Z4XGSEKC.js} +577 -249
  40. package/dist/chunk-Z4XGSEKC.js.map +1 -0
  41. package/dist/{chunk-AUNNXJQE.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 +34 -33
  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/sandbox/sandbox-instance-client.d.ts.map +1 -1
  63. package/dist/types/packages/cloud/src/sandbox/url.d.ts +3 -1
  64. package/dist/types/packages/cloud/src/sandbox/url.d.ts.map +1 -1
  65. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +4 -0
  66. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  67. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +2 -0
  68. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -1
  69. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +14 -0
  70. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  71. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +4 -0
  72. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  73. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +4 -0
  74. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  75. package/dist/types/packages/sdk/src/learning-client.d.ts +1 -0
  76. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  77. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts +358 -0
  78. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts.map +1 -0
  79. package/dist/types/packages/sdk/src/learning.d.ts +1 -0
  80. package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
  81. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +24 -0
  82. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  83. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +16 -0
  84. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  85. package/dist/types/packages/sdk/src/model-projects.d.ts +172 -0
  86. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  87. package/dist/types/packages/sdk/src/model-starters.d.ts +84 -1
  88. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  89. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +28 -28
  90. package/dist/types/packages/sdk/src/model-training-defaults.d.ts +14 -0
  91. package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
  92. package/dist/types/packages/sdk/src/post-training.d.ts +46 -0
  93. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  94. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  95. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
  96. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +4 -0
  97. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  98. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +141 -120
  99. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  100. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +4 -0
  101. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  102. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +4 -0
  103. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  104. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +4 -0
  105. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  106. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +51 -0
  107. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  108. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  109. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  110. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  111. package/dist/types/packages/sdk/src/training-compute-selection.d.ts +52 -0
  112. package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -0
  113. package/dist/types/packages/sdk/src/training-estimates.d.ts +1069 -0
  114. package/dist/types/packages/sdk/src/training-estimates.d.ts.map +1 -0
  115. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +40 -40
  116. package/dist/types/packages/sdk/src/training-physical-placement.d.ts +16 -0
  117. package/dist/types/packages/sdk/src/training-physical-placement.d.ts.map +1 -0
  118. package/dist/types/packages/sdk/src/training-preparations.d.ts +248 -0
  119. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  120. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +20 -0
  121. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
  122. package/dist/types/packages/sdk/src/training-queue.d.ts +24 -0
  123. package/dist/types/packages/sdk/src/training-queue.d.ts.map +1 -0
  124. package/dist/types/packages/sdk/src/training-recipe-binding.d.ts.map +1 -1
  125. package/dist/types/packages/sdk/src/training-recovery.d.ts +85 -0
  126. package/dist/types/packages/sdk/src/training-recovery.d.ts.map +1 -0
  127. package/dist/types/packages/sdk/src/training-verifier-assets.d.ts +7 -0
  128. package/dist/types/packages/sdk/src/training-verifier-assets.d.ts.map +1 -0
  129. package/dist/types/packages/sdk/src/training.d.ts +599 -0
  130. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  131. package/package.json +3 -3
  132. package/dist/chunk-6KKM2XRR.js.map +0 -1
  133. package/dist/chunk-CAMLCKSF.js.map +0 -1
  134. package/dist/chunk-EJZ7HOIS.js.map +0 -1
  135. package/dist/chunk-FLNWE5ZA.js.map +0 -1
  136. package/dist/chunk-QFBSNSUL.js.map +0 -1
  137. package/dist/chunk-VZPNRPXL.js.map +0 -1
  138. package/dist/chunk-WQFU635Q.js.map +0 -1
  139. package/dist/chunk-XACJ63U4.js.map +0 -1
  140. package/dist/chunk-ZFYI4P6C.js.map +0 -1
  141. /package/dist/{chunk-T3MFWGMX.js.map → chunk-3VGTVZHL.js.map} +0 -0
  142. /package/dist/{chunk-O54KGALH.js.map → chunk-5T76GARR.js.map} +0 -0
  143. /package/dist/{chunk-MJELLVQP.js.map → chunk-B2MKB7NB.js.map} +0 -0
  144. /package/dist/{chunk-F4GITADW.js.map → chunk-ETFWUMEJ.js.map} +0 -0
  145. /package/dist/{chunk-6GQ3GIAP.js.map → chunk-HRZLFJXX.js.map} +0 -0
  146. /package/dist/{chunk-BJ5MKLWH.js.map → chunk-KD6MM67B.js.map} +0 -0
  147. /package/dist/{chunk-RE426Q7Y.js.map → chunk-LIMTJR3A.js.map} +0 -0
  148. /package/dist/{chunk-GWGDWZVN.js.map → chunk-RDL6QIQO.js.map} +0 -0
  149. /package/dist/{chunk-BGNPKYBJ.js.map → chunk-S2IASCGW.js.map} +0 -0
  150. /package/dist/{chunk-KKL6OICH.js.map → chunk-SER76PQ7.js.map} +0 -0
  151. /package/dist/{chunk-6MFFKAU6.js.map → chunk-SMHZT6RM.js.map} +0 -0
  152. /package/dist/{chunk-BYNVSWIQ.js.map → chunk-SQBYHWZU.js.map} +0 -0
  153. /package/dist/{chunk-6Y67YHVH.js.map → chunk-VBVFE33M.js.map} +0 -0
  154. /package/dist/{chunk-DBKCSQVH.js.map → chunk-VQGTYGZH.js.map} +0 -0
  155. /package/dist/{chunk-25L5IXHA.js.map → chunk-VTAGUWXH.js.map} +0 -0
  156. /package/dist/{chunk-HOOHJCE7.js.map → chunk-XF3JR72U.js.map} +0 -0
  157. /package/dist/{chunk-AUNNXJQE.js.map → chunk-ZGZLN4LH.js.map} +0 -0
@@ -1,5 +1,11 @@
1
1
  export { TrainingAcceptanceGroupReferenceSchema, TrainingAcceptanceGroupSummarySchema, TrainingAcceptanceGroupPageSchema, TrainingAcceptanceGroupQuerySchema, type TrainingAcceptanceGroupReference, type TrainingAcceptanceGroupSummary, type TrainingAcceptanceGroupPage, type TrainingAcceptanceGroupQuery, type TrainingAcceptanceTarget, } from "./training-acceptance.js";
2
2
  import { z } from "zod";
3
+ import { TrainingCheckpointRecoveryRequestSchema } from "./training-recovery.js";
4
+ export { TrainingCheckpointRecoveryRequestSchema, TrainingCheckpointRecoveryResourceApprovalSchema, createTrainingCheckpointRecoveryResourceApproval } from "./training-recovery.js";
5
+ export { TrainingPhysicalPlacementSchema, type TrainingPhysicalPlacement } from "./training-physical-placement.js";
6
+ export { TrainingGpuCatalogSchema, type TrainingGpuCatalog } from "./training-compute-selection.js";
7
+ export { TrainingQueueStatusSchema, type TrainingQueueStatus } from "./training-queue.js";
8
+ export { TrainingGpuSelectionSchema, TrainingEstimateSourceSchema, TrainingEstimateRequestSchema, TrainingEstimateComponentSchema, TrainingEstimateReviewSchema, TrainingEstimateSchema, trainingEstimateSourceIdentity, type TrainingGpuSelection, type TrainingEstimateRequest, type TrainingEstimate, type TrainingEstimateReview, } from "./training-estimates.js";
3
9
  export { TrainingPreparationRequestSchema, TrainingPreparationPlanContentSchema, TrainingPreparationPlanSchema, TrainingPreparationReceiptSchema, TrainingPreparationControlSchema, parseAndVerifyTrainingPreparationReceipt, type TrainingPreparationRequest, type TrainingPreparationPlan, type TrainingPreparationReceipt, type TrainingPreparationControl, } from "./training-preparations.js";
4
10
  export { TrainingPreparationListQuerySchema, TrainingPreparationPageSchema, type TrainingPreparationListQuery, type TrainingPreparationPage, } from "./training-preparations.js";
5
11
  export { TrainingHarnessSourcePublicationSchema } from "./training-harness-sources.js";
@@ -907,6 +913,30 @@ export declare const TrainingJobSubmissionSchema: z.ZodObject<{
907
913
  economical: "economical";
908
914
  fast: "fast";
909
915
  }>;
916
+ gpuSelection: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
917
+ mode: z.ZodLiteral<"automatic">;
918
+ objective: z.ZodEnum<{
919
+ balanced: "balanced";
920
+ economical: "economical";
921
+ fast: "fast";
922
+ }>;
923
+ }, z.core.$strict>, z.ZodObject<{
924
+ mode: z.ZodLiteral<"manual">;
925
+ availabilityId: z.ZodString;
926
+ gpuType: z.ZodString;
927
+ }, z.core.$strict>], "mode">>;
928
+ physicalPlacement: z.ZodOptional<z.ZodObject<{
929
+ mode: z.ZodLiteral<"reuse_only">;
930
+ physicalWorkerId: z.ZodString;
931
+ providerPodId: z.ZodString;
932
+ workerImageDigest: z.ZodString;
933
+ baseProfileSha256: z.ZodString;
934
+ gpuType: z.ZodString;
935
+ sourceJobId: z.ZodString;
936
+ sourceInputManifestSha256: z.ZodString;
937
+ ownerTeamId: z.ZodString;
938
+ deadlineAt: z.ZodString;
939
+ }, z.core.$strict>>;
910
940
  budget: z.ZodObject<{
911
941
  maximumSpendUsd: z.ZodNumber;
912
942
  maximumWallSeconds: z.ZodNumber;
@@ -923,6 +953,32 @@ export declare const TrainingJobSubmissionSchema: z.ZodObject<{
923
953
  }, z.core.$strict>;
924
954
  export declare function trainingJobSubmissionHash(submission: Omit<TrainingJobSubmission, "contentHash"> | TrainingJobSubmission): Promise<string>;
925
955
  export declare function parseAndVerifyTrainingJobSubmission(value: unknown): Promise<TrainingJobSubmission>;
956
+ export declare const TrainingJobRecoverySchema: z.ZodObject<{
957
+ resourceApproval: z.ZodOptional<z.ZodObject<{
958
+ schemaVersion: z.ZodLiteral<"openpond.checkpointRecoveryResourceApproval.v1">;
959
+ ownerUserId: z.ZodString;
960
+ teamId: z.ZodString;
961
+ sourceJobId: z.ZodString;
962
+ sourceJobVersion: z.ZodNumber;
963
+ sourceInputManifestSha256: z.ZodString;
964
+ checkpointId: z.ZodString;
965
+ adapterSha256: z.ZodString;
966
+ resumeSha256: z.ZodString;
967
+ idempotencyKey: z.ZodString;
968
+ approvedAt: z.ZodISODateTime;
969
+ maximumSpendUsd: z.ZodNumber;
970
+ maximumGpuSeconds: z.ZodNumber;
971
+ maximumWallSeconds: z.ZodNumber;
972
+ approvalHash: z.ZodString;
973
+ }, z.core.$strict>>;
974
+ mode: z.ZodOptional<z.ZodLiteral<"evaluation_only">>;
975
+ trainingWorkloadComplete: z.ZodOptional<z.ZodBoolean>;
976
+ sourceJobId: z.ZodString;
977
+ checkpointId: z.ZodString;
978
+ policyVersion: z.ZodNumber;
979
+ completedGroups: z.ZodNumber;
980
+ optimizerMode: z.ZodLiteral<"continue">;
981
+ }, z.core.$strict>;
926
982
  export declare const TrainingJobSchema: z.ZodObject<{
927
983
  schemaVersion: z.ZodLiteral<"openpond.trainingJob.v2">;
928
984
  id: z.ZodString;
@@ -932,6 +988,32 @@ export declare const TrainingJobSchema: z.ZodObject<{
932
988
  reward_model_train: "reward_model_train";
933
989
  }>;
934
990
  executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
991
+ recovery: z.ZodOptional<z.ZodObject<{
992
+ resourceApproval: z.ZodOptional<z.ZodObject<{
993
+ schemaVersion: z.ZodLiteral<"openpond.checkpointRecoveryResourceApproval.v1">;
994
+ ownerUserId: z.ZodString;
995
+ teamId: z.ZodString;
996
+ sourceJobId: z.ZodString;
997
+ sourceJobVersion: z.ZodNumber;
998
+ sourceInputManifestSha256: z.ZodString;
999
+ checkpointId: z.ZodString;
1000
+ adapterSha256: z.ZodString;
1001
+ resumeSha256: z.ZodString;
1002
+ idempotencyKey: z.ZodString;
1003
+ approvedAt: z.ZodISODateTime;
1004
+ maximumSpendUsd: z.ZodNumber;
1005
+ maximumGpuSeconds: z.ZodNumber;
1006
+ maximumWallSeconds: z.ZodNumber;
1007
+ approvalHash: z.ZodString;
1008
+ }, z.core.$strict>>;
1009
+ mode: z.ZodOptional<z.ZodLiteral<"evaluation_only">>;
1010
+ trainingWorkloadComplete: z.ZodOptional<z.ZodBoolean>;
1011
+ sourceJobId: z.ZodString;
1012
+ checkpointId: z.ZodString;
1013
+ policyVersion: z.ZodNumber;
1014
+ completedGroups: z.ZodNumber;
1015
+ optimizerMode: z.ZodLiteral<"continue">;
1016
+ }, z.core.$strict>>;
935
1017
  modelProjectId: z.ZodString;
936
1018
  portableProjectId: z.ZodString;
937
1019
  sourceProjectRevision: z.ZodNumber;
@@ -947,6 +1029,25 @@ export declare const TrainingJobSchema: z.ZodObject<{
947
1029
  stopping: "stopping";
948
1030
  succeeded: "succeeded";
949
1031
  }>;
1032
+ queue: z.ZodOptional<z.ZodObject<{
1033
+ ticketId: z.ZodString;
1034
+ ticketNumber: z.ZodNumber;
1035
+ label: z.ZodLiteral<"Waiting for resources">;
1036
+ position: z.ZodNullable<z.ZodNumber>;
1037
+ positionScope: z.ZodLiteral<"compatible_fair_queue">;
1038
+ enqueuedAt: z.ZodString;
1039
+ asOf: z.ZodString;
1040
+ estimate: z.ZodNullable<z.ZodObject<{
1041
+ revision: z.ZodNumber;
1042
+ estimatedStartAt: z.ZodString;
1043
+ expiresAt: z.ZodString;
1044
+ evidence: z.ZodEnum<{
1045
+ measured_bootstrap: "measured_bootstrap";
1046
+ observed_capacity: "observed_capacity";
1047
+ scheduled_release: "scheduled_release";
1048
+ }>;
1049
+ }, z.core.$strict>>;
1050
+ }, z.core.$strict>>;
950
1051
  phase: z.ZodString;
951
1052
  version: z.ZodNumber;
952
1053
  progress: z.ZodNumber;
@@ -973,6 +1074,32 @@ export declare const TrainingJobPageSchema: z.ZodObject<{
973
1074
  reward_model_train: "reward_model_train";
974
1075
  }>;
975
1076
  executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
1077
+ recovery: z.ZodOptional<z.ZodObject<{
1078
+ resourceApproval: z.ZodOptional<z.ZodObject<{
1079
+ schemaVersion: z.ZodLiteral<"openpond.checkpointRecoveryResourceApproval.v1">;
1080
+ ownerUserId: z.ZodString;
1081
+ teamId: z.ZodString;
1082
+ sourceJobId: z.ZodString;
1083
+ sourceJobVersion: z.ZodNumber;
1084
+ sourceInputManifestSha256: z.ZodString;
1085
+ checkpointId: z.ZodString;
1086
+ adapterSha256: z.ZodString;
1087
+ resumeSha256: z.ZodString;
1088
+ idempotencyKey: z.ZodString;
1089
+ approvedAt: z.ZodISODateTime;
1090
+ maximumSpendUsd: z.ZodNumber;
1091
+ maximumGpuSeconds: z.ZodNumber;
1092
+ maximumWallSeconds: z.ZodNumber;
1093
+ approvalHash: z.ZodString;
1094
+ }, z.core.$strict>>;
1095
+ mode: z.ZodOptional<z.ZodLiteral<"evaluation_only">>;
1096
+ trainingWorkloadComplete: z.ZodOptional<z.ZodBoolean>;
1097
+ sourceJobId: z.ZodString;
1098
+ checkpointId: z.ZodString;
1099
+ policyVersion: z.ZodNumber;
1100
+ completedGroups: z.ZodNumber;
1101
+ optimizerMode: z.ZodLiteral<"continue">;
1102
+ }, z.core.$strict>>;
976
1103
  modelProjectId: z.ZodString;
977
1104
  portableProjectId: z.ZodString;
978
1105
  sourceProjectRevision: z.ZodNumber;
@@ -988,6 +1115,25 @@ export declare const TrainingJobPageSchema: z.ZodObject<{
988
1115
  stopping: "stopping";
989
1116
  succeeded: "succeeded";
990
1117
  }>;
1118
+ queue: z.ZodOptional<z.ZodObject<{
1119
+ ticketId: z.ZodString;
1120
+ ticketNumber: z.ZodNumber;
1121
+ label: z.ZodLiteral<"Waiting for resources">;
1122
+ position: z.ZodNullable<z.ZodNumber>;
1123
+ positionScope: z.ZodLiteral<"compatible_fair_queue">;
1124
+ enqueuedAt: z.ZodString;
1125
+ asOf: z.ZodString;
1126
+ estimate: z.ZodNullable<z.ZodObject<{
1127
+ revision: z.ZodNumber;
1128
+ estimatedStartAt: z.ZodString;
1129
+ expiresAt: z.ZodString;
1130
+ evidence: z.ZodEnum<{
1131
+ measured_bootstrap: "measured_bootstrap";
1132
+ observed_capacity: "observed_capacity";
1133
+ scheduled_release: "scheduled_release";
1134
+ }>;
1135
+ }, z.core.$strict>>;
1136
+ }, z.core.$strict>>;
991
1137
  phase: z.ZodString;
992
1138
  version: z.ZodNumber;
993
1139
  progress: z.ZodNumber;
@@ -1254,6 +1400,27 @@ export declare class OpenPondTrainingApiError extends Error {
1254
1400
  readonly details: Record<string, unknown>;
1255
1401
  constructor(status: number, error: z.infer<typeof TrainingApiErrorSchema>);
1256
1402
  }
1403
+ export declare const TrainingPolicyLoraCapabilitiesSchema: z.ZodObject<{
1404
+ workerImageDigest: z.ZodString;
1405
+ envelopeRank: z.ZodNumber;
1406
+ supportedRanks: z.ZodArray<z.ZodNumber>;
1407
+ qualification: z.ZodNullable<z.ZodObject<{
1408
+ evidenceRef: z.ZodString;
1409
+ evidenceSha256: z.ZodString;
1410
+ }, z.core.$strict>>;
1411
+ continuation: z.ZodObject<{
1412
+ sharedRequiresSameRank: z.ZodLiteral<true>;
1413
+ mergedRequiresSameRank: z.ZodLiteral<true>;
1414
+ residualAppendRequiresFreeCapacity: z.ZodLiteral<true>;
1415
+ stageOptimizer: z.ZodLiteral<"reset">;
1416
+ interruptedRecoveryOptimizer: z.ZodLiteral<"restore">;
1417
+ }, z.core.$strict>;
1418
+ }, z.core.$strict>;
1419
+ export type TrainingPolicyLoraCapabilities = z.infer<typeof TrainingPolicyLoraCapabilitiesSchema>;
1420
+ export declare function supportsTrainingPolicyLoraRank(capabilities: TrainingPolicyLoraCapabilities, rank: number, continuation?: {
1421
+ mode: "shared" | "sequential_merge" | "residual_append";
1422
+ parentEnabledRank: number;
1423
+ }): boolean;
1257
1424
  export declare const TrainingCapabilitiesSchema: z.ZodObject<{
1258
1425
  schemaVersion: z.ZodLiteral<"openpond.trainingCapabilities.v2">;
1259
1426
  capabilityHash: z.ZodString;
@@ -1266,6 +1433,22 @@ export declare const TrainingCapabilitiesSchema: z.ZodObject<{
1266
1433
  qualification: "qualification";
1267
1434
  training: "training";
1268
1435
  }>>>;
1436
+ policyLora: z.ZodOptional<z.ZodObject<{
1437
+ workerImageDigest: z.ZodString;
1438
+ envelopeRank: z.ZodNumber;
1439
+ supportedRanks: z.ZodArray<z.ZodNumber>;
1440
+ qualification: z.ZodNullable<z.ZodObject<{
1441
+ evidenceRef: z.ZodString;
1442
+ evidenceSha256: z.ZodString;
1443
+ }, z.core.$strict>>;
1444
+ continuation: z.ZodObject<{
1445
+ sharedRequiresSameRank: z.ZodLiteral<true>;
1446
+ mergedRequiresSameRank: z.ZodLiteral<true>;
1447
+ residualAppendRequiresFreeCapacity: z.ZodLiteral<true>;
1448
+ stageOptimizer: z.ZodLiteral<"reset">;
1449
+ interruptedRecoveryOptimizer: z.ZodLiteral<"restore">;
1450
+ }, z.core.$strict>;
1451
+ }, z.core.$strict>>;
1269
1452
  structuredOutputs: z.ZodOptional<z.ZodObject<{
1270
1453
  capability: z.ZodLiteral<"work.structured-output.v1">;
1271
1454
  harnessRuntimeHash: z.ZodString;
@@ -1286,6 +1469,9 @@ export declare const TrainingCapabilitiesSchema: z.ZodObject<{
1286
1469
  stopAfterGroup: z.ZodBoolean;
1287
1470
  resumeFromCheckpoint: z.ZodBoolean;
1288
1471
  }, z.core.$strict>;
1472
+ estimates: z.ZodOptional<z.ZodObject<{
1473
+ schemaVersion: z.ZodLiteral<"openpond.trainingEstimate.v1">;
1474
+ }, z.core.$strict>>;
1289
1475
  limits: z.ZodObject<{
1290
1476
  maximumSpendUsd: z.ZodNumber;
1291
1477
  maximumWallSeconds: z.ZodNumber;
@@ -1661,6 +1847,26 @@ export declare function createTrainingClient(input: {
1661
1847
  };
1662
1848
  name: string;
1663
1849
  maximumSpendUsd: number;
1850
+ gpuSelection?: {
1851
+ mode: "automatic";
1852
+ objective: "balanced" | "economical" | "fast";
1853
+ } | {
1854
+ mode: "manual";
1855
+ availabilityId: string;
1856
+ gpuType: string;
1857
+ } | undefined;
1858
+ physicalPlacement?: {
1859
+ mode: "reuse_only";
1860
+ physicalWorkerId: string;
1861
+ providerPodId: string;
1862
+ workerImageDigest: string;
1863
+ baseProfileSha256: string;
1864
+ gpuType: string;
1865
+ sourceJobId: string;
1866
+ sourceInputManifestSha256: string;
1867
+ ownerTeamId: string;
1868
+ deadlineAt: string;
1869
+ } | undefined;
1664
1870
  };
1665
1871
  requestHash: string;
1666
1872
  source: {
@@ -2097,6 +2303,26 @@ export declare function createTrainingClient(input: {
2097
2303
  };
2098
2304
  name: string;
2099
2305
  maximumSpendUsd: number;
2306
+ gpuSelection?: {
2307
+ mode: "automatic";
2308
+ objective: "balanced" | "economical" | "fast";
2309
+ } | {
2310
+ mode: "manual";
2311
+ availabilityId: string;
2312
+ gpuType: string;
2313
+ } | undefined;
2314
+ physicalPlacement?: {
2315
+ mode: "reuse_only";
2316
+ physicalWorkerId: string;
2317
+ providerPodId: string;
2318
+ workerImageDigest: string;
2319
+ baseProfileSha256: string;
2320
+ gpuType: string;
2321
+ sourceJobId: string;
2322
+ sourceInputManifestSha256: string;
2323
+ ownerTeamId: string;
2324
+ deadlineAt: string;
2325
+ } | undefined;
2100
2326
  };
2101
2327
  requestHash: string;
2102
2328
  source: {
@@ -2532,6 +2758,26 @@ export declare function createTrainingClient(input: {
2532
2758
  };
2533
2759
  name: string;
2534
2760
  maximumSpendUsd: number;
2761
+ gpuSelection?: {
2762
+ mode: "automatic";
2763
+ objective: "balanced" | "economical" | "fast";
2764
+ } | {
2765
+ mode: "manual";
2766
+ availabilityId: string;
2767
+ gpuType: string;
2768
+ } | undefined;
2769
+ physicalPlacement?: {
2770
+ mode: "reuse_only";
2771
+ physicalWorkerId: string;
2772
+ providerPodId: string;
2773
+ workerImageDigest: string;
2774
+ baseProfileSha256: string;
2775
+ gpuType: string;
2776
+ sourceJobId: string;
2777
+ sourceInputManifestSha256: string;
2778
+ ownerTeamId: string;
2779
+ deadlineAt: string;
2780
+ } | undefined;
2535
2781
  };
2536
2782
  requestHash: string;
2537
2783
  source: {
@@ -2967,6 +3213,26 @@ export declare function createTrainingClient(input: {
2967
3213
  };
2968
3214
  name: string;
2969
3215
  maximumSpendUsd: number;
3216
+ gpuSelection?: {
3217
+ mode: "automatic";
3218
+ objective: "balanced" | "economical" | "fast";
3219
+ } | {
3220
+ mode: "manual";
3221
+ availabilityId: string;
3222
+ gpuType: string;
3223
+ } | undefined;
3224
+ physicalPlacement?: {
3225
+ mode: "reuse_only";
3226
+ physicalWorkerId: string;
3227
+ providerPodId: string;
3228
+ workerImageDigest: string;
3229
+ baseProfileSha256: string;
3230
+ gpuType: string;
3231
+ sourceJobId: string;
3232
+ sourceInputManifestSha256: string;
3233
+ ownerTeamId: string;
3234
+ deadlineAt: string;
3235
+ } | undefined;
2970
3236
  };
2971
3237
  requestHash: string;
2972
3238
  source: {
@@ -3402,6 +3668,26 @@ export declare function createTrainingClient(input: {
3402
3668
  };
3403
3669
  name: string;
3404
3670
  maximumSpendUsd: number;
3671
+ gpuSelection?: {
3672
+ mode: "automatic";
3673
+ objective: "balanced" | "economical" | "fast";
3674
+ } | {
3675
+ mode: "manual";
3676
+ availabilityId: string;
3677
+ gpuType: string;
3678
+ } | undefined;
3679
+ physicalPlacement?: {
3680
+ mode: "reuse_only";
3681
+ physicalWorkerId: string;
3682
+ providerPodId: string;
3683
+ workerImageDigest: string;
3684
+ baseProfileSha256: string;
3685
+ gpuType: string;
3686
+ sourceJobId: string;
3687
+ sourceInputManifestSha256: string;
3688
+ ownerTeamId: string;
3689
+ deadlineAt: string;
3690
+ } | undefined;
3405
3691
  };
3406
3692
  requestHash: string;
3407
3693
  source: {
@@ -3635,6 +3921,7 @@ export declare function createTrainingClient(input: {
3635
3921
  state: "cancelled" | "prepared" | "submitted";
3636
3922
  jobId: string | null;
3637
3923
  }>;
3924
+ estimate(input: import("./training-estimates.js").TrainingEstimateRequest): Promise<import("./training-estimates.js").TrainingEstimate>;
3638
3925
  publishHarnessSource(value: import("@openpond/harness").HarnessSourcePackage | import("@openpond/harness").HarnessPolicySourcePackage): Promise<{
3639
3926
  schemaVersion: "openpond.trainingHarnessSourcePublication.v1";
3640
3927
  harnessRelease: {
@@ -4353,6 +4640,22 @@ export declare function createTrainingClient(input: {
4353
4640
  jobKinds: ("policy_optimize" | "reward_model_train")[];
4354
4641
  methods: string[];
4355
4642
  executionModes?: ("qualification" | "training")[] | undefined;
4643
+ policyLora?: {
4644
+ workerImageDigest: string;
4645
+ envelopeRank: number;
4646
+ supportedRanks: number[];
4647
+ qualification: {
4648
+ evidenceRef: string;
4649
+ evidenceSha256: string;
4650
+ } | null;
4651
+ continuation: {
4652
+ sharedRequiresSameRank: true;
4653
+ mergedRequiresSameRank: true;
4654
+ residualAppendRequiresFreeCapacity: true;
4655
+ stageOptimizer: "reset";
4656
+ interruptedRecoveryOptimizer: "restore";
4657
+ };
4658
+ } | undefined;
4356
4659
  structuredOutputs?: {
4357
4660
  capability: "work.structured-output.v1";
4358
4661
  harnessRuntimeHash: string;
@@ -4368,6 +4671,9 @@ export declare function createTrainingClient(input: {
4368
4671
  stopAfterGroup: boolean;
4369
4672
  resumeFromCheckpoint: boolean;
4370
4673
  };
4674
+ estimates?: {
4675
+ schemaVersion: "openpond.trainingEstimate.v1";
4676
+ } | undefined;
4371
4677
  limits: {
4372
4678
  maximumSpendUsd: number;
4373
4679
  maximumWallSeconds: number;
@@ -4376,6 +4682,27 @@ export declare function createTrainingClient(input: {
4376
4682
  checkedAt: string;
4377
4683
  expiresAt: string;
4378
4684
  }>;
4685
+ gpuCatalog(): Promise<{
4686
+ schemaVersion: "openpond.trainingGpuCatalog.v1";
4687
+ observedAt: string;
4688
+ expiresAt: string;
4689
+ workerImageDigest: string;
4690
+ supportedLoraRanks: number[];
4691
+ pricingBasis: "accepted_compute_and_disk_hourly_before_credits";
4692
+ offerings: {
4693
+ availabilityId: string;
4694
+ gpuType: string;
4695
+ provider: string;
4696
+ region: string;
4697
+ dataCenterId: string | null;
4698
+ gpuCount: number;
4699
+ gpuMemoryGb: number;
4700
+ stockStatus: "High" | "Low" | "Medium";
4701
+ computeHourlyUsd: number;
4702
+ diskHourlyUsd: number;
4703
+ totalHourlyUsd: number;
4704
+ }[];
4705
+ }>;
4379
4706
  stageArtifact(upload: TrainingInputArtifactUpload): Promise<{
4380
4707
  schemaVersion: "openpond.trainingInputArtifact.v2";
4381
4708
  kind: "portable_training_bundle" | "reward_model_dataset";
@@ -4394,11 +4721,52 @@ export declare function createTrainingClient(input: {
4394
4721
  teamId: string;
4395
4722
  kind: "policy_optimize" | "reward_model_train";
4396
4723
  executionMode?: "qualification" | undefined;
4724
+ recovery?: {
4725
+ resourceApproval?: {
4726
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
4727
+ ownerUserId: string;
4728
+ teamId: string;
4729
+ sourceJobId: string;
4730
+ sourceJobVersion: number;
4731
+ sourceInputManifestSha256: string;
4732
+ checkpointId: string;
4733
+ adapterSha256: string;
4734
+ resumeSha256: string;
4735
+ idempotencyKey: string;
4736
+ approvedAt: string;
4737
+ maximumSpendUsd: number;
4738
+ maximumGpuSeconds: number;
4739
+ maximumWallSeconds: number;
4740
+ approvalHash: string;
4741
+ } | undefined;
4742
+ mode?: "evaluation_only" | undefined;
4743
+ trainingWorkloadComplete?: boolean | undefined;
4744
+ sourceJobId: string;
4745
+ checkpointId: string;
4746
+ policyVersion: number;
4747
+ completedGroups: number;
4748
+ optimizerMode: "continue";
4749
+ } | undefined;
4397
4750
  modelProjectId: string;
4398
4751
  portableProjectId: string;
4399
4752
  sourceProjectRevision: number;
4400
4753
  submissionHash: string;
4401
4754
  state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
4755
+ queue?: {
4756
+ ticketId: string;
4757
+ ticketNumber: number;
4758
+ label: "Waiting for resources";
4759
+ position: number | null;
4760
+ positionScope: "compatible_fair_queue";
4761
+ enqueuedAt: string;
4762
+ asOf: string;
4763
+ estimate: {
4764
+ revision: number;
4765
+ estimatedStartAt: string;
4766
+ expiresAt: string;
4767
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
4768
+ } | null;
4769
+ } | undefined;
4402
4770
  phase: string;
4403
4771
  version: number;
4404
4772
  progress: number;
@@ -4426,11 +4794,52 @@ export declare function createTrainingClient(input: {
4426
4794
  teamId: string;
4427
4795
  kind: "policy_optimize" | "reward_model_train";
4428
4796
  executionMode?: "qualification" | undefined;
4797
+ recovery?: {
4798
+ resourceApproval?: {
4799
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
4800
+ ownerUserId: string;
4801
+ teamId: string;
4802
+ sourceJobId: string;
4803
+ sourceJobVersion: number;
4804
+ sourceInputManifestSha256: string;
4805
+ checkpointId: string;
4806
+ adapterSha256: string;
4807
+ resumeSha256: string;
4808
+ idempotencyKey: string;
4809
+ approvedAt: string;
4810
+ maximumSpendUsd: number;
4811
+ maximumGpuSeconds: number;
4812
+ maximumWallSeconds: number;
4813
+ approvalHash: string;
4814
+ } | undefined;
4815
+ mode?: "evaluation_only" | undefined;
4816
+ trainingWorkloadComplete?: boolean | undefined;
4817
+ sourceJobId: string;
4818
+ checkpointId: string;
4819
+ policyVersion: number;
4820
+ completedGroups: number;
4821
+ optimizerMode: "continue";
4822
+ } | undefined;
4429
4823
  modelProjectId: string;
4430
4824
  portableProjectId: string;
4431
4825
  sourceProjectRevision: number;
4432
4826
  submissionHash: string;
4433
4827
  state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
4828
+ queue?: {
4829
+ ticketId: string;
4830
+ ticketNumber: number;
4831
+ label: "Waiting for resources";
4832
+ position: number | null;
4833
+ positionScope: "compatible_fair_queue";
4834
+ enqueuedAt: string;
4835
+ asOf: string;
4836
+ estimate: {
4837
+ revision: number;
4838
+ estimatedStartAt: string;
4839
+ expiresAt: string;
4840
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
4841
+ } | null;
4842
+ } | undefined;
4434
4843
  phase: string;
4435
4844
  version: number;
4436
4845
  progress: number;
@@ -4454,11 +4863,52 @@ export declare function createTrainingClient(input: {
4454
4863
  teamId: string;
4455
4864
  kind: "policy_optimize" | "reward_model_train";
4456
4865
  executionMode?: "qualification" | undefined;
4866
+ recovery?: {
4867
+ resourceApproval?: {
4868
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
4869
+ ownerUserId: string;
4870
+ teamId: string;
4871
+ sourceJobId: string;
4872
+ sourceJobVersion: number;
4873
+ sourceInputManifestSha256: string;
4874
+ checkpointId: string;
4875
+ adapterSha256: string;
4876
+ resumeSha256: string;
4877
+ idempotencyKey: string;
4878
+ approvedAt: string;
4879
+ maximumSpendUsd: number;
4880
+ maximumGpuSeconds: number;
4881
+ maximumWallSeconds: number;
4882
+ approvalHash: string;
4883
+ } | undefined;
4884
+ mode?: "evaluation_only" | undefined;
4885
+ trainingWorkloadComplete?: boolean | undefined;
4886
+ sourceJobId: string;
4887
+ checkpointId: string;
4888
+ policyVersion: number;
4889
+ completedGroups: number;
4890
+ optimizerMode: "continue";
4891
+ } | undefined;
4457
4892
  modelProjectId: string;
4458
4893
  portableProjectId: string;
4459
4894
  sourceProjectRevision: number;
4460
4895
  submissionHash: string;
4461
4896
  state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
4897
+ queue?: {
4898
+ ticketId: string;
4899
+ ticketNumber: number;
4900
+ label: "Waiting for resources";
4901
+ position: number | null;
4902
+ positionScope: "compatible_fair_queue";
4903
+ enqueuedAt: string;
4904
+ asOf: string;
4905
+ estimate: {
4906
+ revision: number;
4907
+ estimatedStartAt: string;
4908
+ expiresAt: string;
4909
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
4910
+ } | null;
4911
+ } | undefined;
4462
4912
  phase: string;
4463
4913
  version: number;
4464
4914
  progress: number;
@@ -4480,11 +4930,52 @@ export declare function createTrainingClient(input: {
4480
4930
  teamId: string;
4481
4931
  kind: "policy_optimize" | "reward_model_train";
4482
4932
  executionMode?: "qualification" | undefined;
4933
+ recovery?: {
4934
+ resourceApproval?: {
4935
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
4936
+ ownerUserId: string;
4937
+ teamId: string;
4938
+ sourceJobId: string;
4939
+ sourceJobVersion: number;
4940
+ sourceInputManifestSha256: string;
4941
+ checkpointId: string;
4942
+ adapterSha256: string;
4943
+ resumeSha256: string;
4944
+ idempotencyKey: string;
4945
+ approvedAt: string;
4946
+ maximumSpendUsd: number;
4947
+ maximumGpuSeconds: number;
4948
+ maximumWallSeconds: number;
4949
+ approvalHash: string;
4950
+ } | undefined;
4951
+ mode?: "evaluation_only" | undefined;
4952
+ trainingWorkloadComplete?: boolean | undefined;
4953
+ sourceJobId: string;
4954
+ checkpointId: string;
4955
+ policyVersion: number;
4956
+ completedGroups: number;
4957
+ optimizerMode: "continue";
4958
+ } | undefined;
4483
4959
  modelProjectId: string;
4484
4960
  portableProjectId: string;
4485
4961
  sourceProjectRevision: number;
4486
4962
  submissionHash: string;
4487
4963
  state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
4964
+ queue?: {
4965
+ ticketId: string;
4966
+ ticketNumber: number;
4967
+ label: "Waiting for resources";
4968
+ position: number | null;
4969
+ positionScope: "compatible_fair_queue";
4970
+ enqueuedAt: string;
4971
+ asOf: string;
4972
+ estimate: {
4973
+ revision: number;
4974
+ estimatedStartAt: string;
4975
+ expiresAt: string;
4976
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
4977
+ } | null;
4978
+ } | undefined;
4488
4979
  phase: string;
4489
4980
  version: number;
4490
4981
  progress: number;
@@ -4506,11 +4997,119 @@ export declare function createTrainingClient(input: {
4506
4997
  teamId: string;
4507
4998
  kind: "policy_optimize" | "reward_model_train";
4508
4999
  executionMode?: "qualification" | undefined;
5000
+ recovery?: {
5001
+ resourceApproval?: {
5002
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
5003
+ ownerUserId: string;
5004
+ teamId: string;
5005
+ sourceJobId: string;
5006
+ sourceJobVersion: number;
5007
+ sourceInputManifestSha256: string;
5008
+ checkpointId: string;
5009
+ adapterSha256: string;
5010
+ resumeSha256: string;
5011
+ idempotencyKey: string;
5012
+ approvedAt: string;
5013
+ maximumSpendUsd: number;
5014
+ maximumGpuSeconds: number;
5015
+ maximumWallSeconds: number;
5016
+ approvalHash: string;
5017
+ } | undefined;
5018
+ mode?: "evaluation_only" | undefined;
5019
+ trainingWorkloadComplete?: boolean | undefined;
5020
+ sourceJobId: string;
5021
+ checkpointId: string;
5022
+ policyVersion: number;
5023
+ completedGroups: number;
5024
+ optimizerMode: "continue";
5025
+ } | undefined;
4509
5026
  modelProjectId: string;
4510
5027
  portableProjectId: string;
4511
5028
  sourceProjectRevision: number;
4512
5029
  submissionHash: string;
4513
5030
  state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
5031
+ queue?: {
5032
+ ticketId: string;
5033
+ ticketNumber: number;
5034
+ label: "Waiting for resources";
5035
+ position: number | null;
5036
+ positionScope: "compatible_fair_queue";
5037
+ enqueuedAt: string;
5038
+ asOf: string;
5039
+ estimate: {
5040
+ revision: number;
5041
+ estimatedStartAt: string;
5042
+ expiresAt: string;
5043
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
5044
+ } | null;
5045
+ } | undefined;
5046
+ phase: string;
5047
+ version: number;
5048
+ progress: number;
5049
+ rolloutProgress: {
5050
+ groupsCompleted: number;
5051
+ groupsTarget: number;
5052
+ optimizerUpdatesApplied: number;
5053
+ optimizerUpdatesSkipped: number;
5054
+ };
5055
+ accruedSpendUsd: number;
5056
+ terminalReason: string | null;
5057
+ createdAt: string;
5058
+ updatedAt: string;
5059
+ completedAt: string | null;
5060
+ }>;
5061
+ recoverCheckpoint(jobId: string, input: z.input<typeof TrainingCheckpointRecoveryRequestSchema>): Promise<{
5062
+ schemaVersion: "openpond.trainingJob.v2";
5063
+ id: string;
5064
+ teamId: string;
5065
+ kind: "policy_optimize" | "reward_model_train";
5066
+ executionMode?: "qualification" | undefined;
5067
+ recovery?: {
5068
+ resourceApproval?: {
5069
+ schemaVersion: "openpond.checkpointRecoveryResourceApproval.v1";
5070
+ ownerUserId: string;
5071
+ teamId: string;
5072
+ sourceJobId: string;
5073
+ sourceJobVersion: number;
5074
+ sourceInputManifestSha256: string;
5075
+ checkpointId: string;
5076
+ adapterSha256: string;
5077
+ resumeSha256: string;
5078
+ idempotencyKey: string;
5079
+ approvedAt: string;
5080
+ maximumSpendUsd: number;
5081
+ maximumGpuSeconds: number;
5082
+ maximumWallSeconds: number;
5083
+ approvalHash: string;
5084
+ } | undefined;
5085
+ mode?: "evaluation_only" | undefined;
5086
+ trainingWorkloadComplete?: boolean | undefined;
5087
+ sourceJobId: string;
5088
+ checkpointId: string;
5089
+ policyVersion: number;
5090
+ completedGroups: number;
5091
+ optimizerMode: "continue";
5092
+ } | undefined;
5093
+ modelProjectId: string;
5094
+ portableProjectId: string;
5095
+ sourceProjectRevision: number;
5096
+ submissionHash: string;
5097
+ state: "admitting" | "cancelled" | "cancelling" | "failed" | "provisioning" | "queued" | "running" | "stopping" | "succeeded";
5098
+ queue?: {
5099
+ ticketId: string;
5100
+ ticketNumber: number;
5101
+ label: "Waiting for resources";
5102
+ position: number | null;
5103
+ positionScope: "compatible_fair_queue";
5104
+ enqueuedAt: string;
5105
+ asOf: string;
5106
+ estimate: {
5107
+ revision: number;
5108
+ estimatedStartAt: string;
5109
+ expiresAt: string;
5110
+ evidence: "measured_bootstrap" | "observed_capacity" | "scheduled_release";
5111
+ } | null;
5112
+ } | undefined;
4514
5113
  phase: string;
4515
5114
  version: number;
4516
5115
  progress: number;