0g-orbit 0.1.0 → 0.2.0

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/orbit.d.ts CHANGED
@@ -1,14 +1,18 @@
1
1
  import type { NetworkConfig } from './networks.js';
2
2
  import { StorageClient } from './storage.js';
3
3
  import { InferenceClient } from './inference.js';
4
- import type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus } from './types.js';
4
+ import { FineTuningClient } from './fine-tuning.js';
5
+ import type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus, DatasetUploadResult, CreateTaskOptions, FineTuneTask, FineTuneModel, FineTuneProvider } from './types.js';
5
6
  export declare class Orbit {
6
7
  readonly network: NetworkConfig;
7
8
  readonly storage: StorageClient;
8
9
  readonly inference: InferenceClient;
10
+ private _fineTuning;
9
11
  private wallet;
10
12
  private provider;
11
13
  private constructor();
14
+ /** Lazy-initialized fine-tuning client */
15
+ get fineTuning(): FineTuningClient;
12
16
  /**
13
17
  * Connect to the 0G network. This is the primary entry point.
14
18
  *
@@ -21,6 +25,12 @@ export declare class Orbit {
21
25
  retrieve(rootHash: string, outputPath: string, options?: RetrieveOptions): Promise<void>;
22
26
  infer(model: string, options: InferOptions): Promise<InferResult>;
23
27
  listServices(): Promise<ServiceInfo[]>;
28
+ uploadDataset(filePath: string): Promise<DatasetUploadResult>;
29
+ createFineTuneTask(options: CreateTaskOptions): Promise<FineTuneTask>;
30
+ getFineTuneTask(providerAddress: string, taskId: string): Promise<FineTuneTask>;
31
+ downloadModel(providerAddress: string, taskId: string, outputPath: string): Promise<void>;
32
+ listModels(): Promise<FineTuneModel[]>;
33
+ listProviders(): Promise<FineTuneProvider[]>;
24
34
  status(): Promise<AccountStatus>;
25
35
  get address(): string;
26
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EAChB,MAAM,YAAY,CAAA;AAGnB,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO;IAYP;;;;;OAKG;WACU,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAuEnD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,SAAS,CACX,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAClC,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,WAAW,CAAC;IAIjB,QAAQ,CACV,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMV,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMtC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAWtC,IAAI,OAAO,IAAI,MAAM,CAEpB;CACJ"}
1
+ {"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EACnB,MAAM,YAAY,CAAA;AAGnB,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO;IAYP,0CAA0C;IAC1C,IAAI,UAAU,IAAI,gBAAgB,CAKjC;IAED;;;;;OAKG;WACU,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAuEnD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,SAAS,CACX,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAClC,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,WAAW,CAAC;IAIjB,QAAQ,CACV,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMV,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMtC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7D,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/E,aAAa,CACf,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM5C,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAWtC,IAAI,OAAO,IAAI,MAAM,CAEpB;CACJ"}
package/dist/orbit.js CHANGED
@@ -2,11 +2,13 @@ import { Wallet, JsonRpcProvider } from 'ethers';
2
2
  import { getNetwork } from './networks.js';
3
3
  import { StorageClient } from './storage.js';
4
4
  import { InferenceClient } from './inference.js';
5
+ import { FineTuningClient } from './fine-tuning.js';
5
6
  import { ConnectionError } from './errors.js';
6
7
  export class Orbit {
7
8
  network;
8
9
  storage;
9
10
  inference;
11
+ _fineTuning = null;
10
12
  wallet;
11
13
  provider;
12
14
  constructor(network, wallet, provider) {
@@ -16,6 +18,13 @@ export class Orbit {
16
18
  this.storage = new StorageClient(network, wallet);
17
19
  this.inference = new InferenceClient(network, wallet);
18
20
  }
21
+ /** Lazy-initialized fine-tuning client */
22
+ get fineTuning() {
23
+ if (!this._fineTuning) {
24
+ this._fineTuning = new FineTuningClient(this.network, this.wallet, this.storage);
25
+ }
26
+ return this._fineTuning;
27
+ }
19
28
  /**
20
29
  * Connect to the 0G network. This is the primary entry point.
21
30
  *
@@ -91,6 +100,25 @@ export class Orbit {
91
100
  async listServices() {
92
101
  return this.inference.listServices();
93
102
  }
103
+ // --- Fine-Tuning shortcuts ---
104
+ async uploadDataset(filePath) {
105
+ return this.fineTuning.uploadDataset(filePath);
106
+ }
107
+ async createFineTuneTask(options) {
108
+ return this.fineTuning.createTask(options);
109
+ }
110
+ async getFineTuneTask(providerAddress, taskId) {
111
+ return this.fineTuning.getTask(providerAddress, taskId);
112
+ }
113
+ async downloadModel(providerAddress, taskId, outputPath) {
114
+ return this.fineTuning.downloadModel(providerAddress, taskId, outputPath);
115
+ }
116
+ async listModels() {
117
+ return this.fineTuning.listModels();
118
+ }
119
+ async listProviders() {
120
+ return this.fineTuning.listProviders();
121
+ }
94
122
  // --- Account ---
95
123
  async status() {
96
124
  const balance = await this.provider.getBalance(this.wallet.address);
package/dist/orbit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"orbit.js","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orbit.js","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"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"}
package/dist/storage.js CHANGED
@@ -73,15 +73,15 @@ export class StorageClient {
73
73
  if (uploadErr) {
74
74
  const msg = uploadErr.message;
75
75
  let suggestion = 'Check your OG balance and try again.';
76
- if (msg.includes('gas') || msg.includes('underpriced')) {
76
+ if (msg.includes('insufficient funds') || msg.includes('INSUFFICIENT_FUNDS')) {
77
+ suggestion = 'Your wallet needs more OG for gas. Get testnet OG from: https://faucet.0g.ai';
78
+ }
79
+ else if (msg.includes('underpriced') || msg.includes('gas required exceeds')) {
77
80
  suggestion = `Gas auto-escalation hit the ceiling (${maxGas} wei). Try a higher maxGasPrice, e.g. { maxGasPrice: ${maxGas * 2}n }`;
78
81
  }
79
82
  else if (msg.includes('timeout') || msg.includes('ETIMEDOUT')) {
80
83
  suggestion = 'The RPC endpoint timed out. Try a different RPC URL with the rpcUrl option.';
81
84
  }
82
- else if (msg.includes('insufficient funds')) {
83
- suggestion = 'Your wallet needs more OG for gas. Get testnet OG from: https://faucet.0g.ai';
84
- }
85
85
  throw new StorageError(`Upload failed: ${msg}`, suggestion);
86
86
  }
87
87
  if ('txHash' in result) {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -78,4 +78,58 @@ export interface AccountStatus {
78
78
  /** Wallet address */
79
79
  address: string;
80
80
  }
