runbios-sdk 0.2.14 → 0.2.15-dev.256

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/client.js CHANGED
@@ -340,7 +340,7 @@ export class HttpClient {
340
340
  constructor(config) {
341
341
  // Default host stays api.runbios.ai for now; cutover to api.runbios.ai is
342
342
  // planned once its DNS exists.
343
- this.baseUrl = (config.baseUrl || envBaseUrl() || 'https://api.runbios.ai').replace(/\/+$/, '');
343
+ this.baseUrl = (config.baseUrl || envBaseUrl() || 'https://api-dev.runbios.ai').replace(/\/+$/, '');
344
344
  this.apiKey = config.apiKey ?? envApiKey();
345
345
  this.accessToken = config.accessToken;
346
346
  this.orgId = config.orgId;
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.14";
39
+ export declare const VERSION = "0.2.15-dev.256";
40
40
  export declare class RunBiOS {
41
41
  /** Search models, fetch configs, check adapter compatibility. */
42
42
  readonly models: Models;
@@ -75,7 +75,7 @@ export { Training } from './resources/training.js';
75
75
  export { Wallet } from './resources/wallet.js';
76
76
  export { GPU, type GPURecommendation } from './resources/gpu.js';
77
77
  export { Inference, validateChatRequest, parseSSE, buildInferenceRequest, contextSizingBasis, type ContextSizingBasis, CONTEXT_DEFAULT_CEILING, CONTEXT_EDITABLE_FLOOR, type ChatMessage, type FunctionTool, type ChatCompletionParams, type ChatCompletionResponse, type ChatCompletionChunk, type InferenceVerbParams, type CompletionParams, type EmbeddingParams, type RerankParams, type AnthropicMessageParams, type ServerlessUsageWindow, type ServerlessTimeseriesMetric, type ServerlessWorkspaceLimits, type ServerlessUsageEnvelope, type ServerlessUsageOverviewResponse, type ServerlessUsageRowsResponse, type ServerlessUsageTimeseriesResponse, type ServerlessUsageDailyResponse, type ServerlessSavingsTotals, type ServerlessSavingsPeriod, type ServerlessUsageSavingsResponse, } from './resources/inference.js';
78
- export type { BiOSConfig, PaginatedResponse, ApiErrorBody, AvailableGpuAlternative, CapacityMinimumRequirement, InferenceBookingAccepted, Model, ModelSearchParams, ModelSearchResponse, ModelDetailResponse, InferenceModel, InferenceModelListResponse, ModelConfig, Dataset, DatasetListParams, DatasetListResponse, DatasetUploadParams, DatasetPreview, DatasetPreviewParams, DatasetImportHFParams, DatasetRegisterHFParams, DatasetHubSearchParams, DatasetHubPreviewParams, DatasetValidation, DatasetFormatVariant, DatasetFormatSpec, DatasetFormatSpecs, DatasetStorageUsage, TrainingMethod, RLHFAlgorithm, AdapterType, TrainingJobStatus, TrainingStatusFilter, TrainingCreateParams, TrainingListParams, TrainingListResponse, TrainingJob, TrainingMetrics, TrainingResourceMetrics, TrainingDeviceMetrics, MetricPoint, MetricGraphConfig, TrainingCheckpoint, TrainingLogs, TrainingLogEntry, TrainingStopResponse, TrainingResumeResponse, CanonicalTrainingRequest, TrainingPreflightDataset, TrainingPreflightWarning, TrainingPreflightResponse, TrainingCapabilityChoice, TrainingConfigFieldCapability, TrainingCapabilities, GPUChoice, WalletBalance, Transaction, TransactionListResponse, TransactionListParams, GPUInfo, GPUPricingResponse, GPUOptionsParams, TrainingRecommendParams, TrainingAdvisorVerdict, TrainingAdvisorRecommendation, TrainingAdvisorUserShape, TrainingAdvisorJustification, TrainingAdvisorBasis, GPUOption, GPUOptionSuggestion, GPUOptionsResponse, InferenceStatus, InferenceCreateParams, InferenceUpdateParams, InferenceDeployment, InferenceDeploymentSummary, InferenceCreateResponse, InferenceListResponse, InferenceUpdateResponse, InferenceLifecycleResponse, InferenceDeleteResponse, InferenceGPUOptionMarket, InferenceGPUOption, InferenceGPUAlternative, InferenceGPUOptionsParams, InferenceGPUOptionsResponse, InferenceCanonicalRequest, InferencePreflightWarning, InferencePreflightResponse, AdapterCompatibility, AdapterCompatibilityResponse, AdapterCompatibilityParams, SupportedArchitecture, ArchitectureScope, SupportedArchitecturesResponse, ApiKey, ApiKeyScope, ApiKeyIntrospection, Organization, OrgMember, OrgInvite, Workspace, Integration, IntegrationCreateParams, StorageUsage, StorageObject, PromptTokensDetails, ChatCompletionUsage, TrainingCadence, TrainingCombinator, ServingKind, TrainingRulePausedReason, LoopTrainingMethod, TrainType, GradersScope, TrainingTrigger, TrainingRecipe, TrainingRunState, TrainingVerdict, TrainingDecision, NotifyState, EvaluationStatus, EvaluationItemStatus, EvaluationWinner, EvaluationWarningCode, ConsentVia, TrainingToolCall, TrainingMessage, TrainingRuleServing, TrainingGPURung, TrainingRule, TrainingRuleConsent, TrainingRulePreflightRefusal, TrainingRuleKeyRef, TrainingRuleKeyCheck, TrainingRulePreflight, TrainingRuleBuildSpec, TrainingRuleTriggerInput, TrainingRuleTrainingInput, TrainingRuleDeployInput, TrainingRuleMoneyInput, TrainingRuleEvaluationInput, TrainingRulePromotionInput, TrainingRuleAcceptTerms, TrainingRulePreflightRequest, TrainingRuleCreateRequest, TrainingRuleUpdateRequest, TrainingRuleConsentRequest, TrainingRuleListParams, TrainingRunPromoteRequest, TrainingRunRejectRequest, TrainingRunRollbackRequest, TrainingRunCancelRequest, TrainingRunListParams, TrainingRun, TrainingRunSummary, TrainingRunEvent, TrainingRunLinks, TrainingRunActions, EvaluationRef, EvaluationDecoding, EvaluationJudgeDimension, EvaluationDimensionScore, EvaluationGraderScore, EvaluationWarning, EvaluationMargin, JudgeAgreementDimension, JudgeAgreement, Evaluation, EvaluationItemSide, EvaluationItem, EvaluationItemListParams, JudgeAgreementParams, AgentSettings, AgentSettingsRequest, BenchmarkStatus, BenchmarkSourceKind, BenchmarkRunStatus, BenchmarkScoring, BenchmarkDimensionScore, Benchmark, BenchmarkItem, BenchmarkRun, BenchmarkHistoryPoint, BenchmarkSource, BenchmarkCreateParams, BenchmarkListParams, BenchmarkItemListParams, BenchmarkHistoryParams, BenchmarkRetireParams, TrainingRuleBenchmarkRequest, InferenceAlias, InferenceAliasRequest, TrainingRuleListResponse, TrainingRuleResponse, TrainingRuleMutationResponse, TrainingRuleDeleteResponse, TrainingRunListResponse, TrainingRunResponse, TrainingRunActionResponse, EvaluationItemsResponse, AgentSettingsResponse, InferenceAliasListResponse, InferenceAliasResponse, InferenceAliasDeleteResponse, BenchmarkListResponse, BenchmarkItemsResponse, BenchmarkHistoryResponse, TrainingRuleRunRefusalCode, TrainingRuleMonthlyLimitRefusal, LoopDatasetDeleteRefusalCode, PipelineStatus, PipelineRecipeExploration, PipelineActiveRun, PipelineVersion, Pipeline, PipelineListResponse, PipelineResponse, } from './types.js';
78
+ export type { BiOSConfig, PaginatedResponse, ApiErrorBody, AvailableGpuAlternative, CapacityMinimumRequirement, InferenceBookingAccepted, Model, ModelSearchParams, ModelSearchResponse, ModelDetailResponse, InferenceModel, InferenceModelListResponse, ModelConfig, Dataset, DatasetListParams, DatasetListResponse, DatasetUploadParams, DatasetPreview, DatasetPreviewParams, DatasetImportHFParams, DatasetRegisterHFParams, DatasetHubSearchParams, DatasetHubPreviewParams, DatasetValidation, DatasetFormatVariant, DatasetFormatSpec, DatasetFormatSpecs, DatasetStorageUsage, TrainingMethod, RLHFAlgorithm, AdapterType, TrainingJobStatus, TrainingStatusFilter, TrainingCreateParams, TrainingListParams, TrainingListResponse, TrainingJob, TrainingMetrics, TrainingResourceMetrics, TrainingDeviceMetrics, MetricPoint, MetricGraphConfig, TrainingCheckpoint, TrainingLogs, TrainingLogEntry, TrainingStopResponse, TrainingResumeResponse, CanonicalTrainingRequest, TrainingPreflightDataset, TrainingPreflightWarning, TrainingPreflightResponse, TrainingCapabilityChoice, TrainingConfigFieldCapability, TrainingCapabilities, GPUChoice, WalletBalance, Transaction, TransactionListResponse, TransactionListParams, GPUInfo, GPUPricingResponse, GPUOptionsParams, TrainingRecommendParams, TrainingAdvisorVerdict, TrainingAdvisorRecommendation, TrainingAdvisorUserShape, TrainingAdvisorJustification, TrainingAdvisorBasis, GPUOption, GPUOptionSuggestion, GPUOptionsResponse, InferenceStatus, InferenceCreateParams, InferenceUpdateParams, InferenceDeployment, InferenceDeploymentSummary, InferenceCreateResponse, InferenceListResponse, InferenceUpdateResponse, InferenceLifecycleResponse, InferenceDeleteResponse, InferenceGPUOptionMarket, InferenceGPUOption, InferenceGPUAlternative, InferenceGPUOptionsParams, InferenceGPUOptionsResponse, InferenceCanonicalRequest, InferencePreflightWarning, InferencePreflightResponse, AdapterCompatibility, AdapterCompatibilityResponse, AdapterCompatibilityParams, SupportedArchitecture, ArchitectureScope, SupportedArchitecturesResponse, ApiKey, ApiKeyScope, ApiKeyIntrospection, Organization, OrgMember, OrgInvite, Workspace, Integration, IntegrationCreateParams, StorageUsage, StorageObject, PromptTokensDetails, ChatCompletionUsage, TrainingCadence, TrainingCombinator, ServingKind, TrainingRulePausedReason, LoopTrainingMethod, TrainType, GradersScope, TrainingTrigger, TrainingRecipe, TrainingRunState, TrainingVerdict, TrainingDecision, NotifyState, EvaluationStatus, EvaluationItemStatus, EvaluationWinner, EvaluationWarningCode, ConsentVia, TrainingToolCall, TrainingMessage, TrainingRuleServing, TrainingGPURung, TrainingRule, TrainingRuleConsent, TrainingRulePreflightRefusal, TrainingRuleKeyRef, TrainingRuleKeyCheck, TrainingRulePreflight, TrainingRuleBuildSpec, TrainingRuleTriggerInput, TrainingRuleTrainingInput, TrainingRuleDeployInput, TrainingRuleMoneyInput, TrainingRuleEvaluationInput, TrainingRulePromotionInput, TrainingRuleAcceptTerms, TrainingRulePreflightRequest, TrainingRuleCreateRequest, TrainingRuleUpdateRequest, TrainingRuleConsentRequest, TrainingRuleListParams, TrainingRunPromoteRequest, TrainingRunRejectRequest, TrainingRunRollbackRequest, TrainingRunCancelRequest, TrainingRunListParams, TrainingRun, TrainingRunSummary, TrainingRunEvent, TrainingRunLinks, TrainingRunActions, EvaluationRef, EvaluationDecoding, EvaluationJudgeDimension, EvaluationDimensionScore, EvaluationGraderScore, EvaluationWarning, EvaluationMargin, JudgeAgreementDimension, JudgeAgreement, Evaluation, EvaluationItemSide, EvaluationItem, EvaluationItemListParams, JudgeAgreementParams, AgentSettings, AgentSettingsRequest, BenchmarkStatus, BenchmarkSourceKind, BenchmarkRunStatus, BenchmarkScoring, BenchmarkDimensionScore, Benchmark, BenchmarkItem, BenchmarkRun, BenchmarkHistoryPoint, BenchmarkSource, BenchmarkCreateParams, BenchmarkListParams, BenchmarkItemListParams, BenchmarkHistoryParams, BenchmarkRetireParams, TrainingRuleBenchmarkRequest, InferenceAlias, InferenceAliasRequest, TrainingRuleListResponse, TrainingRuleResponse, TrainingRuleMutationResponse, TrainingRuleDeleteResponse, TrainingRunListResponse, TrainingRunResponse, TrainingRunActionResponse, EvaluationItemsResponse, AgentSettingsResponse, InferenceAliasListResponse, InferenceAliasResponse, InferenceAliasDeleteResponse, BenchmarkListResponse, BenchmarkItemsResponse, BenchmarkHistoryResponse, TrainingRuleRunRefusalCode, TrainingRuleSaveRefusalCode, TrainingRuleMonthlyLimitRefusal, LoopDatasetDeleteRefusalCode, PipelineStatus, PipelineRecipeExploration, PipelineActiveRun, PipelineVersion, Pipeline, PipelineListResponse, PipelineResponse, } from './types.js';
79
79
  /** The closed set of run states a training run never leaves. */
80
80
  export { TERMINAL_RUN_STATES } from './types.js';
81
81
  /** The most versions a pipeline may be set to make. */
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.14';
39
+ export const VERSION = '0.2.15-dev.256';
40
40
  export class RunBiOS {
41
41
  /** Search models, fetch configs, check adapter compatibility. */
42
42
  models;
@@ -336,7 +336,7 @@ export class Inference {
336
336
  this.key = config.inferenceKey || envInferenceKey() || envApiKey();
337
337
  // Same default host as HttpClient (api.runbios.ai); api.runbios.ai cutover
338
338
  // is planned once its DNS exists — update both call sites together.
339
- this.baseUrl = (config.baseUrl || envBaseUrl() || 'https://api.runbios.ai').replace(/\/+$/, '');
339
+ this.baseUrl = (config.baseUrl || envBaseUrl() || 'https://api-dev.runbios.ai').replace(/\/+$/, '');
340
340
  this.timeout = config.timeout ?? 900_000;
341
341
  this._http = http;
342
342
  }
@@ -296,7 +296,8 @@ export declare class Loop {
296
296
  *
297
297
  * `min_new_rows` counts only work reviewed SINCE THE LAST BUILD. Counting
298
298
  * the whole corpus would fire the rule every interval forever, because a
299
- * total that has crossed a threshold stays across it.
299
+ * total that has crossed a threshold stays across it. It is at least 100,
300
+ * and 100 when absent: a set built from fewer is too small to learn from.
300
301
  */
301
302
  createBuildRule(params: LoopBuildRuleParams): Promise<LoopBuildRule>;
302
303
  /**
@@ -575,6 +576,10 @@ export declare class Loop {
575
576
  * `model_revision` is empty unless training-service actually pinned a
576
577
  * commit; test `unreachable.length > 0` to tell a degraded pass from a
577
578
  * refusal.
579
+ *
580
+ * A `TRAINING_NOT_ENABLED` refusal is neither: training is in beta and this
581
+ * organisation does not hold the grant. It is in `refusals`, never in
582
+ * `unreachable`, and nothing in the request can lift it.
578
583
  */
579
584
  preflightTrainingRule(params: TrainingRulePreflightRequest): Promise<TrainingRulePreflight>;
580
585
  /**
@@ -597,6 +602,10 @@ export declare class Loop {
597
602
  * `terms_version` they were shown. Do not invent ceilings or price caps on
598
603
  * their behalf.
599
604
  *
605
+ * Refused `409 TRAINING_NOT_ENABLED`, with nothing saved, while training is
606
+ * in beta and this organisation does not hold the grant: do not retry, ask
607
+ * the platform team to enable it. See `TrainingRuleSaveRefusalCode`.
608
+ *
600
609
  * @example
601
610
  * ```ts
602
611
  * const estimate = await client.loop.preflightTrainingRule(draft);
@@ -638,6 +647,12 @@ export declare class Loop {
638
647
  * `consent_required`, and carries a fresh `preflight` with the new figures.
639
648
  * Pass `expected_revision` to be refused with `REVISION_MISMATCH` rather
640
649
  * than overwrite an edit somebody else made in the meantime.
650
+ *
651
+ * Switching a rule on, switching it into preference training or carrying
652
+ * `accept_terms` re-runs the preflight, and can be refused
653
+ * `409 TRAINING_NOT_ENABLED` like a create. A rule paused
654
+ * `training_not_enabled` is started again by a save of it once the
655
+ * organisation has been enabled.
641
656
  */
642
657
  updateTrainingRule(id: string, params: TrainingRuleUpdateRequest): Promise<TrainingRuleMutationResponse>;
643
658
  /**
@@ -654,7 +669,8 @@ export declare class Loop {
654
669
  * {@link preflightTrainingRule} or from the `preflight` on the update reply,
655
670
  * and send the `revision` those figures belong to. A stale revision is
656
671
  * refused with `409`, which is the point: it means the amounts moved again
657
- * after they were read.
672
+ * after they were read. `409 TRAINING_NOT_ENABLED` means training is in beta
673
+ * and this organisation does not hold the grant.
658
674
  */
659
675
  consentTrainingRule(id: string, params: TrainingRuleConsentRequest): Promise<TrainingRule>;
660
676
  /**
@@ -795,7 +811,7 @@ export declare class Loop {
795
811
  * replayed against both models on every run that finishes its comparison,
796
812
  * and reported as two absolute numbers on a scale that does not move.
797
813
  *
798
- * 10 to 200 conversations. A named conversation with nothing to ask a model
814
+ * 20 to 200 conversations. A named conversation with nothing to ask a model
799
815
  * is refused rather than skipped, because pinning 47 of the 50 you chose is
800
816
  * the set being wrong from the first day and you would never find out.
801
817
  *
@@ -372,7 +372,8 @@ export class Loop {
372
372
  *
373
373
  * `min_new_rows` counts only work reviewed SINCE THE LAST BUILD. Counting
374
374
  * the whole corpus would fire the rule every interval forever, because a
375
- * total that has crossed a threshold stays across it.
375
+ * total that has crossed a threshold stays across it. It is at least 100,
376
+ * and 100 when absent: a set built from fewer is too small to learn from.
376
377
  */
377
378
  async createBuildRule(params) {
378
379
  const res = await this._http.fetchPost('/api/loop/build-rules', params);
@@ -784,6 +785,10 @@ export class Loop {
784
785
  * `model_revision` is empty unless training-service actually pinned a
785
786
  * commit; test `unreachable.length > 0` to tell a degraded pass from a
786
787
  * refusal.
788
+ *
789
+ * A `TRAINING_NOT_ENABLED` refusal is neither: training is in beta and this
790
+ * organisation does not hold the grant. It is in `refusals`, never in
791
+ * `unreachable`, and nothing in the request can lift it.
787
792
  */
788
793
  async preflightTrainingRule(params) {
789
794
  return this._http.fetchPost('/api/loop/training-rules/preflight', params);
@@ -808,6 +813,10 @@ export class Loop {
808
813
  * `terms_version` they were shown. Do not invent ceilings or price caps on
809
814
  * their behalf.
810
815
  *
816
+ * Refused `409 TRAINING_NOT_ENABLED`, with nothing saved, while training is
817
+ * in beta and this organisation does not hold the grant: do not retry, ask
818
+ * the platform team to enable it. See `TrainingRuleSaveRefusalCode`.
819
+ *
811
820
  * @example
812
821
  * ```ts
813
822
  * const estimate = await client.loop.preflightTrainingRule(draft);
@@ -872,6 +881,12 @@ export class Loop {
872
881
  * `consent_required`, and carries a fresh `preflight` with the new figures.
873
882
  * Pass `expected_revision` to be refused with `REVISION_MISMATCH` rather
874
883
  * than overwrite an edit somebody else made in the meantime.
884
+ *
885
+ * Switching a rule on, switching it into preference training or carrying
886
+ * `accept_terms` re-runs the preflight, and can be refused
887
+ * `409 TRAINING_NOT_ENABLED` like a create. A rule paused
888
+ * `training_not_enabled` is started again by a save of it once the
889
+ * organisation has been enabled.
875
890
  */
876
891
  async updateTrainingRule(id, params) {
877
892
  return this._http.fetchPut(`/api/loop/training-rules/${encodeURIComponent(id)}`, params);
@@ -890,7 +905,8 @@ export class Loop {
890
905
  * {@link preflightTrainingRule} or from the `preflight` on the update reply,
891
906
  * and send the `revision` those figures belong to. A stale revision is
892
907
  * refused with `409`, which is the point: it means the amounts moved again
893
- * after they were read.
908
+ * after they were read. `409 TRAINING_NOT_ENABLED` means training is in beta
909
+ * and this organisation does not hold the grant.
894
910
  */
895
911
  async consentTrainingRule(id, params) {
896
912
  const res = await this._http.fetchPost(`/api/loop/training-rules/${encodeURIComponent(id)}/consent`, params);
@@ -1100,7 +1116,7 @@ export class Loop {
1100
1116
  * replayed against both models on every run that finishes its comparison,
1101
1117
  * and reported as two absolute numbers on a scale that does not move.
1102
1118
  *
1103
- * 10 to 200 conversations. A named conversation with nothing to ask a model
1119
+ * 20 to 200 conversations. A named conversation with nothing to ask a model
1104
1120
  * is refused rather than skipped, because pinning 47 of the 50 you chose is
1105
1121
  * the set being wrong from the first day and you would never find out.
1106
1122
  *
package/dist/types.d.ts CHANGED
@@ -8,13 +8,13 @@ export interface BiOSConfig {
8
8
  orgId?: string;
9
9
  /** Workspace ID. Optional when using API keys (resolved from the key). Can override for multi-workspace keys. */
10
10
  workspaceId?: string;
11
- /** Base URL for the API. Falls back to the RUNBIOS_BASE_URL environment variable (legacy: BIOS_BASE_URL), then the canonical https://api.runbios.ai hostname. */
11
+ /** Base URL for the API. Falls back to the RUNBIOS_BASE_URL environment variable (legacy: BIOS_BASE_URL), then the canonical https://api-dev.runbios.ai hostname. */
12
12
  baseUrl?: string;
13
13
  /** Request timeout in milliseconds. Defaults to 30000. */
14
14
  timeout?: number;
15
15
  /** Default per-deployment inference key. Can be overridden per inference call. */
16
16
  inferenceKey?: string;
17
- /** Inference base URL. Defaults to baseUrl, then https://api.runbios.ai. */
17
+ /** Inference base URL. Defaults to baseUrl, then https://api-dev.runbios.ai. */
18
18
  inferenceBaseUrl?: string;
19
19
  /** End-to-end inference timeout in milliseconds. Defaults to 15 minutes. */
20
20
  inferenceTimeout?: number;
@@ -2704,9 +2704,9 @@ export interface LoopBuildRuleParams {
2704
2704
  method: string;
2705
2705
  /**
2706
2706
  * How many rows reviewed SINCE THE LAST BUILD must exist before this fires
2707
- * again. Minimum 10. Counting the whole corpus instead would fire the rule
2708
- * every interval forever, because a total that has crossed a threshold stays
2709
- * across it.
2707
+ * again. Minimum 100, and 100 when absent. Counting the whole corpus instead
2708
+ * would fire the rule every interval forever, because a total that has
2709
+ * crossed a threshold stays across it.
2710
2710
  */
2711
2711
  min_new_rows?: number;
2712
2712
  enabled?: boolean;
@@ -3146,7 +3146,13 @@ export type TrainingCombinator = 'and' | 'or';
3146
3146
  export type ServingKind = 'serverless_slug' | 'deployment';
3147
3147
  export type TrainingRulePausedReason = 'consent_invalid' | 'insufficient_funds' | 'authorizer_not_member' | 'model_not_trainable' | 'platform_capacity'
3148
3148
  /** A peer was unreachable when the rule was saved, so it has not been validated yet. */
3149
- | 'validation_pending';
3149
+ | 'validation_pending'
3150
+ /**
3151
+ * Training is in beta and the rule's organisation does not hold the grant: a
3152
+ * run was refused with the platform's pre-launch gate. Nothing on the rule is
3153
+ * wrong; the platform team enables training, then a member saves the rule.
3154
+ */
3155
+ | 'training_not_enabled';
3150
3156
  /**
3151
3157
  * How a training rule trains, on the wire of the automatic-training routes.
3152
3158
  *
@@ -3457,7 +3463,7 @@ export interface TrainingRuleBuildSpec {
3457
3463
  */
3458
3464
  export interface LoopBuildRuleUpdateParams {
3459
3465
  enabled?: boolean;
3460
- /** Rows reviewed SINCE THE LAST BUILD before this fires again. Minimum 10. */
3466
+ /** Rows reviewed SINCE THE LAST BUILD before this fires again. Minimum 100. */
3461
3467
  min_new_rows?: number;
3462
3468
  /** The same selection `createDataset` takes, replayed verbatim. */
3463
3469
  spec?: LoopDatasetCreateParams;
@@ -3473,7 +3479,11 @@ export interface TrainingRuleTriggerInput {
3473
3479
  /** null drops the weekday, which is what a weekly rule moved to daily needs. */
3474
3480
  cadence_weekday?: number | null;
3475
3481
  combinator?: TrainingCombinator;
3476
- /** null removes the row floor, leaving the schedule as the only trigger. */
3482
+ /**
3483
+ * Conversations reviewed since the last version before the rule fires on
3484
+ * rows. At least 100. null removes the row floor, leaving the schedule as the
3485
+ * only trigger.
3486
+ */
3477
3487
  min_new_rows?: number | null;
3478
3488
  /** 1 to 10. Absent leaves it as it is; absent on a create means five. */
3479
3489
  max_versions?: number;
@@ -3517,6 +3527,10 @@ export interface TrainingRuleMoneyInput {
3517
3527
  eval_ceiling_cents?: number;
3518
3528
  /** null removes the monthly cap. Absent leaves it exactly where it stands. */
3519
3529
  monthly_ceiling_cents?: number | null;
3530
+ /**
3531
+ * The most held-back conversations one comparison scores, 10 to 500 and
3532
+ * never below `min_holdout_rows`. Absent on a create means 100.
3533
+ */
3520
3534
  eval_max_rows?: number;
3521
3535
  }
3522
3536
  export interface TrainingRuleEvaluationInput {
@@ -3525,6 +3539,11 @@ export interface TrainingRuleEvaluationInput {
3525
3539
  /** null drops the override, returning to the judge's own advisory model. */
3526
3540
  judge_model?: string | null;
3527
3541
  graders_scope?: GradersScope;
3542
+ /**
3543
+ * The fewest held-back conversations that may decide a comparison. At least
3544
+ * 20, and 20 when absent on a create. A set that would hold back fewer is
3545
+ * not built.
3546
+ */
3528
3547
  min_holdout_rows?: number;
3529
3548
  eval_max_tokens?: number;
3530
3549
  }
@@ -4136,7 +4155,7 @@ export interface BenchmarkSource {
4136
4155
  split?: string;
4137
4156
  }
4138
4157
  /**
4139
- * The pin: 10 to 200 conversations, and a judge with a rubric to measure them.
4158
+ * The pin: 20 to 200 conversations, and a judge with a rubric to measure them.
4140
4159
  *
4141
4160
  * A conversation with nothing to ask a model is refused rather than skipped.
4142
4161
  * Pinning 47 of the 50 somebody chose is the set being wrong from the first
@@ -4216,6 +4235,25 @@ export interface TrainingRuleBenchmarkRequest {
4216
4235
  * `train_rows`, `holdout_rows` and the `floor` it needed.
4217
4236
  */
4218
4237
  export type TrainingRuleRunRefusalCode = 'CONSENT_REQUIRED' | 'RULE_PAUSED' | 'RUN_ACTIVE' | 'VERSION_LIMIT_REACHED' | 'MONTHLY_LIMIT_REACHED' | 'AGENT_OFF' | 'NOT_ENOUGH_ROWS';
4238
+ /**
4239
+ * The machine codes a SAVE of a training rule is refused with when the
4240
+ * preflight it runs refuses: `createTrainingRule`, an `updateTrainingRule`
4241
+ * that switches a rule on or into preference training or carries
4242
+ * `accept_terms`, and `consentTrainingRule`. Every other preflight refusal is
4243
+ * a `400` carrying the peer's own sentence; `preflightTrainingRule` answers
4244
+ * `200` with the same codes in `refusals`.
4245
+ *
4246
+ * - `TRAINING_NOT_ENABLED` (409): training is in beta and this organisation
4247
+ * does not hold the grant. Nothing is saved and nothing in the request can
4248
+ * lift it, so do not retry: ask the platform team to enable training for
4249
+ * the organisation. It is answered ahead of every other refusal. A rule that
4250
+ * meets it at fire time is paused `training_not_enabled` instead (see
4251
+ * {@link TrainingRulePausedReason}).
4252
+ * - `METHOD_NOT_ENABLED` (422): a training method the platform has not enabled.
4253
+ * - `CEILING_TOO_LOW` (422): a ceiling cannot buy the minimum hours at the
4254
+ * accepted price cap.
4255
+ */
4256
+ export type TrainingRuleSaveRefusalCode = 'TRAINING_NOT_ENABLED' | 'METHOD_NOT_ENABLED' | 'CEILING_TOO_LOW';
4219
4257
  /**
4220
4258
  * The machine codes `deleteDataset` can be refused with.
4221
4259
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runbios-sdk",
3
- "version": "0.2.14",
3
+ "version": "0.2.15-dev.256",
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",