0g-orbit 0.1.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.
Files changed (105) hide show
  1. package/dist/cli/cli.d.ts +3 -0
  2. package/dist/cli/cli.d.ts.map +1 -0
  3. package/dist/cli/cli.js +59 -0
  4. package/dist/cli/cli.js.map +1 -0
  5. package/dist/cli/commands/account.d.ts +6 -0
  6. package/dist/cli/commands/account.d.ts.map +1 -0
  7. package/dist/cli/commands/account.js +23 -0
  8. package/dist/cli/commands/account.js.map +1 -0
  9. package/dist/cli/commands/inference.d.ts +15 -0
  10. package/dist/cli/commands/inference.d.ts.map +1 -0
  11. package/dist/cli/commands/inference.js +70 -0
  12. package/dist/cli/commands/inference.js.map +1 -0
  13. package/dist/cli/commands/init.d.ts +7 -0
  14. package/dist/cli/commands/init.d.ts.map +1 -0
  15. package/dist/cli/commands/init.js +60 -0
  16. package/dist/cli/commands/init.js.map +1 -0
  17. package/dist/cli/commands/storage.d.ts +19 -0
  18. package/dist/cli/commands/storage.d.ts.map +1 -0
  19. package/dist/cli/commands/storage.js +62 -0
  20. package/dist/cli/commands/storage.js.map +1 -0
  21. package/dist/cli/utils.d.ts +4 -0
  22. package/dist/cli/utils.d.ts.map +1 -0
  23. package/dist/cli/utils.js +20 -0
  24. package/dist/cli/utils.js.map +1 -0
  25. package/dist/errors.d.ts +26 -0
  26. package/dist/errors.d.ts.map +1 -0
  27. package/dist/errors.js +51 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/index.d.ts +10 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +11 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/inference.d.ts +17 -0
  34. package/dist/inference.d.ts.map +1 -0
  35. package/dist/inference.js +179 -0
  36. package/dist/inference.js.map +1 -0
  37. package/dist/networks.d.ts +16 -0
  38. package/dist/networks.d.ts.map +1 -0
  39. package/dist/networks.js +48 -0
  40. package/dist/networks.js.map +1 -0
  41. package/dist/orbit.d.ts +27 -0
  42. package/dist/orbit.d.ts.map +1 -0
  43. package/dist/orbit.js +108 -0
  44. package/dist/orbit.js.map +1 -0
  45. package/dist/retry.d.ts +23 -0
  46. package/dist/retry.d.ts.map +1 -0
  47. package/dist/retry.js +90 -0
  48. package/dist/retry.js.map +1 -0
  49. package/dist/storage.d.ts +26 -0
  50. package/dist/storage.d.ts.map +1 -0
  51. package/dist/storage.js +121 -0
  52. package/dist/storage.js.map +1 -0
  53. package/dist/types.d.ts +81 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +2 -0
  56. package/dist/types.js.map +1 -0
  57. package/examples/ai-chatbot/index.ts +74 -0
  58. package/examples/model-registry/index.ts +137 -0
  59. package/examples/quick-start/index.ts +65 -0
  60. package/package.json +42 -0
  61. package/packages/cli/package.json +30 -0
  62. package/packages/cli/src/cli.ts +69 -0
  63. package/packages/cli/src/commands/account.ts +29 -0
  64. package/packages/cli/src/commands/inference.ts +103 -0
  65. package/packages/cli/src/commands/init.ts +71 -0
  66. package/packages/cli/src/commands/storage.ts +91 -0
  67. package/packages/cli/src/utils.ts +21 -0
  68. package/packages/cli/tsconfig.json +8 -0
  69. package/packages/core/package.json +35 -0
  70. package/packages/core/src/errors.test.ts +99 -0
  71. package/packages/core/src/errors.ts +79 -0
  72. package/packages/core/src/index.ts +37 -0
  73. package/packages/core/src/inference.ts +256 -0
  74. package/packages/core/src/networks.test.ts +62 -0
  75. package/packages/core/src/networks.ts +62 -0
  76. package/packages/core/src/orbit.test.ts +153 -0
  77. package/packages/core/src/orbit.ts +159 -0
  78. package/packages/core/src/retry.test.ts +99 -0
  79. package/packages/core/src/retry.ts +99 -0
  80. package/packages/core/src/storage.test.ts +199 -0
  81. package/packages/core/src/storage.ts +158 -0
  82. package/packages/core/src/types.ts +85 -0
  83. package/packages/core/tsconfig.json +8 -0
  84. package/packages/core/vitest.config.ts +7 -0
  85. package/src/cli/cli.ts +69 -0
  86. package/src/cli/commands/account.ts +29 -0
  87. package/src/cli/commands/inference.ts +103 -0
  88. package/src/cli/commands/init.ts +71 -0
  89. package/src/cli/commands/storage.ts +91 -0
  90. package/src/cli/utils.ts +21 -0
  91. package/src/errors.test.ts +99 -0
  92. package/src/errors.ts +79 -0
  93. package/src/index.ts +37 -0
  94. package/src/inference.ts +256 -0
  95. package/src/networks.test.ts +62 -0
  96. package/src/networks.ts +62 -0
  97. package/src/orbit.test.ts +153 -0
  98. package/src/orbit.ts +159 -0
  99. package/src/retry.test.ts +99 -0
  100. package/src/retry.ts +99 -0
  101. package/src/storage.test.ts +199 -0
  102. package/src/storage.ts +158 -0
  103. package/src/types.ts +85 -0
  104. package/tsconfig.json +20 -0
  105. package/vitest.config.ts +7 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { storeCommand, storeDataCommand, retrieveCommand } from './commands/storage.js';