81
+ export interface DatasetUploadResult {
82
+ /** Merkle root hash of the uploaded dataset in 0G Storage */
83
+ root: string;
84
+ /** On-chain transaction hash */
85
+ txHash: string;
86
+ }
87
+ export interface CreateTaskOptions {
88
+ /** Name of the base model to fine-tune (e.g. 'Qwen2.5-0.5B-Instruct') */
89
+ model: string;
90
+ /** Root hash of the dataset in 0G Storage (from uploadDataset) */
91
+ dataset: string;
92
+ /** Provider wallet address */
93
+ providerAddress: string;
94
+ /** Training hyperparameters (JSON object or file path) */
95
+ trainingParams?: {
96
+ nEpochs?: number;
97
+ batchSize?: number;
98
+ learningRate?: number;
99
+ loraRank?: number;
100
+ loraAlpha?: number;
101
+ [key: string]: unknown;
102
+ };
103
+ }
104
+ export type FineTuneStatus = 'init' | 'setting-up' | 'set-up' | 'training' | 'trained' | 'delivering' | 'delivered' | 'acknowledged' | 'finished' | 'failed';
105
+ export interface FineTuneTask {
106
+ /** Task ID */
107
+ id: string;
108
+ /** Base model name or hash */
109
+ model: string;
110
+ /** Dataset root hash */
111
+ dataset: string;
112
+ /** Provider address */
113
+ provider: string;
114
+ /** Current task status */
115
+ status: FineTuneStatus;
116
+ /** Task creation time */
117
+ createdAt?: string;
118
+ /** Last update time */
119
+ updatedAt?: string;
120
+ }
121
+ export interface FineTuneModel {
122
+ /** Model name */
123
+ name: string;
124
+ /** Model configuration (hash, description, etc.) */
125
+ config: Record<string, string>;
126
+ }
127
+ export interface FineTuneProvider {
128
+ /** Provider wallet address */
129
+ address: string;
130
+ /** Provider endpoint URL */
131
+ url: string;
132
+ /** Customized models offered by this provider */
133
+ models: string[];
134
+ }
81
135
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,WAAW,WAAW;IACxB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB;IAClB,KAAK,CAAC,EAAE;QACJ,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,mCAAmC;IACnC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAA;IACpB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0g-orbit",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "The developer toolkit for 0G. Store, infer, deploy — one SDK, one CLI, five minutes.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,15 @@
34
34
  "typescript": "^5.4.0",
35
35
  "vitest": "^1.6.0"
36
36
  },
37
- "keywords": ["0g", "blockchain", "ai", "storage", "inference", "sdk", "cli"],
37
+ "keywords": [
38
+ "0g",
39
+ "blockchain",
40
+ "ai",
41
+ "storage",
42
+ "inference",
43
+ "sdk",
44
+ "cli"
45
+ ],
38
46
  "license": "MIT",
