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/cli/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import { Command } from 'commander';
3
3
  import { storeCommand, storeDataCommand, retrieveCommand } from './commands/storage.js';
4
4
  import { inferCommand, listServicesCommand } from './commands/inference.js';
5
+ import { fineTuneCommand, tasksCommand, modelsCommand } from './commands/fine-tuning.js';
5
6
  import { statusCommand } from './commands/account.js';
6
7
  import { initCommand } from './commands/init.js';
7
8
  const program = new Command();
@@ -50,6 +51,28 @@ program
50
51
  .description('List available AI services on the network')
51
52
  .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
52
53
  .action(listServicesCommand);
54
+ program
55
+ .command('fine-tune <dataset>')
56
+ .description('Upload dataset and create a fine-tuning task')
57
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
58
+ .requiredOption('--model <name>', 'base model to fine-tune')
59
+ .requiredOption('--provider <address>', 'provider wallet address')
60
+ .option('--epochs <n>', 'number of training epochs')
61
+ .option('--batch-size <n>', 'training batch size')
62
+ .option('--learning-rate <n>', 'learning rate')
63
+ .option('--lora-rank <n>', 'LoRA rank')
64
+ .option('--lora-alpha <n>', 'LoRA alpha')
65
+ .action(fineTuneCommand);
66
+ program
67
+ .command('tasks <provider> [taskId]')
68
+ .description('List fine-tuning tasks or show a specific task')
69
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
70
+ .action(tasksCommand);
71
+ program
72
+ .command('models')
73
+ .description('List available base models for fine-tuning')
74
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
75
+ .action(modelsCommand);
53
76
  program
54
77
  .command('status')
