runbios-sdk 0.2.19-dev.278 → 0.2.19-dev.281

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.
package/dist/index.d.ts CHANGED
@@ -36,7 +36,7 @@ import { Loop } from './resources/loop.js';
36
36
  * SDK version. Sent as part of the User-Agent header.
37
37
  * Must match package.json "version" -- enforced by a contract test.
38
38
  */
39
- export declare const VERSION = "0.2.19-dev.278";
39
+ export declare const VERSION = "0.2.19-dev.281";
40
40
  export declare class RunBiOS {
41
41
  /** Search models, fetch configs, check adapter compatibility. */
42
42
  readonly models: Models;
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ import { Loop } from './resources/loop.js';
36
36
  * SDK version. Sent as part of the User-Agent header.
37
37
  * Must match package.json "version" -- enforced by a contract test.
38
38
  */
39
- export const VERSION = '0.2.19-dev.278';
39
+ export const VERSION = '0.2.19-dev.281';
40
40
  export class RunBiOS {
41
41
  /** Search models, fetch configs, check adapter compatibility. */
42
42
  models;
@@ -402,7 +402,9 @@ export declare class Loop {
402
402
  * numbers `minimums` shows. 503 `AGENT_COULD_NOT_START` means the key the
403
403
  * attempt would be scored with could not be renewed just then: nothing was
404
404
  * started, so press train now again in a minute. Every refusal is a
405
- * `TrainingRuleRunRefusalCode`.
405
+ * `TrainingRuleRunRefusalCode`. When the attempt in flight is waiting for
406
+ * GPUs to compare (`active_run.state` `waiting_gpus`), this books its two
407
+ * comparison machines again at once instead of starting another attempt.
406
408
  */
407
409
  runPipeline(id: string): Promise<PipelineMutationResponse>;
408
410
  /**
@@ -555,7 +555,9 @@ export class Loop {
555
555
  * numbers `minimums` shows. 503 `AGENT_COULD_NOT_START` means the key the
556
556
  * attempt would be scored with could not be renewed just then: nothing was
557
557
  * started, so press train now again in a minute. Every refusal is a
558
- * `TrainingRuleRunRefusalCode`.
558
+ * `TrainingRuleRunRefusalCode`. When the attempt in flight is waiting for
559
+ * GPUs to compare (`active_run.state` `waiting_gpus`), this books its two
560
+ * comparison machines again at once instead of starting another attempt.
559
561
  */
560
562
  async runPipeline(id) {
561
563
  return this._http.fetchPost(`/api/loop/pipelines/${encodeURIComponent(id)}/run`, {});
package/dist/types.d.ts CHANGED
@@ -2866,7 +2866,18 @@ export interface TrainingRecipe {
2866
2866
  lora_rank: number | null;
2867
2867
  lora_alpha: number | null;
2868
2868
  }
2869
- export type TrainingRunState = 'built' | 'registering' | 'dataset_validating' | 'preflighting' | 'job_creating' | 'training' | 'checkpoint_ready' | 'candidate_booking' | 'candidate_running' | 'evaluating' | 'reported' | 'awaiting_review' | 'promoting' | 'waiting_funds' | 'promoted' | 'rejected' | 'expired' | 'failed' | 'budget_stopped' | 'cancelled' | 'superseded' | 'rolled_back';
2869
+ export type TrainingRunState = 'built' | 'registering' | 'dataset_validating' | 'preflighting' | 'job_creating' | 'training' | 'checkpoint_ready' | 'candidate_booking' | 'candidate_running' | 'evaluating' | 'reported' | 'awaiting_review' | 'promoting' | 'waiting_funds'
2870
+ /**
2871
+ * Trained, and waiting for GPUs to run the new model and the one it is
2872
+ * compared with side by side: one machine got a GPU and the other did not
2873
+ * within 20 minutes, so both were stopped. Each try can bill the machine
2874
+ * that got a GPU for up to those 20 minutes; nothing bills between tries.
2875
+ * It keeps what it trained, books both again after 30 minutes, then 1, 2
2876
+ * and 4 hours, and ends (`failed`, `COMPARISON_NO_GPUS`) after four tries or
2877
+ * 24 hours (`COMPARISON_WORKSPACE_FULL` when what was missing was room in
2878
+ * the workspace). Train now books them again at once.
2879
+ */
2880
+ | 'waiting_gpus' | 'promoted' | 'rejected' | 'expired' | 'failed' | 'budget_stopped' | 'cancelled' | 'superseded' | 'rolled_back';
2870
2881
  /** The closed set a run never leaves. */
2871
2882
  export declare const TERMINAL_RUN_STATES: readonly TrainingRunState[];
2872
2883
  export type TrainingVerdict = 'better' | 'not_better' | 'inconclusive' | 'not_evaluated';
@@ -2957,7 +2968,19 @@ export interface TrainingRun {
2957
2968
  */
2958
2969
  error_next_step: string | null;
2959
2970
  billed_training_cents: number;
2971
+ /**
2972
+ * The comparison machines: each from the first time it was on a GPU to its
2973
+ * stop, less any time back in the GPU queue, at the price the platform
2974
+ * placed it at.
2975
+ */
2960
2976
  billed_candidate_cents: number;
2977
+ /**
2978
+ * True when a comparison machine was charged: the figure is then the most
2979
+ * it can have cost ("up to"), since it counts each machine from its first
2980
+ * boot where the platform bills from its first answer (and at the hourly
2981
+ * cap when no placement price was reported).
2982
+ */
2983
+ billed_candidate_up_to: boolean;
2961
2984
  spent_eval_cents: number;
2962
2985
  train_rows: number | null;
2963
2986
  holdout_rows: number | null;
@@ -3049,6 +3072,8 @@ export interface TrainingRunSummary {
3049
3072
  holdout_rows: number | null;
3050
3073
  billed_training_cents: number;
3051
3074
  billed_candidate_cents: number;
3075
+ /** See {@link TrainingRun.billed_candidate_up_to}. */
3076
+ billed_candidate_up_to: boolean;
3052
3077
  spent_eval_cents: number;
3053
3078
  /** The fourth money column. A row that leaves it out adds up short. */
3054
3079
  benchmark_spent_cents: number;
@@ -3574,6 +3599,11 @@ export interface PipelineActiveRun {
3574
3599
  gpu_seconds: number | null;
3575
3600
  /** What it has been billed so far, in cents. */
3576
3601
  cost_cents: number;
3602
+ /**
3603
+ * True when a comparison machine was charged in `cost_cents`: the figure is
3604
+ * the most it can have cost, so show it as "up to".
3605
+ */
3606
+ cost_up_to: boolean;
3577
3607
  /** The version number it will take if it is put live. */
3578
3608
  will_be_version: number;
3579
3609
  /** Always null: nothing in flight is a version yet. */
@@ -3646,6 +3676,14 @@ export interface PipelineVersion {
3646
3676
  * not what it did.
3647
3677
  */
3648
3678
  cost_includes_candidate_ceiling: boolean;
3679
+ /**
3680
+ * True when `cost_cents` is the most the version can have cost rather than
3681
+ * what it did: its comparison machines at their ceilings
3682
+ * (`cost_includes_candidate_ceiling`), or one charged (counted from its
3683
+ * first boot, where the platform bills from its first answer). Show it as
3684
+ * "up to".
3685
+ */
3686
+ cost_up_to: boolean;
3649
3687
  /** Machine time the attempt held (training and comparison); null when unknown. */
3650
3688
  gpu_seconds: number | null;
3651
3689
  created_at: string;
@@ -3694,6 +3732,8 @@ export interface PipelineAttempt {
3694
3732
  gpu_seconds: number | null;
3695
3733
  /** As the versions are priced once it has ended; as recorded so far while it runs. */
3696
3734
  cost_cents: number;
3735
+ /** See {@link PipelineVersion.cost_up_to}. */
3736
+ cost_up_to: boolean;
3697
3737
  verdict: TrainingVerdict | null;
3698
3738
  win_rate: number | null;
3699
3739
  evaluation_id: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runbios-sdk",
3
- "version": "0.2.19-dev.278",
3
+ "version": "0.2.19-dev.281",
4
4
  "description": "Official TypeScript SDK for the Run BiOS training and deployment platform API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",