runbios-sdk 0.2.1-dev.111 → 0.2.1-dev.112

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/README.md CHANGED
@@ -239,17 +239,47 @@ const preview = await client.datasets.preview('ds_abc123', { pageSize: 5 });
239
239
 
240
240
  // Import from HuggingFace
241
241
  const imported = await client.datasets.importFromHuggingFace({
242
- repoId: 'databricks/dolly-15k',
242
+ repoId: 'HuggingFaceH4/ultrachat_200k',
243
243
  integrationId: 'int_abc123',
244
- name: 'Dolly 15k',
244
+ name: 'Ultrachat SFT',
245
+ subset: 'default',
246
+ split: 'train_sft',
245
247
  });
246
248
 
247
249
  // Validate before upload
248
250
  const validation = await client.datasets.validate('./data.jsonl');
249
251
  ```
250
252
 
253
+ #### Connected Hub search and exact source selection
254
+
255
+ Use `client.integrations.list()` to discover connected accounts, then select the
256
+ returned ID explicitly. `client.integrations.browse(integrationId, { query,
257
+ page, limit })` searches with that account's access. Discovery returns account
258
+ metadata, never stored credentials.
259
+
260
+ Pass the same `integrationId` to `datasets.previewHub` and
261
+ `datasets.importFromHuggingFace`. Preview returns `available_configs` and
262
+ `available_splits`; choose the actual subset/split rather than assuming `train`.
263
+ A missing or unauthorized integration is an error, not anonymous fallback.
264
+ Public imports without an integration use `datasets.registerHuggingFace` and
265
+ require `workspaceId` on the client or method call.
266
+
267
+ Both import methods accept `revision`, `maxSamples`, `sampleStrategy` and
268
+ `importMode`. The service records immutable source metadata for resume. A Hub
269
+ preview does not prove readiness or preview an arbitrary older revision: inspect
270
+ the registered dataset when importing an explicit revision. Poll
271
+ `datasets.getStatus(id)` until `ready` before selecting it for training; a client
272
+ polling timeout does not cancel the background import.
273
+
251
274
  ### Training
252
275
 
276
+ `datasetIds` preserves source order. Pass the same `mixing` object to preflight
277
+ and create: `{ mode: 'interleave', weights: [3, 1], seed: 42 }`. Weights match the
278
+ ordered IDs. Modes are `sequential`, `shuffle`, `interleave`, and `phased`; phased
279
+ plans contain ordered `phases` with `name`, `portion`, optional `weights`, and
280
+ `shuffle`. The default composition seed is 42. Resume reconstructs data from
281
+ source pins and the stored plan and verifies the checksum.
282
+
253
283
  ```typescript