55
78
  .description('Show account status and balance')
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8BAA8B,CAAC;KAC3C,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,CAAC;KAC7D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,CAAC;KACtD,MAAM,CAAC,WAAW,CAAC,CAAA;AAExB,OAAO;KACF,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,CAAC;KACnD,MAAM,CAAC,YAAY,CAAC,CAAA;AAEzB,OAAO;KACF,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,CAAC;KACnD,MAAM,CAAC,gBAAgB,CAAC,CAAA;AAE7B,OAAO;KACF,OAAO,CAAC,8BAA8B,CAAC;KACvC,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,eAAe,CAAC,CAAA;AAE5B,OAAO;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC9C,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,KAAK,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;KACxD,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;KAC3D,MAAM,CAAC,YAAY,CAAC,CAAA;AAEzB,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAEhC,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,SAAS,CAAC;KACtE,MAAM,CAAC,aAAa,CAAC,CAAA;AAE1B,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ interface FineTuneOpts {
2
+ network: string;
3
+ model: string;
4
+ provider: string;
5
+ epochs?: string;
6
+ batchSize?: string;
7
+ learningRate?: string;
8
+ loraRank?: string;
9
+ loraAlpha?: string;
10
+ }
11
+ export declare function fineTuneCommand(dataset: string, opts: FineTuneOpts): Promise<void>;
12
+ interface TasksOpts {
13
+ network: string;
14
+ }
15
+ export declare function tasksCommand(providerAddress: string, taskId: string | undefined, opts: TasksOpts): Promise<void>;
16
+ interface ModelsOpts {
17
+ network: string;
18
+ }
19
+ export declare function modelsCommand(opts: ModelsOpts): Promise<void>;
20
+ export {};
21
+ //# sourceMappingURL=fine-tuning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fine-tuning.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fine-tuning.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,iBAwCxE;AAED,UAAU,SAAS;IACf,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,YAAY,CAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,SAAS,iBAoDlB;AAED,UAAU,UAAU;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,iBA4BnD"}
@@ -0,0 +1,142 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { connectOrbit, formatError } from '../utils.js';
4
+ export async function fineTuneCommand(dataset, opts) {
5
+ const spinner = ora('Connecting to 0G...').start();
6
+ try {
7
+ const orbit = await connectOrbit(opts.network);
8
+ // Step 1: Upload dataset
9
+ spinner.text = `Uploading dataset ${dataset}...`;
10
+ const upload = await orbit.uploadDataset(dataset);
11
+ spinner.text = `Dataset uploaded (root: ${upload.root.slice(0, 12)}...). Creating task...`;
12
+ // Step 2: Create task
13
+ const trainingParams = {};
14
+ if (opts.epochs)
15
+ trainingParams.nEpochs = parseInt(opts.epochs, 10);
16
+ if (opts.batchSize)
17
+ trainingParams.batchSize = parseInt(opts.batchSize, 10);
18
+ if (opts.learningRate)
19
+ trainingParams.learningRate = parseFloat(opts.learningRate);
20
+ if (opts.loraRank)
21
+ trainingParams.loraRank = parseInt(opts.loraRank, 10);
22
+ if (opts.loraAlpha)
23
+ trainingParams.loraAlpha = parseInt(opts.loraAlpha, 10);
24
+ const task = await orbit.createFineTuneTask({
25
+ model: opts.model,
26
+ dataset: upload.root,
27
+ providerAddress: opts.provider,
28
+ trainingParams: Object.keys(trainingParams).length > 0 ? trainingParams : undefined,
29
+ });
30
+ spinner.succeed('Fine-tuning task created');
31
+ console.log();
32
+ console.log(chalk.bold(' Task ID: ') + chalk.cyan(task.id));
33
+ console.log(chalk.bold(' Model: ') + task.model);
34
+ console.log(chalk.bold(' Dataset: ') + chalk.dim(upload.root));
35
+ console.log(chalk.bold(' Provider: ') + chalk.dim(task.provider));
36
+ console.log(chalk.bold(' Status: ') + task.status);
37
+ console.log();
38
+ console.log(chalk.dim(` Check progress: orbit tasks ${task.provider} ${task.id}`));
39
+ }
40
+ catch (err) {
41
+ spinner.fail(chalk.red('Fine-tuning failed'));
42
+ console.error(chalk.dim(` ${formatError(err)}`));
43
+ process.exit(1);
44
+ }
45
+ }
46
+ export async function tasksCommand(providerAddress, taskId, opts) {
47
+ const spinner = ora('Fetching tasks...').start();
48
+ try {
49
+ const orbit = await connectOrbit(opts.network);
50
+ if (taskId) {
51
+ // Show single task + log
52
+ const task = await orbit.getFineTuneTask(providerAddress, taskId);
53
+ spinner.stop();
54
+ console.log(chalk.bold(`\n Task ${task.id}\n`));
55
+ console.log(` Status: ${statusColor(task.status)}`);
56
+ console.log(` Model: ${task.model}`);
57
+ console.log(` Dataset: ${chalk.dim(task.dataset)}`);
58
+ console.log(` Provider: ${chalk.dim(task.provider)}`);
59
+ if (task.createdAt)
60
+ console.log(` Created: ${task.createdAt}`);
61
+ if (task.updatedAt)
62
+ console.log(` Updated: ${task.updatedAt}`);
63
+ // Try to get log
64
+ try {
65
+ const log = await orbit.fineTuning.getTaskLog(providerAddress, taskId);
66
+ if (log) {
67
+ console.log(chalk.bold('\n Training Log:\n'));
68
+ console.log(chalk.dim(` ${log.replace(/\n/g, '\n ')}`));
69
+ }
70
+ }
71
+ catch {
72
+ // Log not available yet
73
+ }
74
+ console.log();
75
+ }
76
+ else {
77
+ // List all tasks for this provider
78
+ const tasks = await orbit.fineTuning.listTasks(providerAddress);
79
+ spinner.stop();
80
+ if (tasks.length === 0) {
81
+ console.log(chalk.dim('\n No tasks found for this provider.\n'));
82
+ return;
83
+ }
84
+ console.log(chalk.bold(`\n ${tasks.length} tasks\n`));
85
+ for (const task of tasks) {
86
+ console.log(` ${chalk.cyan(task.id ?? 'unknown')} ${statusColor(task.status)} ${chalk.dim(task.model)}`);
87
+ }
88
+ console.log();
89
+ }
90
+ }
91
+ catch (err) {
92
+ spinner.fail(chalk.red('Failed to fetch tasks'));
93
+ console.error(chalk.dim(` ${formatError(err)}`));
94
+ process.exit(1);
95
+ }
96
+ }
97
+ export async function modelsCommand(opts) {
98
+ const spinner = ora('Fetching models...').start();
99
+ try {
100
+ const orbit = await connectOrbit(opts.network);
101
+ const models = await orbit.listModels();
102
+ spinner.stop();
103
+ if (models.length === 0) {
104
+ console.log(chalk.dim('\n No models available on this network.\n'));
105
+ return;
106
+ }
107
+ console.log(chalk.bold(`\n ${models.length} models available for fine-tuning\n`));
108
+ for (const model of models) {
109
+ const desc = model.config.description ?? '';
110
+ const provider = model.config.provider;
111
+ console.log(` ${chalk.cyan(model.name)}`);
112
+ if (desc)
113
+ console.log(chalk.dim(` ${desc}`));
114
+ if (provider)
115
+ console.log(chalk.dim(` provider: ${provider}`));
116
+ }
117
+ console.log();
118
+ }
119
+ catch (err) {
120
+ spinner.fail(chalk.red('Failed to list models'));
121
+ console.error(chalk.dim(` ${formatError(err)}`));
122
+ process.exit(1);
123
+ }
124
+ }
125
+ function statusColor(status) {
126
+ switch (status) {
127
+ case 'finished':
128
+ case 'acknowledged':
129
+ return chalk.green(status);
130
+ case 'training':
131
+ case 'delivering':
132
+ case 'setting-up':
133
+ return chalk.yellow(status);
134
+ case 'failed':
135
+ return chalk.red(status);
136
+ case 'delivered':
137
+ return chalk.blue(status);
138
+ default:
139
+ return chalk.dim(status);
140
+ }
141
+ }
142
+ //# sourceMappingURL=fine-tuning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fine-tuning.js","sourceRoot":"","sources":["../../../src/cli/commands/fine-tuning.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -23,4 +23,7 @@ export declare class ProviderNotFoundError extends OrbitError {
23
23
  export declare class TimeoutError extends OrbitError {
24
24
  constructor(message: string);
25
25
  }