39
47
  "engines": {
40
48
  "node": ">=18.0.0"
package/src/cli/cli.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  import { Command } from 'commander'
4
4
  import { storeCommand, storeDataCommand, retrieveCommand } from './commands/storage.js'
5
5
  import { inferCommand, listServicesCommand } from './commands/inference.js'
6
+ import { fineTuneCommand, tasksCommand, modelsCommand } from './commands/fine-tuning.js'
6
7
  import { statusCommand } from './commands/account.js'
7
8
  import { initCommand } from './commands/init.js'
8
9
 
@@ -60,6 +61,31 @@ program
60
61
  .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
61
62
  .action(listServicesCommand)
62
63
 
64
+ program
65
+ .command('fine-tune <dataset>')
66
+ .description('Upload dataset and create a fine-tuning task')
67
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
68
+ .requiredOption('--model <name>', 'base model to fine-tune')
69
+ .requiredOption('--provider <address>', 'provider wallet address')
70
+ .option('--epochs <n>', 'number of training epochs')
71
+ .option('--batch-size <n>', 'training batch size')
72
+ .option('--learning-rate <n>', 'learning rate')
73
+ .option('--lora-rank <n>', 'LoRA rank')
74
+ .option('--lora-alpha <n>', 'LoRA alpha')
75
+ .action(fineTuneCommand)
76
+
77
+ program
78
+ .command('tasks <provider> [taskId]')
79
+ .description('List fine-tuning tasks or show a specific task')
80
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
81
+ .action(tasksCommand)
82
+
83
+ program
84
+ .command('models')
85
+ .description('List available base models for fine-tuning')
86
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
87
+ .action(modelsCommand)
88
+
63
89
  program
64
90
  .command('status')
65
91
  .description('Show account status and balance')
@@ -0,0 +1,169 @@
1
+ import ora from 'ora'
2
+ import chalk from 'chalk'
3
+ import { connectOrbit, formatError } from '../utils.js'
4
+
5
+ interface FineTuneOpts {
6
+ network: string
7
+ model: string
8
+ provider: string
9
+ epochs?: string
10
+ batchSize?: string
11
+ learningRate?: string
12
+ loraRank?: string
13
+ loraAlpha?: string
14
+ }
15
+
16
+ export async function fineTuneCommand(dataset: string, opts: FineTuneOpts) {
17
+ const spinner = ora('Connecting to 0G...').start()
18
+
19
+ try {
20
+ const orbit = await connectOrbit(opts.network)
21
+
22
+ // Step 1: Upload dataset
23
+ spinner.text = `Uploading dataset ${dataset}...`
24
+ const upload = await orbit.uploadDataset(dataset)
25
+ spinner.text = `Dataset uploaded (root: ${upload.root.slice(0, 12)}...). Creating task...`
26
+
27
+ // Step 2: Create task
28
+ const trainingParams: Record<string, unknown> = {}
29
+ if (opts.epochs) trainingParams.nEpochs = parseInt(opts.epochs, 10)
30
+ if (opts.batchSize) trainingParams.batchSize = parseInt(opts.batchSize, 10)
31
+ if (opts.learningRate) trainingParams.learningRate = parseFloat(opts.learningRate)
32
+ if (opts.loraRank) trainingParams.loraRank = parseInt(opts.loraRank, 10)
33
+ if (opts.loraAlpha) trainingParams.loraAlpha = parseInt(opts.loraAlpha, 10)
34
+
35
+ const task = await orbit.createFineTuneTask({
36
+ model: opts.model,
37
+ dataset: upload.root,
38
+ providerAddress: opts.provider,
39
+ trainingParams: Object.keys(trainingParams).length > 0 ? trainingParams : undefined,
40
+ })
41
+
42
+ spinner.succeed('Fine-tuning task created')
43
+ console.log()
44
+ console.log(chalk.bold(' Task ID: ') + chalk.cyan(task.id))
45
+ console.log(chalk.bold(' Model: ') + task.model)
46
+ console.log(chalk.bold(' Dataset: ') + chalk.dim(upload.root))
47
+ console.log(chalk.bold(' Provider: ') + chalk.dim(task.provider))
48
+ console.log(chalk.bold(' Status: ') + task.status)
49
+ console.log()
50
+ console.log(chalk.dim(` Check progress: orbit tasks ${task.provider} ${task.id}`))
51
+ } catch (err) {
52
+ spinner.fail(chalk.red('Fine-tuning failed'))
53
+ console.error(chalk.dim(` ${formatError(err)}`))
54
+ process.exit(1)
55
+ }
56
+ }
57
+
58
+ interface TasksOpts {
59
+ network: string
60
+ }
61
+
62
+ export async function tasksCommand(
63
+ providerAddress: string,
64
+ taskId: string | undefined,
65
+ opts: TasksOpts
66
+ ) {
67
+ const spinner = ora('Fetching tasks...').start()
68
+
69
+ try {
70
+ const orbit = await connectOrbit(opts.network)
71
+
72
+ if (taskId) {
73
+ // Show single task + log
74
+ const task = await orbit.getFineTuneTask(providerAddress, taskId)
75
+ spinner.stop()
76
+
77
+ console.log(chalk.bold(`\n Task ${task.id}\n`))
78
+ console.log(` Status: ${statusColor(task.status)}`)
79
+ console.log(` Model: ${task.model}`)
80
+ console.log(` Dataset: ${chalk.dim(task.dataset)}`)
81
+ console.log(` Provider: ${chalk.dim(task.provider)}`)
82
+ if (task.createdAt) console.log(` Created: ${task.createdAt}`)
83
+ if (task.updatedAt) console.log(` Updated: ${task.updatedAt}`)
84
+
85
+ // Try to get log
86
+ try {
87
+ const log = await orbit.fineTuning.getTaskLog(providerAddress, taskId)
88
+ if (log) {
89
+ console.log(chalk.bold('\n Training Log:\n'))
90
+ console.log(chalk.dim(` ${log.replace(/\n/g, '\n ')}`))
91
+ }
92
+ } catch {
93
+ // Log not available yet
94
+ }
95
+ console.log()
96
+ } else {
97
+ // List all tasks for this provider
98
+ const tasks = await orbit.fineTuning.listTasks(providerAddress)
99
+ spinner.stop()
100
+
101
+ if (tasks.length === 0) {
102
+ console.log(chalk.dim('\n No tasks found for this provider.\n'))
103
+ return
104
+ }
105
+
106
+ console.log(chalk.bold(`\n ${tasks.length} tasks\n`))
107
+ for (const task of tasks) {
108
+ console.log(` ${chalk.cyan(task.id ?? 'unknown')} ${statusColor(task.status)} ${chalk.dim(task.model)}`)
109
+ }
110
+ console.log()
111
+ }
112
+ } catch (err) {
113
+ spinner.fail(chalk.red('Failed to fetch tasks'))
114
+ console.error(chalk.dim(` ${formatError(err)}`))
115
+ process.exit(1)
116
+ }
117
+ }
118
+
119
+ interface ModelsOpts {
120
+ network: string
121
+ }
122
+
123
+ export async function modelsCommand(opts: ModelsOpts) {
124
+ const spinner = ora('Fetching models...').start()
125
+
126
+ try {
127
+ const orbit = await connectOrbit(opts.network)
128
+ const models = await orbit.listModels()
129
+
130
+ spinner.stop()
131
+
132
+ if (models.length === 0) {
133
+ console.log(chalk.dim('\n No models available on this network.\n'))
134
+ return
135
+ }
136
+
137
+ console.log(chalk.bold(`\n ${models.length} models available for fine-tuning\n`))
138
+ for (const model of models) {
139
+ const desc = model.config.description ?? ''
140
+ const provider = model.config.provider
141
+ console.log(` ${chalk.cyan(model.name)}`)
142
+ if (desc) console.log(chalk.dim(` ${desc}`))
143
+ if (provider) console.log(chalk.dim(` provider: ${provider}`))
144
+ }
145
+ console.log()
146
+ } catch (err) {
147
+ spinner.fail(chalk.red('Failed to list models'))
148
+ console.error(chalk.dim(` ${formatError(err)}`))
149
+ process.exit(1)
150
+ }
151
+ }
152
+
153
+ function statusColor(status: string): string {
154
+ switch (status) {
155
+ case 'finished':
156
+ case 'acknowledged':
157
+ return chalk.green(status)
158
+ case 'training':
159
+ case 'delivering':
160
+ case 'setting-up':
161
+ return chalk.yellow(status)
162
+ case 'failed':
163
+ return chalk.red(status)
164
+ case 'delivered':
165
+ return chalk.blue(status)
166
+ default:
167
+ return chalk.dim(status)
168
+ }
169
+ }
package/src/errors.ts CHANGED
@@ -77,3 +77,14 @@ export class TimeoutError extends OrbitError {
77
77
  this.name = 'TimeoutError'
78
78
  }
79
79
  }
80
+
81
+ export class FineTuningError extends OrbitError {
82
+ constructor(message: string, suggestion?: string) {
83
+ super(
84
+ message,
85
+ 'FINE_TUNING_ERROR',
86
+ suggestion ?? 'Check model and provider availability with orbit.listModels() or orbit.listProviders().'
87
+ )
88
+ this.name = 'FineTuningError'
89
+ }
90
+ }