254
284
  const request = {
255
285
  idempotencyKey: 'training-create-20260711-0001',
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@
26
26
  import type { BiOSConfig, ApiKeyIntrospection } from './types.js';
27
27
  import { Models } from './resources/models.js';
28
28
  import { Datasets } from './resources/datasets.js';
29
+ import { Integrations } from './resources/integrations.js';
29
30
  import { Training } from './resources/training.js';
30
31
  import { Wallet } from './resources/wallet.js';
31
32
  import { GPU } from './resources/gpu.js';
@@ -35,12 +36,13 @@ import { Loop } from './resources/loop.js';
35
36
  * SDK version. Sent as part of the User-Agent header.
36
37
  * Must match package.json "version" -- enforced by a contract test.
37
38
  */
38
- export declare const VERSION = "0.2.1-dev.111";
39
+ export declare const VERSION = "0.2.1-dev.112";
39
40
  export declare class RunBiOS {
40
41
  /** Search models, fetch configs, check adapter compatibility. */
41
42
  readonly models: Models;
42
43
  /** Upload, import, preview, and manage training datasets. */
43
44
  readonly datasets: Datasets;
45
+ readonly integrations: Integrations;
44
46
  /** Create, monitor, stop, and resume fine-tuning jobs. */
45
47
  readonly training: Training;
46
48
  /** Check wallet balance. */
@@ -68,6 +70,7 @@ export { RunBiOS as BiOS };
68
70
  export { ApiError, GpuRejectionError, CapacityUnavailableError, ComingSoonError, CAPACITY_UNAVAILABLE_CODE, COMING_SOON_CODES, PERMANENT_GPU_CODES, isPermanentGpuCode, gpuRejectionCodeForReason, } from './client.js';
69
71
  export { Models } from './resources/models.js';
70
72
  export { Datasets } from './resources/datasets.js';
73
+ export { Integrations, type HuggingFaceIntegration, type IntegrationBrowseParams } from './resources/integrations.js';
71
74
  export { Training } from './resources/training.js';
72
75
  export { Wallet } from './resources/wallet.js';
73
76
  export { GPU, type GPURecommendation } from './resources/gpu.js';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@
26
26
  import { HttpClient, envInferenceKey } from './client.js';
27
27
  import { Models } from './resources/models.js';
28
28
  import { Datasets } from './resources/datasets.js';
29
+ import { Integrations } from './resources/integrations.js';
29
30
  import { Training } from './resources/training.js';
30
31
  import { Wallet } from './resources/wallet.js';
31
32
  import { GPU } from './resources/gpu.js';
@@ -35,12 +36,13 @@ import { Loop } from './resources/loop.js';
35
36
  * SDK version. Sent as part of the User-Agent header.
36
37
  * Must match package.json "version" -- enforced by a contract test.
37
38
  */
38
- export const VERSION = '0.2.1-dev.111';
39
+ export const VERSION = '0.2.1-dev.112';
39
40
  export class RunBiOS {
40
41
  /** Search models, fetch configs, check adapter compatibility. */
41
42
  models;
42
43
  /** Upload, import, preview, and manage training datasets. */
43
44
  datasets;
45
+ integrations;
44
46
  /** Create, monitor, stop, and resume fine-tuning jobs. */
45
47
  training;
46
48
  /** Check wallet balance. */
@@ -65,6 +67,7 @@ export class RunBiOS {
65
67
  this._http = http;
66
68
  this.models = new Models(http);
67
69
  this.datasets = new Datasets(http);
70
+ this.integrations = new Integrations(http);
68
71
  this.training = new Training(http);
69
72
  this.wallet = new Wallet(http);
70
73
  this.gpu = new GPU(http);
@@ -95,6 +98,7 @@ export { RunBiOS as BiOS };
95
98
  export { ApiError, GpuRejectionError, CapacityUnavailableError, ComingSoonError, CAPACITY_UNAVAILABLE_CODE, COMING_SOON_CODES, PERMANENT_GPU_CODES, isPermanentGpuCode, gpuRejectionCodeForReason, } from './client.js';
96
99
  export { Models } from './resources/models.js';
97
100
  export { Datasets } from './resources/datasets.js';
101
+ export { Integrations } from './resources/integrations.js';
98
102
  export { Training } from './resources/training.js';
99
103
  export { Wallet } from './resources/wallet.js';
100
104
  export { GPU } from './resources/gpu.js';
@@ -203,6 +203,7 @@ export class Datasets {
203
203
  return normalizeDataset(await this._http.fetchPost(`/api/datasets/integrations/${encodeURIComponent(params.integrationId)}/import`, {
204
204
  dataset_id: params.repoId,
205
205
  name: params.name || params.repoId.split('/').pop() || params.repoId,
206
+ revision: params.revision,
206
207
  subset: params.subset,
207
208
  split: params.split,
208
209
  max_samples: params.maxSamples,
@@ -239,6 +240,7 @@ export class Datasets {
239
240
  description: raw.description,
240
241
  hf_subset: raw.subset ?? raw.hf_subset,
241
242
  hf_split: raw.split ?? raw.hf_split,
243
+ hf_revision: raw.revision ?? raw.hf_revision,
242
244
  max_samples: raw.maxSamples ?? raw.max_samples,
243
245
  sample_strategy: raw.sampleStrategy ?? raw.sample_strategy,
244
246
  column_mapping: raw.columnMapping ?? raw.column_mapping,
@@ -348,6 +350,8 @@ export class Datasets {
348
350
  q.set('subset', params.subset);
349
351
  if (params.limit !== undefined)
350
352
  q.set('limit', String(params.limit));
353
+ if (params.integrationId)
354
+ q.set('integration_id', params.integrationId);
351
355
  return this._http.fetchGet(`/api/datasets/hub-preview?${q}`);
352
356
  }
353
357
  /**
@@ -0,0 +1,21 @@
1
+ import type { HttpClient } from '../client.js';
2
+ export interface HuggingFaceIntegration {
3
+ id: string;
4
+ label: string;
5
+ provider: string;
6
+ status: string;
7
+ hf_username?: string;
8
+ scope?: string;
9
+ }
10
+ export interface IntegrationBrowseParams {
11
+ query?: string;
12
+ page?: number;
13
+ limit?: number;
14
+ sort?: 'downloads' | 'likes' | 'modified';
15
+ }
16
+ export declare class Integrations {
17
+ private readonly _http;
18
+ constructor(_http: HttpClient);
19
+ list(): Promise<HuggingFaceIntegration[]>;
20
+ browse(id: string, params?: IntegrationBrowseParams): Promise<Record<string, unknown>>;
21
+ }
@@ -0,0 +1,20 @@
1
+ export class Integrations {
2
+ _http;
3
+ constructor(_http) {
4
+ this._http = _http;
5
+ }
6
+ async list() {
7
+ const result = await this._http.fetchGet('/api/datasets/integrations');
8
+ if (!Array.isArray(result.integrations))
9
+ throw new Error('The integration service did not return an account list');
10
+ return result.integrations;
11
+ }
12
+ async browse(id, params = {}) {
13
+ const query = new URLSearchParams({ page: String(params.page ?? 1), limit: String(params.limit ?? 20) });
14
+ if (params.query !== undefined)
15
+ query.set('search', params.query);
16
+ if (params.sort !== undefined)
17
+ query.set('sort', params.sort);
18
+ return this._http.fetchGet(`/api/datasets/integrations/${encodeURIComponent(id)}/browse?${query}`);
19
+ }
20
+ }
package/dist/types.d.ts CHANGED
@@ -396,8 +396,9 @@ export interface DatasetPreview {
396
396
  }
397
397
  /** Parameters for importing a dataset from HuggingFace Hub. */
398
398
  export interface DatasetImportHFParams {
399
- /** HuggingFace dataset repository ID (e.g. "databricks/dolly-15k"). */
399
+ /** HuggingFace dataset repository ID (e.g. "HuggingFaceH4/ultrachat_200k"). */
400
400
  repoId: string;
401
+ revision?: string;
401
402
  /** Display name for the imported dataset. */
402
403
  name?: string;
403
404
  /** Dataset subset/config to import. */
@@ -418,6 +419,7 @@ export interface DatasetImportHFParams {
418
419
  /** Parameters for registering a HuggingFace dataset without an integration. */
419
420
  export interface DatasetRegisterHFParams {
420
421
  repoId: string;
422
+ revision?: string;
421
423
  name?: string;
422
424
  workspaceId?: string;
423
425
  description?: string;
@@ -441,6 +443,7 @@ export interface DatasetHubSearchParams {
441
443
  export interface DatasetHubPreviewParams {
442
444
  /** HuggingFace dataset ID. */
443
445
  datasetId: string;
446
+ integrationId?: string;
444
447
  /** Split to preview. Defaults to "train". */
445
448
  split?: string;
446
449
  /** Subset/config name. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runbios-sdk",
3
- "version": "0.2.1-dev.111",
3
+ "version": "0.2.1-dev.112",
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",