26
+ export declare class FineTuningError extends OrbitError {
27
+ constructor(message: string, suggestion?: string);
28
+ }
26
29
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGb,IAAI,EAAE,MAAM;aACZ,UAAU,CAAC,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,YAAA;CAK1C;AAED,qBAAa,eAAgB,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,cAAe,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,wBAAyB,SAAQ,UAAU;aAEhC,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;gBADjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;CASxC;AAED,qBAAa,qBAAsB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM;CAQ9B;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM;CAQ9B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGb,IAAI,EAAE,MAAM;aACZ,UAAU,CAAC,EAAE,MAAM;gBAFnC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,YAAA;CAK1C;AAED,qBAAa,eAAgB,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,cAAe,SAAQ,UAAU;gBAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD;AAED,qBAAa,wBAAyB,SAAQ,UAAU;aAEhC,QAAQ,EAAE,MAAM;aAChB,SAAS,EAAE,MAAM;gBADjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;CASxC;AAED,qBAAa,qBAAsB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM;CAQ9B;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC5B,OAAO,EAAE,MAAM;CAQ9B;AAED,qBAAa,eAAgB,SAAQ,UAAU;gBAC/B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQnD"}
package/dist/errors.js CHANGED
@@ -48,4 +48,10 @@ export class TimeoutError extends OrbitError {
48
48
  this.name = 'TimeoutError';
49
49
  }
50
50
  }