4
+ import { inferCommand, listServicesCommand } from './commands/inference.js';
5
+ import { statusCommand } from './commands/account.js';
6
+ import { initCommand } from './commands/init.js';
7
+ const program = new Command();
8
+ program
9
+ .name('orbit')
10
+ .description('The developer toolkit for 0G')
11
+ .version('0.1.0');
12
+ program
13
+ .command('init')
14
+ .description('Initialize a new 0G project')
15
+ .option('-t, --template <name>', 'template to use', 'default')
16
+ .option('-d, --dir <path>', 'directory to create', '.')
17
+ .action(initCommand);
18
+ program
19
+ .command('store <file>')
20
+ .description('Upload a file to 0G Storage')
21
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
22
+ .option('--tags <hex>', 'custom tags (hex string)')
23
+ .option('--replicas <n>', 'number of replicas', '1')
24
+ .action(storeCommand);
25
+ program
26
+ .command('store-data <text>')
27
+ .description('Upload a text string to 0G Storage')
28
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
29
+ .option('--tags <hex>', 'custom tags (hex string)')
30
+ .option('--replicas <n>', 'number of replicas', '1')
31
+ .action(storeDataCommand);
32
+ program
33
+ .command('retrieve <rootHash> <output>')
34
+ .description('Download a file from 0G Storage')
35
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
36
+ .option('--proof', 'verify merkle proofs during download')
37
+ .action(retrieveCommand);
38
+ program
39
+ .command('infer <model>')
40
+ .description('Run AI inference on the 0G Compute Network')
41
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
42
+ .option('-m, --message <text>', 'message to send')
43
+ .option('-s, --system <text>', 'system prompt')
44
+ .option('-t, --temperature <n>', 'sampling temperature', '0.7')
45
+ .option('--max-tokens <n>', 'maximum tokens to generate')
46
+ .option('--provider <address>', 'specific provider address')
47
+ .action(inferCommand);
48
+ program
49
+ .command('services')
50
+ .description('List available AI services on the network')
51
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
52
+ .action(listServicesCommand);
53
+ program
54
+ .command('status')
55
+ .description('Show account status and balance')
56
+ .option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
57
+ .action(statusCommand);
58
+ program.parse();
59
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ interface StatusOpts {
2
+ network: string;
3
+ }
4
+ export declare function statusCommand(opts: StatusOpts): Promise<void>;
5
+ export {};
6
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/account.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,iBAoBnD"}
@@ -0,0 +1,23 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { connectOrbit, formatError } from '../utils.js';
4
+ export async function statusCommand(opts) {
5
+ const spinner = ora('Checking status...').start();
6
+ try {
7
+ const orbit = await connectOrbit(opts.network);
8
+ const status = await orbit.status();
9
+ spinner.stop();
10
+ console.log();
11
+ console.log(chalk.bold(' 0G Orbit'));
12
+ console.log(` ${chalk.dim('Network:')} ${status.network}`);
13
+ console.log(` ${chalk.dim('Address:')} ${status.address}`);
14
+ console.log(` ${chalk.dim('Balance:')} ${chalk.cyan(status.balance)} OG`);
15
+ console.log();
16
+ }
17
+ catch (err) {
18
+ spinner.fail(chalk.red('Failed to get status'));
19
+ console.error(chalk.dim(` ${formatError(err)}`));
20
+ process.exit(1);
21
+ }
22
+ }
23
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/cli/commands/account.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAMvD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAgB;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAA;IAEjD,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAA;QAEnC,OAAO,CAAC,IAAI,EAAE,CAAA;QAEd,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3E,OAAO,CAAC,GAAG,EAAE,CAAA;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ interface InferOpts {
2
+ network: string;
3
+ message?: string;
4
+ system?: string;
5
+ temperature: string;
6
+ maxTokens?: string;
7
+ provider?: string;
8
+ }
9
+ export declare function inferCommand(model: string, opts: InferOpts): Promise<void>;
10
+ interface ServicesOpts {
11
+ network: string;
12
+ }
13
+ export declare function listServicesCommand(opts: ServicesOpts): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inference.ts"],"names":[],"mappings":"AAIA,UAAU,SAAS;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,iBA+ChE;AAED,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,YAAY,iBAoC3D"}
@@ -0,0 +1,70 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { connectOrbit, formatError } from '../utils.js';
4
+ export async function inferCommand(model, opts) {
5
+ if (!opts.message) {
6
+ console.error(chalk.red('Error: --message is required'));
7
+ console.error(chalk.dim(' orbit infer meta-llama/Llama-3.3-70B -m "Hello!"'));
8
+ process.exit(1);
9
+ }
10
+ const spinner = ora('Connecting to 0G...').start();
11
+ try {
12
+ const orbit = await connectOrbit(opts.network);
13
+ spinner.text = `Sending to ${model}...`;
14
+ const messages = [];
15
+ if (opts.system) {
16
+ messages.push({ role: 'system', content: opts.system });
17
+ }
18
+ messages.push({ role: 'user', content: opts.message });
19
+ const result = await orbit.infer(model, {
20
+ messages,
21
+ temperature: parseFloat(opts.temperature),
22
+ maxTokens: opts.maxTokens ? parseInt(opts.maxTokens, 10) : undefined,
23
+ provider: opts.provider,
24
+ });
25
+ spinner.succeed('Response received');
26
+ console.log();
27
+ console.log(result.content);
28
+ console.log();
29
+ if (result.usage) {
30
+ console.log(chalk.dim(` tokens: ${result.usage.promptTokens} in / ${result.usage.completionTokens} out` +
31
+ ` | model: ${result.model}` +
32
+ (result.verified !== null
33
+ ? ` | verified: ${result.verified ? chalk.green('yes') : chalk.red('no')}`
34
+ : '')));
35
+ }
36
+ }
37
+ catch (err) {
38
+ spinner.fail(chalk.red('Inference failed'));
39
+ console.error(chalk.dim(` ${formatError(err)}`));
40
+ process.exit(1);
41
+ }
42
+ }
43
+ export async function listServicesCommand(opts) {
44
+ const spinner = ora('Fetching services...').start();
45
+ try {
46
+ const orbit = await connectOrbit(opts.network);
47
+ const services = await orbit.listServices();
48
+ spinner.stop();
49
+ if (services.length === 0) {
50
+ console.log(chalk.dim('No services found on this network.'));
51
+ return;
52
+ }
53
+ console.log(chalk.bold(`\n ${services.length} services on ${opts.network}\n`));
54
+ for (const svc of services) {
55
+ const verTag = svc.verifiable
56
+ ? chalk.green(' [TEE]')
57
+ : '';
58
+ console.log(` ${chalk.cyan(svc.model)}${verTag}`);
59
+ console.log(chalk.dim(` provider: ${svc.provider.slice(0, 10)}...${svc.provider.slice(-6)}` +
60
+ ` | in: ${svc.inputPrice} neuron | out: ${svc.outputPrice} neuron`));
61
+ }
62
+ console.log();
63
+ }
64
+ catch (err) {
65
+ spinner.fail(chalk.red('Failed to list services'));
66
+ console.error(chalk.dim(` ${formatError(err)}`));
67
+ process.exit(1);
68
+ }
69
+ }
70
+ //# sourceMappingURL=inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../../src/cli/commands/inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface InitOpts {
2
+ template: string;
3
+ dir: string;
4
+ }
5
+ export declare function initCommand(opts: InitOpts): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAIA,UAAU,QAAQ;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBA6D/C"}
@@ -0,0 +1,60 @@
1
+ import chalk from 'chalk';
2
+ import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
3
+ import { join, resolve } from 'node:path';
4
+ export async function initCommand(opts) {
5
+ const dir = resolve(opts.dir);
6
+ if (!existsSync(dir)) {
7
+ mkdirSync(dir, { recursive: true });
8
+ }
9
+ // Create package.json
10
+ const pkg = {
11
+ name: 'my-0g-app',
12
+ version: '0.1.0',
13
+ type: 'module',
14
+ scripts: {
15
+ start: 'node index.js',
16
+ },
17
+ dependencies: {
18
+ '0g-orbit': '^0.1.0',
19
+ },
20
+ };
21
+ writeFileSync(join(dir, 'package.json'), JSON.stringify(pkg, null, 2) + '\n');
22
+ // Create index.js with example
23
+ const example = `import { Orbit } from '0g-orbit'
24
+
25
+ const orbit = await Orbit.connect({
26
+ network: 'testnet',
27
+ privateKey: process.env.PRIVATE_KEY,
28
+ })
29
+
30
+ // Check account status
31
+ const status = await orbit.status()
32
+ console.log(\`Connected: \${status.address} on \${status.network}\`)
33
+ console.log(\`Balance: \${status.balance} OG\`)
34
+
35
+ // Upload a file
36
+ // const { root } = await orbit.store('./my-file.txt')
37
+ // console.log('Stored at:', root)
38
+
39
+ // Run inference
40
+ // const result = await orbit.infer('meta-llama/Llama-3.3-70B', {
41
+ // messages: [{ role: 'user', content: 'What is 0G?' }],
42
+ // })
43
+ // console.log(result.content)
44
+ `;
45
+ writeFileSync(join(dir, 'index.js'), example);
46
+ // Create .env.example
47
+ writeFileSync(join(dir, '.env.example'), 'PRIVATE_KEY=0x...\n');
48
+ // Create .gitignore
49
+ writeFileSync(join(dir, '.gitignore'), 'node_modules/\n.env\n');
50
+ console.log();
51
+ console.log(chalk.bold(' 0G Orbit project initialized'));
52
+ console.log();
53
+ console.log(chalk.dim(' Next steps:'));
54
+ console.log(` 1. ${chalk.cyan('cd ' + (opts.dir === '.' ? '.' : opts.dir))}`);
55
+ console.log(` 2. ${chalk.cyan('cp .env.example .env')} and add your private key`);
56
+ console.log(` 3. ${chalk.cyan('npm install')}`);
57
+ console.log(` 4. ${chalk.cyan('node index.js')}`);
58
+ console.log();
59
+ }
60
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,sBAAsB;IACtB,MAAM,GAAG,GAAG;QACR,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACL,KAAK,EAAE,eAAe;SACzB;QACD,YAAY,EAAE;YACV,UAAU,EAAE,QAAQ;SACvB;KACJ,CAAA;IACD,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAE7E,+BAA+B;IAC/B,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBnB,CAAA;IACG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAA;IAE7C,sBAAsB;IACtB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAA;IAE/D,oBAAoB;IACpB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,uBAAuB,CAAC,CAAA;IAE/D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9E,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAA;IAClF,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,EAAE,CAAA;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ interface StoreOpts {
2
+ network: string;
3
+ tags?: string;
4
+ replicas: string;
5
+ }
6
+ export declare function storeCommand(file: string, opts: StoreOpts): Promise<void>;
7
+ interface StoreDataOpts {
8
+ network: string;
9
+ tags?: string;
10
+ replicas: string;
11
+ }
12
+ export declare function storeDataCommand(text: string, opts: StoreDataOpts): Promise<void>;
13
+ interface RetrieveOpts {
14
+ network: string;
15
+ proof?: boolean;
16
+ }
17
+ export declare function retrieveCommand(rootHash: string, output: string, opts: RetrieveOpts): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/storage.ts"],"names":[],"mappings":"AAIA,UAAU,SAAS;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,iBAuB/D;AAED,UAAU,aAAa;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,iBAuBvE;AAED,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAsB,eAAe,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,iBAgBrB"}
@@ -0,0 +1,62 @@
1
+ import ora from 'ora';
2
+ import chalk from 'chalk';
3
+ import { connectOrbit, formatError } from '../utils.js';
4
+ export async function storeCommand(file, opts) {
5
+ const spinner = ora('Connecting to 0G...').start();
6
+ try {
7
+ const orbit = await connectOrbit(opts.network);
8
+ spinner.text = `Uploading ${file}...`;
9
+ const result = await orbit.store(file, {
10
+ tags: opts.tags,
11
+ replicas: parseInt(opts.replicas, 10),
12
+ });
13
+ spinner.succeed('Upload complete');
14
+ console.log();
15
+ console.log(chalk.bold(' Root hash: ') + chalk.cyan(result.root));
16
+ console.log(chalk.bold(' Tx hash: ') + chalk.dim(result.txHash));
17
+ console.log();
18
+ console.log(chalk.dim(` Retrieve with: orbit retrieve ${result.root} ./output`));
19
+ }
20
+ catch (err) {
21
+ spinner.fail(chalk.red('Upload failed'));
22
+ console.error(chalk.dim(` ${formatError(err)}`));
23
+ process.exit(1);
24
+ }
25
+ }
26
+ export async function storeDataCommand(text, opts) {
27
+ const spinner = ora('Connecting to 0G...').start();
28
+ try {
29
+ const orbit = await connectOrbit(opts.network);
30
+ spinner.text = 'Uploading data...';
31
+ const result = await orbit.storeData(text, {
32
+ tags: opts.tags,
33
+ replicas: parseInt(opts.replicas, 10),
34
+ });
35
+ spinner.succeed('Upload complete');
36
+ console.log();
37
+ console.log(chalk.bold(' Root hash: ') + chalk.cyan(result.root));
38
+ console.log(chalk.bold(' Tx hash: ') + chalk.dim(result.txHash));
39
+ console.log();
40
+ console.log(chalk.dim(` Retrieve with: orbit retrieve ${result.root} ./output`));
41
+ }
42
+ catch (err) {
43
+ spinner.fail(chalk.red('Upload failed'));
44
+ console.error(chalk.dim(` ${formatError(err)}`));
45
+ process.exit(1);
46
+ }
47
+ }
48
+ export async function retrieveCommand(rootHash, output, opts) {
49
+ const spinner = ora('Connecting to 0G...').start();
50
+ try {
51
+ const orbit = await connectOrbit(opts.network);
52
+ spinner.text = `Downloading to ${output}...`;
53
+ await orbit.retrieve(rootHash, output, { proof: opts.proof });
54
+ spinner.succeed(`Downloaded to ${output}`);
55
+ }
56
+ catch (err) {
57
+ spinner.fail(chalk.red('Download failed'));
58
+ console.error(chalk.dim(` ${formatError(err)}`));
59
+ process.exit(1);
60
+ }
61
+ }
62
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/cli/commands/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Orbit } from '../index.js';
2
+ export declare function connectOrbit(network: string): Promise<Orbit>;
3
+ export declare function formatError(err: unknown): string;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAc,MAAM,aAAa,CAAA;AAI/C,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIlE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAUhD"}
@@ -0,0 +1,20 @@
1
+ import { Orbit, OrbitError } from '../index.js';
2
+ import chalk from 'chalk';
3
+ export async function connectOrbit(network) {
4
+ return Orbit.connect({
5
+ network: network,
6
+ });
7
+ }
8
+ export function formatError(err) {
9
+ if (err instanceof OrbitError) {
10
+ let msg = err.message;
11
+ if (err.suggestion) {
12
+ msg += '\n ' + chalk.yellow('Hint: ') + err.suggestion;
13
+ }
14
+ return msg;
15
+ }
16
+ if (err instanceof Error)
17
+ return err.message;
18
+ return String(err);
19
+ }
20
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,OAAsB;KAClC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACpC,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC5B,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;QACrB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACjB,GAAG,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;QAC3D,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACD,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAA;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare class OrbitError extends Error {
2
+ readonly code: string;
3
+ readonly suggestion?: string | undefined;
4
+ constructor(message: string, code: string, suggestion?: string | undefined);
5
+ }
6
+ export declare class ConnectionError extends OrbitError {
7
+ constructor(message: string, suggestion?: string);
8
+ }
9
+ export declare class StorageError extends OrbitError {
10
+ constructor(message: string, suggestion?: string);
11
+ }
12
+ export declare class InferenceError extends OrbitError {
13
+ constructor(message: string, suggestion?: string);
14
+ }
15
+ export declare class InsufficientBalanceError extends OrbitError {
16
+ readonly required: number;
17
+ readonly available: number;
18
+ constructor(required: number, available: number);
19
+ }
20
+ export declare class ProviderNotFoundError extends OrbitError {
21
+ constructor(message: string);
22
+ }
23
+ export declare class TimeoutError extends OrbitError {
24
+ constructor(message: string);
25
+ }
26
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +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"}
package/dist/errors.js ADDED
@@ -0,0 +1,51 @@
1
+ export class OrbitError extends Error {
2
+ code;
3
+ suggestion;
4
+ constructor(message, code, suggestion) {
5
+ super(message);
6
+ this.code = code;
7
+ this.suggestion = suggestion;
8
+ this.name = 'OrbitError';
9
+ }
10
+ }
11
+ export class ConnectionError extends OrbitError {
12
+ constructor(message, suggestion) {
13
+ super(message, 'CONNECTION_ERROR', suggestion ?? 'Check your RPC URL and network connection. Try a different RPC endpoint with the rpcUrl option.');
14
+ this.name = 'ConnectionError';
15
+ }
16
+ }
17
+ export class StorageError extends OrbitError {
18
+ constructor(message, suggestion) {
19
+ super(message, 'STORAGE_ERROR', suggestion ?? 'Check that your file exists and you have sufficient OG balance for gas fees.');
20
+ this.name = 'StorageError';
21
+ }
22
+ }
23
+ export class InferenceError extends OrbitError {
24
+ constructor(message, suggestion) {
25
+ super(message, 'INFERENCE_ERROR', suggestion ?? 'Run orbit.listServices() to check available models and provider status.');
26
+ this.name = 'InferenceError';
27
+ }
28
+ }
29
+ export class InsufficientBalanceError extends OrbitError {
30
+ required;
31
+ available;
32
+ constructor(required, available) {
33
+ super(`Insufficient balance: need ${required} OG but have ${available} OG`, 'INSUFFICIENT_BALANCE', 'Get testnet OG from the faucet: https://faucet.0g.ai');
34
+ this.required = required;
35
+ this.available = available;
36
+ this.name = 'InsufficientBalanceError';
37
+ }
38
+ }
39
+ export class ProviderNotFoundError extends OrbitError {
40
+ constructor(message) {
41
+ super(message, 'PROVIDER_NOT_FOUND', 'Run orbit.listServices() to see available models and their providers.');
42
+ this.name = 'ProviderNotFoundError';
43
+ }
44
+ }
45
+ export class TimeoutError extends OrbitError {
46
+ constructor(message) {
47
+ super(message, 'TIMEOUT', 'The request timed out. Try increasing the timeout option or check if the provider is responsive.');
48
+ this.name = 'TimeoutError';
49
+ }
50
+ }
51
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ export { Orbit } from './orbit.js';
2
+ export { StorageClient } from './storage.js';
3
+ export { InferenceClient } from './inference.js';
4
+ export type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus, } from './types.js';
5
+ export type { NetworkName, NetworkConfig } from './networks.js';
6
+ export { NETWORKS, getNetwork } from './networks.js';
7
+ export { withRetry, isTransientError } from './retry.js';
8
+ export type { RetryOptions } from './retry.js';
9
+ export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, } from './errors.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ // Main entry point
2
+ export { Orbit } from './orbit.js';
3
+ // Clients (for direct access)
4
+ export { StorageClient } from './storage.js';
5
+ export { InferenceClient } from './inference.js';
6
+ export { NETWORKS, getNetwork } from './networks.js';
7
+ // Retry utilities
8
+ export { withRetry, isTransientError } from './retry.js';
9
+ // Errors
10
+ export { OrbitError, ConnectionError, StorageError, InferenceError, InsufficientBalanceError, ProviderNotFoundError, TimeoutError, } from './errors.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ import { Wallet } from 'ethers';
2
+ import type { NetworkConfig } from './networks.js';
3
+ import type { InferResult, InferOptions, ServiceInfo } from './types.js';
4
+ export declare class InferenceClient {
5
+ private broker;
6
+ private wallet;
7
+ private network;
8
+ private initialized;
9
+ constructor(network: NetworkConfig, wallet: Wallet);
10
+ private ensureBroker;
11
+ listServices(): Promise<ServiceInfo[]>;
12
+ infer(model: string, options: InferOptions): Promise<InferResult>;
13
+ private fetchCompletion;
14
+ private findProvider;
15
+ private ensureLedgerFunded;
16
+ }
17
+ //# sourceMappingURL=inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../src/inference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAK/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAmBxE,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAQ;gBAEf,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM;YAKpC,YAAY;IAsBpB,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA0BtC,KAAK,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,WAAW,CAAC;YAyFT,eAAe;YAuDf,YAAY;YAcZ,kBAAkB;CAUnC"}