51
+ export class FineTuningError extends OrbitError {
52
+ constructor(message, suggestion) {
53
+ super(message, 'FINE_TUNING_ERROR', suggestion ?? 'Check model and provider availability with orbit.listModels() or orbit.listProviders().');
54
+ this.name = 'FineTuningError';
55
+ }
56
+ }
51
57
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGb;IACA;IAHpB,YACI,OAAe,EACC,IAAY,EACZ,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,kBAAkB,EAClB,UAAU,IAAI,iGAAiG,CAClH,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IACxC,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,eAAe,EACf,UAAU,IAAI,8EAA8E,CAC/F,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC1C,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,iBAAiB,EACjB,UAAU,IAAI,yEAAyE,CAC1F,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAChC,CAAC;CACJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,UAAU;IAEhC;IACA;IAFpB,YACoB,QAAgB,EAChB,SAAiB;QAEjC,KAAK,CACD,8BAA8B,QAAQ,gBAAgB,SAAS,KAAK,EACpE,sBAAsB,EACtB,sDAAsD,CACzD,CAAA;QAPe,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QAOjC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IAC1C,CAAC;CACJ;AAED,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACjD,YAAY,OAAe;QACvB,KAAK,CACD,OAAO,EACP,oBAAoB,EACpB,uEAAuE,CAC1E,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACvC,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IACxC,YAAY,OAAe;QACvB,KAAK,CACD,OAAO,EACP,SAAS,EACT,kGAAkG,CACrG,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGb;IACA;IAHpB,YACI,OAAe,EACC,IAAY,EACZ,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC5B,CAAC;CACJ;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,kBAAkB,EAClB,UAAU,IAAI,iGAAiG,CAClH,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IACxC,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,eAAe,EACf,UAAU,IAAI,8EAA8E,CAC/F,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC1C,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,iBAAiB,EACjB,UAAU,IAAI,yEAAyE,CAC1F,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAChC,CAAC;CACJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,UAAU;IAEhC;IACA;IAFpB,YACoB,QAAgB,EAChB,SAAiB;QAEjC,KAAK,CACD,8BAA8B,QAAQ,gBAAgB,SAAS,KAAK,EACpE,sBAAsB,EACtB,sDAAsD,CACzD,CAAA;QAPe,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QAOjC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IAC1C,CAAC;CACJ;AAED,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACjD,YAAY,OAAe;QACvB,KAAK,CACD,OAAO,EACP,oBAAoB,EACpB,uEAAuE,CAC1E,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACvC,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,UAAU;IACxC,YAAY,OAAe;QACvB,KAAK,CACD,OAAO,EACP,SAAS,EACT,kGAAkG,CACrG,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC3C,YAAY,OAAe,EAAE,UAAmB;QAC5C,KAAK,CACD,OAAO,EACP,mBAAmB,EACnB,UAAU,IAAI,yFAAyF,CAC1G,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IACjC,CAAC;CACJ"}
@@ -0,0 +1,50 @@
1
+ import { Wallet } from 'ethers';
2
+ import type { NetworkConfig } from './networks.js';
3
+ import type { DatasetUploadResult, CreateTaskOptions, FineTuneTask, FineTuneModel, FineTuneProvider } from './types.js';
4
+ import { StorageClient } from './storage.js';
5
+ export declare class FineTuningClient {
6
+ private broker;
7
+ private initialized;
8
+ private wallet;
9
+ private network;
10
+ private storageClient;
11
+ constructor(network: NetworkConfig, wallet: Wallet, storageClient: StorageClient);
12
+ private ensureBroker;
13
+ /**
14
+ * Upload a dataset to 0G Storage for fine-tuning.
15
+ * Uses the existing StorageClient for upload, returning the root hash
16
+ * needed to create a fine-tuning task.
17
+ */
18
+ uploadDataset(filePath: string): Promise<DatasetUploadResult>;
19
+ /**
20
+ * Create a fine-tuning task. Requires a dataset already uploaded to 0G Storage.
21
+ */
22
+ createTask(options: CreateTaskOptions): Promise<FineTuneTask>;
23
+ /**
24
+ * Get the status of a fine-tuning task.
25
+ */
26
+ getTask(providerAddress: string, taskId: string): Promise<FineTuneTask>;
27
+ /**
28
+ * Get the training log for a fine-tuning task.
29
+ */
30
+ getTaskLog(providerAddress: string, taskId: string): Promise<string>;
31
+ /**
32
+ * List all fine-tuning tasks for a given provider.
33
+ */
34
+ listTasks(providerAddress: string): Promise<FineTuneTask[]>;
35
+ /**
36
+ * Download a fine-tuned model. Combines acknowledge + download.
37
+ * The task must be in 'delivered' status.
38
+ */
39
+ downloadModel(providerAddress: string, taskId: string, outputPath: string): Promise<void>;
40
+ /**
41
+ * List available base models for fine-tuning.
42
+ */
43
+ listModels(): Promise<FineTuneModel[]>;
44
+ /**
45
+ * List fine-tuning service providers.
46
+ */
47
+ listProviders(): Promise<FineTuneProvider[]>;
48
+ private mapTask;
49
+ }
50
+ //# sourceMappingURL=fine-tuning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fine-tuning.d.ts","sourceRoot":"","sources":["../src/fine-tuning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAK/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EACR,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAEnB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAU5C,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAe;gBAExB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;YAMlE,YAAY;IAuB1B;;;;OAIG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuBnE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiEnE;;OAEG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB7E;;OAEG;IACG,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe1E;;OAEG;IACG,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkBjE;;;OAGG;IACG,aAAa,CACf,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAiChB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA2B5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBlD,OAAO,CAAC,OAAO;CAWlB"}
@@ -0,0 +1,240 @@
1
+ import { createZGComputeNetworkBroker, } from '@0glabs/0g-serving-broker';
2
+ import { FineTuningError } from './errors.js';
3
+ import { withRetry } from './retry.js';
4
+ const DEFAULT_TRAINING_PARAMS = {
5
+ nEpochs: 3,
6
+ batchSize: 4,
7
+ learningRate: 5e-5,
8
+ loraRank: 8,
9
+ loraAlpha: 16,
10
+ };
11
+ export class FineTuningClient {
12
+ broker = null;
13
+ initialized = false;
14
+ wallet;
15
+ network;
16
+ storageClient;
17
+ constructor(network, wallet, storageClient) {
18
+ this.network = network;
19
+ this.wallet = wallet;
20
+ this.storageClient = storageClient;
21
+ }
22
+ async ensureBroker() {
23
+ if (this.broker && this.initialized)
24
+ return this.broker;
25
+ try {
26
+ this.broker = await createZGComputeNetworkBroker(this.wallet, this.network.ledgerContractAddress, this.network.inferenceContractAddress, this.network.fineTuningContractAddress);
27
+ this.initialized = true;
28
+ return this.broker;
29
+ }
30
+ catch (err) {
31
+ const msg = err instanceof Error ? err.message : String(err);
32
+ throw new FineTuningError(`Failed to initialize fine-tuning broker: ${msg}`, 'Check your network connection and wallet private key. The compute contracts may be temporarily unavailable.');
33
+ }
34
+ }
35
+ // --- Dataset ---
36
+ /**
37
+ * Upload a dataset to 0G Storage for fine-tuning.
38
+ * Uses the existing StorageClient for upload, returning the root hash
39
+ * needed to create a fine-tuning task.
40
+ */
41
+ async uploadDataset(filePath) {
42
+ return withRetry(async () => {
43
+ try {
44
+ const result = await this.storageClient.store(filePath);
45
+ return {
46
+ root: result.root,
47
+ txHash: result.txHash,
48
+ };
49
+ }
50
+ catch (err) {
51
+ const msg = err instanceof Error ? err.message : String(err);
52
+ throw new FineTuningError(`Failed to upload dataset: ${msg}`, 'Check that the dataset file exists, is valid JSONL, and you have sufficient OG balance.');
53
+ }
54
+ }, { maxAttempts: 3 });
55
+ }
56
+ // --- Tasks ---
57
+ /**
58
+ * Create a fine-tuning task. Requires a dataset already uploaded to 0G Storage.
59
+ */
60
+ async createTask(options) {
61
+ const broker = await this.ensureBroker();
62
+ if (!broker.fineTuning) {
63
+ throw new FineTuningError('Fine-tuning broker not available.', 'Fine-tuning requires a Wallet signer (not JsonRpcSigner).');
64
+ }
65
+ const params = { ...DEFAULT_TRAINING_PARAMS, ...options.trainingParams };
66
+ return withRetry(async () => {
67
+ try {
68
+ // Acknowledge the provider signer (required before task creation)
69
+ await broker.fineTuning.acknowledgeProviderSigner(options.providerAddress);
70
+ // Write training params as JSON string (broker expects a file path,
71
+ // but the underlying createTask reads the file content — we'll pass
72
+ // the JSON string directly via a temp file approach)
73
+ const { writeFileSync, unlinkSync } = await import('node:fs');
74
+ const { tmpdir } = await import('node:os');
75
+ const { join } = await import('node:path');
76
+ const { randomBytes } = await import('node:crypto');
77
+ const tempPath = join(tmpdir(), `orbit-params-${randomBytes(8).toString('hex')}.json`);
78
+ writeFileSync(tempPath, JSON.stringify(params));
79
+ let taskId;
80
+ try {
81
+ taskId = await broker.fineTuning.createTask(options.providerAddress, options.model, options.dataset, tempPath);
82
+ }
83
+ finally {
84
+ try {
85
+ unlinkSync(tempPath);
86
+ }
87
+ catch { /* ignore cleanup errors */ }
88
+ }
89
+ return {
90
+ id: taskId,
91
+ model: options.model,
92
+ dataset: options.dataset,
93
+ provider: options.providerAddress,
94
+ status: 'init',
95
+ };
96
+ }
97
+ catch (err) {
98
+ const msg = err instanceof Error ? err.message : String(err);
99
+ if (msg.includes('User opted not to continue')) {
100
+ throw new FineTuningError(msg, 'The provider has pending tasks in queue. Try again later or use a different provider.');
101
+ }
102
+ throw new FineTuningError(`Failed to create task: ${msg}`, 'Verify the model name, dataset hash, and provider address. Run orbit.listModels() to see available options.');
103
+ }
104
+ }, { maxAttempts: 2 });
105
+ }
106
+ /**
107
+ * Get the status of a fine-tuning task.
108
+ */
109
+ async getTask(providerAddress, taskId) {
110
+ const broker = await this.ensureBroker();
111
+ if (!broker.fineTuning) {
112
+ throw new FineTuningError('Fine-tuning broker not available.');
113
+ }
114
+ try {
115
+ const task = await broker.fineTuning.getTask(providerAddress, taskId);
116
+ return this.mapTask(task, providerAddress);
117
+ }
118
+ catch (err) {
119
+ const msg = err instanceof Error ? err.message : String(err);
120
+ if (msg.includes('No task found') || msg.includes('not found')) {
121
+ throw new FineTuningError(`Task "${taskId}" not found for provider ${providerAddress}.`, 'Check the task ID and provider address. Run orbit.listTasks() to see your tasks.');
122
+ }
123
+ throw new FineTuningError(`Failed to get task: ${msg}`);
124
+ }
125
+ }
126
+ /**
127
+ * Get the training log for a fine-tuning task.
128
+ */
129
+ async getTaskLog(providerAddress, taskId) {
130
+ const broker = await this.ensureBroker();
131
+ if (!broker.fineTuning) {
132
+ throw new FineTuningError('Fine-tuning broker not available.');
133
+ }
134
+ try {
135
+ return await broker.fineTuning.getLog(providerAddress, taskId);
136
+ }
137
+ catch (err) {
138
+ const msg = err instanceof Error ? err.message : String(err);
139
+ throw new FineTuningError(`Failed to get task log: ${msg}`);
140
+ }
141
+ }
142
+ /**
143
+ * List all fine-tuning tasks for a given provider.
144
+ */
145
+ async listTasks(providerAddress) {
146
+ const broker = await this.ensureBroker();
147
+ if (!broker.fineTuning) {
148
+ throw new FineTuningError('Fine-tuning broker not available.');
149
+ }
150
+ try {
151
+ const tasks = await broker.fineTuning.listTask(providerAddress);
152
+ return tasks.map((t) => this.mapTask(t, providerAddress));
153
+ }
154
+ catch (err) {
155
+ const msg = err instanceof Error ? err.message : String(err);
156
+ throw new FineTuningError(`Failed to list tasks: ${msg}`);
157
+ }
158
+ }
159
+ // --- Models ---
160
+ /**
161
+ * Download a fine-tuned model. Combines acknowledge + download.
162
+ * The task must be in 'delivered' status.
163
+ */
164
+ async downloadModel(providerAddress, taskId, outputPath) {
165
+ const broker = await this.ensureBroker();
166
+ if (!broker.fineTuning) {
167
+ throw new FineTuningError('Fine-tuning broker not available.');
168
+ }
169
+ return withRetry(async () => {
170
+ try {
171
+ await broker.fineTuning.acknowledgeModel(providerAddress, taskId, outputPath);
172
+ }
173
+ catch (err) {
174
+ const msg = err instanceof Error ? err.message : String(err);
175
+ if (msg.includes('No deliverable found')) {
176
+ throw new FineTuningError(`Model not ready for task "${taskId}". The task may still be training.`, 'Check task status with orbit.getFineTuneTask(). The task must be in "delivered" status.');
177
+ }
178
+ throw new FineTuningError(`Failed to download model: ${msg}`, 'Ensure the task is in "delivered" status and the output path is writable.');
179
+ }
180
+ }, { maxAttempts: 2 });
181
+ }
182
+ /**
183
+ * List available base models for fine-tuning.
184
+ */
185
+ async listModels() {
186
+ const broker = await this.ensureBroker();
187
+ if (!broker.fineTuning) {
188
+ throw new FineTuningError('Fine-tuning broker not available.');
189
+ }
190
+ try {
191
+ const [standardModels, customizedModels] = await broker.fineTuning.listModel();
192
+ const models = [];
193
+ for (const [name, config] of standardModels) {
194
+ models.push({ name, config });
195
+ }
196
+ for (const [name, config] of customizedModels) {
197
+ models.push({ name, config });
198
+ }
199
+ return models;
200
+ }
201
+ catch (err) {
202
+ const msg = err instanceof Error ? err.message : String(err);
203
+ throw new FineTuningError(`Failed to list models: ${msg}`);
204
+ }
205
+ }
206
+ /**
207
+ * List fine-tuning service providers.
208
+ */
209
+ async listProviders() {
210
+ const broker = await this.ensureBroker();
211
+ if (!broker.fineTuning) {
212
+ throw new FineTuningError('Fine-tuning broker not available.');
213
+ }
214
+ try {
215
+ const services = await broker.fineTuning.listService();
216
+ return services.map((s) => ({
217
+ address: s.provider ?? '',
218
+ url: s.url ?? '',
219
+ models: s.models ?? [],
220
+ }));
221
+ }
222
+ catch (err) {
223
+ const msg = err instanceof Error ? err.message : String(err);
224
+ throw new FineTuningError(`Failed to list providers: ${msg}`);
225
+ }
226
+ }
227
+ // --- Helpers ---
228
+ mapTask(task, providerAddress) {
229
+ return {
230
+ id: task.id ?? '',
231
+ model: task.preTrainedModelHash ?? '',
232
+ dataset: task.datasetHash ?? '',
233
+ provider: providerAddress,
234
+ status: (task.progress?.toLowerCase() ?? 'init'),
235
+ createdAt: task.createdAt,
236
+ updatedAt: task.updatedAt,
237
+ };
238
+ }
239
+ }
240
+ //# sourceMappingURL=fine-tuning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fine-tuning.js","sourceRoot":"","sources":["../src/fine-tuning.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  export { Orbit } from './orbit.js';
2
2
  export { StorageClient } from './storage.js';
3
3
  export { InferenceClient } from './inference.js';
4
- export type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus, } from './types.js';
4
+ export { FineTuningClient } from './fine-tuning.js';
5
+ export type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus, DatasetUploadResult, CreateTaskOptions, FineTuneTask, FineTuneStatus, FineTuneModel, FineTuneProvider, } from './types.js';
5
6
  export type { NetworkName, NetworkConfig } from './networks.js';
6
7
  export { NETWORKS, getNetwork } from './networks.js';
7
8
  export { withRetry, isTransientError } from './retry.js';
8
9
  export type { RetryOptions } from './retry.js';
9
- export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, } from './errors.js';
10
+ export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, FineTuningError, } from './errors.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,YAAY,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,GAChB,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EACH,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,GACf,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGnD,YAAY,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,GACnB,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,OAAO,EACH,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,eAAe,GAClB,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -3,9 +3,10 @@ export { Orbit } from './orbit.js';
3
3
  // Clients (for direct access)
4
4
  export { StorageClient } from './storage.js';
5
5
  export { InferenceClient } from './inference.js';
6
+ export { FineTuningClient } from './fine-tuning.js';
6
7
  export { NETWORKS, getNetwork } from './networks.js';
7
8
  // Retry utilities
8
9
  export { withRetry, isTransientError } from './retry.js';
9
10
  // Errors
10
- export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, } from './errors.js';
11
+ export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, FineTuningError, } from './errors.js';
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgBhD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGxD,SAAS;AACT,OAAO,EACH,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,GACf,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAsBnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGxD,SAAS;AACT,OAAO,EACH,UAAU,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,eAAe,GAClB,MAAM,aAAa,CAAA"}