@antseed/cli 0.1.162 → 0.1.164

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 (50) hide show
  1. package/README.md +85 -6
  2. package/dist/cli/commands/ants/dashboard.d.ts +1 -1
  3. package/dist/cli/commands/ants/dashboard.d.ts.map +1 -1
  4. package/dist/cli/commands/ants/dashboard.js +35 -4
  5. package/dist/cli/commands/ants/dashboard.js.map +1 -1
  6. package/dist/cli/commands/ants/dashboard.test.js +39 -2
  7. package/dist/cli/commands/ants/dashboard.test.js.map +1 -1
  8. package/dist/cli/commands/ants/positions.d.ts.map +1 -1
  9. package/dist/cli/commands/ants/positions.js +2 -0
  10. package/dist/cli/commands/ants/positions.js.map +1 -1
  11. package/dist/cli/commands/ants/rewards.d.ts.map +1 -1
  12. package/dist/cli/commands/ants/rewards.js +4 -0
  13. package/dist/cli/commands/ants/rewards.js.map +1 -1
  14. package/dist/cli/commands/ants/shared.d.ts +5 -3
  15. package/dist/cli/commands/ants/shared.d.ts.map +1 -1
  16. package/dist/cli/commands/ants/shared.js +5 -3
  17. package/dist/cli/commands/ants/shared.js.map +1 -1
  18. package/dist/cli/commands/ants/shared.test.js +22 -1
  19. package/dist/cli/commands/ants/shared.test.js.map +1 -1
  20. package/dist/cli/commands/buyer/index.d.ts.map +1 -1
  21. package/dist/cli/commands/buyer/index.js +2 -0
  22. package/dist/cli/commands/buyer/index.js.map +1 -1
  23. package/dist/cli/commands/buyer/set-authorized-wallet.d.ts +43 -0
  24. package/dist/cli/commands/buyer/set-authorized-wallet.d.ts.map +1 -0
  25. package/dist/cli/commands/buyer/set-authorized-wallet.js +114 -0
  26. package/dist/cli/commands/buyer/set-authorized-wallet.js.map +1 -0
  27. package/dist/cli/commands/buyer/set-authorized-wallet.test.d.ts +2 -0
  28. package/dist/cli/commands/buyer/set-authorized-wallet.test.d.ts.map +1 -0
  29. package/dist/cli/commands/buyer/set-authorized-wallet.test.js +127 -0
  30. package/dist/cli/commands/buyer/set-authorized-wallet.test.js.map +1 -0
  31. package/dist/cli/commands/config/index.d.ts +1 -0
  32. package/dist/cli/commands/config/index.d.ts.map +1 -1
  33. package/dist/cli/commands/config/index.js +11 -5
  34. package/dist/cli/commands/config/index.js.map +1 -1
  35. package/dist/cli/commands/config/index.test.js +13 -1
  36. package/dist/cli/commands/config/index.test.js.map +1 -1
  37. package/dist/cli/commands/seller/start.d.ts.map +1 -1
  38. package/dist/cli/commands/seller/start.js +8 -1
  39. package/dist/cli/commands/seller/start.js.map +1 -1
  40. package/dist/config/loader.d.ts.map +1 -1
  41. package/dist/config/loader.js +28 -0
  42. package/dist/config/loader.js.map +1 -1
  43. package/dist/config/loader.test.js +22 -0
  44. package/dist/config/loader.test.js.map +1 -1
  45. package/dist/config/types.d.ts +10 -0
  46. package/dist/config/types.d.ts.map +1 -1
  47. package/dist/config/validation.d.ts.map +1 -1
  48. package/dist/config/validation.js +16 -0
  49. package/dist/config/validation.js.map +1 -1
  50. package/package.json +4 -4
@@ -0,0 +1,114 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { ZeroAddress } from 'ethers';
4
+ import { getGlobalOptions } from '../types.js';
5
+ export function buildAuthorizedWalletUrl(port, token) {
6
+ const params = new URLSearchParams({ token, page: 'pay', action: 'authorize' });
7
+ return `http://127.0.0.1:${port}?${params.toString()}`;
8
+ }
9
+ /** Open the existing wallet-connected authorization page and wait for confirmation. */
10
+ export async function runBrowserWalletAuthorization(input) {
11
+ const log = input.log ?? console.log;
12
+ let complete;
13
+ const completed = new Promise((resolve) => { complete = resolve; });
14
+ const server = await input.createServer({
15
+ port: 0,
16
+ dataDir: input.dataDir,
17
+ ...(input.configPath ? { configPath: input.configPath } : {}),
18
+ onPaymentCompleted: complete,
19
+ });
20
+ try {
21
+ await server.listen({ port: 0, host: '127.0.0.1' });
22
+ const bound = server.server.address();
23
+ if (!bound || typeof bound === 'string')
24
+ throw new Error('Wallet authorization server is not listening.');
25
+ if (!server.bearerToken)
26
+ throw new Error('Wallet authorization server did not provide a session token.');
27
+ const url = buildAuthorizedWalletUrl(bound.port, server.bearerToken);
28
+ log(`Open this secure local page to connect the authorized wallet:\n${url}`);
29
+ if (input.openBrowser) {
30
+ try {
31
+ await input.openBrowser(url);
32
+ }
33
+ catch {
34
+ log('Could not open a browser automatically; open the URL above manually.');
35
+ }
36
+ }
37
+ await completed;
38
+ }
39
+ finally {
40
+ await server.close();
41
+ }
42
+ }
43
+ /** Initial self-authorization only: changing an existing wallet requires the current operator. */
44
+ export async function setSelfAuthorizedWallet(input) {
45
+ const { wallet, address: buyer } = input.context;
46
+ const current = await input.client.getOperator(buyer);
47
+ if (current.toLowerCase() === buyer.toLowerCase())
48
+ return null;
49
+ if (current.toLowerCase() !== ZeroAddress) {
50
+ throw new Error(`Authorized wallet is already set to ${current}. Only that wallet can transfer authorization; the buyer identity cannot replace it.`);
51
+ }
52
+ const nonce = await input.client.getOperatorNonce(buyer);
53
+ const signature = await input.sign(wallet, input.evmChainId, input.depositsContractAddress, buyer, nonce);
54
+ return input.client.setOperator(wallet, buyer, buyer, nonce, signature);
55
+ }
56
+ export function registerBuyerSetAuthorizedWalletCommand(buyerCmd) {
57
+ buyerCmd
58
+ .command('set-authorized-wallet')
59
+ .description('Authorize an external wallet in the browser, or authorize the buyer wallet with --self')
60
+ .option('--self', 'authorize the buyer hot wallet itself (requires ETH for gas)', false)
61
+ .option('--no-open', 'print the secure local URL without opening a browser')
62
+ .addHelpText('after', '\nBy default, opens the AI VPN wallet flow so the connected external wallet submits the transaction and pays gas. --self instead makes the buyer hot wallet its own authorized wallet. The authorized wallet controls withdrawals and future authorization transfers.')
63
+ .action(async (options) => {
64
+ let spinner;
65
+ try {
66
+ if (options.self && !options.open)
67
+ throw new Error('--no-open cannot be used with --self.');
68
+ const globalOpts = getGlobalOptions(buyerCmd);
69
+ if (!options.self) {
70
+ const { createServer } = await import('@antseed/payments');
71
+ const openBrowser = options.open ? (await import('open')).default : undefined;
72
+ await runBrowserWalletAuthorization({
73
+ dataDir: globalOpts.dataDir,
74
+ configPath: globalOpts.config,
75
+ createServer,
76
+ ...(openBrowser ? { openBrowser } : {}),
77
+ log: (message) => console.log(chalk.dim(message)),
78
+ });
79
+ console.log(chalk.green('Authorized wallet confirmed.'));
80
+ return;
81
+ }
82
+ const { loadConfig } = await import('../../../config/loader.js');
83
+ const { loadCryptoContext, createDepositsClient, requireCryptoConfig } = await import('../../payment-utils.js');
84
+ const { makeDepositsDomain, signSetOperator } = await import('@antseed/node');
85
+ const config = await loadConfig(globalOpts.config);
86
+ const crypto = requireCryptoConfig(config);
87
+ const context = await loadCryptoContext(globalOpts.dataDir);
88
+ console.log(chalk.dim(`Buyer: ${context.address}`));
89
+ console.log(chalk.dim(`Chain: ${crypto.evmChainId} | Deposits: ${crypto.depositsContractAddress}`));
90
+ console.log(chalk.yellow('The buyer wallet will control withdrawals and future authorization transfers.'));
91
+ console.log(chalk.dim('The buyer wallet must have ETH on this chain to pay gas.'));
92
+ spinner = ora('Authorizing buyer wallet...').start();
93
+ const txHash = await setSelfAuthorizedWallet({
94
+ context,
95
+ client: createDepositsClient(config),
96
+ evmChainId: crypto.evmChainId,
97
+ depositsContractAddress: crypto.depositsContractAddress,
98
+ sign: (wallet, chainId, contract, operator, nonce) => signSetOperator(wallet, makeDepositsDomain(chainId, contract), { operator, nonce }),
99
+ });
100
+ spinner.succeed(chalk.green(txHash ? 'Buyer wallet authorized.' : 'Buyer wallet is already authorized; no transaction sent.'));
101
+ if (txHash)
102
+ console.log(chalk.dim(`Transaction: ${txHash}`));
103
+ }
104
+ catch (err) {
105
+ const message = `Failed to set authorized wallet: ${err.message}`;
106
+ if (spinner)
107
+ spinner.fail(chalk.red(message));
108
+ else
109
+ console.error(chalk.red(message));
110
+ process.exitCode = 1;
111
+ }
112
+ });
113
+ }
114
+ //# sourceMappingURL=set-authorized-wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-authorized-wallet.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/set-authorized-wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=set-authorized-wallet.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-authorized-wallet.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/set-authorized-wallet.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,127 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { Command } from 'commander';
4
+ import { Wallet, ZeroAddress } from 'ethers';
5
+ import { buildAuthorizedWalletUrl, registerBuyerSetAuthorizedWalletCommand, runBrowserWalletAuthorization, setSelfAuthorizedWallet, } from './set-authorized-wallet.js';
6
+ const buyer = '0x2222222222222222222222222222222222222222';
7
+ const otherOperator = '0x3333333333333333333333333333333333333333';
8
+ const contract = '0x4444444444444444444444444444444444444444';
9
+ const wallet = new Wallet('0x' + '01'.repeat(32));
10
+ const context = { wallet, address: buyer };
11
+ function selfAuthorizationFixture(current = ZeroAddress) {
12
+ const calls = [];
13
+ return {
14
+ calls,
15
+ input: {
16
+ context,
17
+ evmChainId: 8453,
18
+ depositsContractAddress: contract,
19
+ client: {
20
+ getOperator: async (address) => { calls.push(['getOperator', address]); return current; },
21
+ getOperatorNonce: async (address) => { calls.push(['getOperatorNonce', address]); return 9007199254740993n; },
22
+ setOperator: async (...args) => { calls.push(['setOperator', ...args]); return '0xtx'; },
23
+ },
24
+ sign: async (...args) => { calls.push(['sign', ...args]); return '0xsig'; },
25
+ },
26
+ };
27
+ }
28
+ test('self authorization signs the live nonce and sets the buyer as operator', async () => {
29
+ const { input, calls } = selfAuthorizationFixture();
30
+ assert.equal(await setSelfAuthorizedWallet(input), '0xtx');
31
+ assert.deepEqual(calls, [
32
+ ['getOperator', buyer],
33
+ ['getOperatorNonce', buyer],
34
+ ['sign', wallet, 8453, contract, buyer, 9007199254740993n],
35
+ ['setOperator', wallet, buyer, buyer, 9007199254740993n, '0xsig'],
36
+ ]);
37
+ });
38
+ test('self authorization is an idempotent no-op when the buyer is already authorized', async () => {
39
+ const { input, calls } = selfAuthorizationFixture(buyer);
40
+ assert.equal(await setSelfAuthorizedWallet(input), null);
41
+ assert.deepEqual(calls, [['getOperator', buyer]]);
42
+ });
43
+ test('self authorization cannot replace a different authorized wallet', async () => {
44
+ const { input, calls } = selfAuthorizationFixture(otherOperator);
45
+ await assert.rejects(setSelfAuthorizedWallet(input), /Only that wallet can transfer authorization/);
46
+ assert.deepEqual(calls, [['getOperator', buyer]]);
47
+ });
48
+ test('RPC, signing, and transaction failures propagate without retries', async () => {
49
+ for (const stage of ['getOperator', 'getOperatorNonce', 'sign', 'setOperator']) {
50
+ const { input, calls } = selfAuthorizationFixture();
51
+ const fail = async () => { throw new Error(`${stage} failed`); };
52
+ if (stage === 'sign')
53
+ input.sign = fail;
54
+ else
55
+ input.client[stage] = fail;
56
+ await assert.rejects(setSelfAuthorizedWallet(input), new RegExp(`${stage} failed`));
57
+ assert.equal(calls.filter(([name]) => name === 'setOperator').length, 0);
58
+ }
59
+ });
60
+ test('builds a secure local wallet authorization URL', () => {
61
+ assert.equal(buildAuthorizedWalletUrl(4321, 'secret token'), 'http://127.0.0.1:4321?token=secret+token&page=pay&action=authorize');
62
+ });
63
+ test('browser flow opens the connected-wallet page, waits for completion, and closes', async () => {
64
+ const calls = [];
65
+ let onPaymentCompleted;
66
+ await runBrowserWalletAuthorization({
67
+ dataDir: '/tmp/buyer',
68
+ configPath: '/tmp/config.json',
69
+ createServer: async (options) => {
70
+ calls.push(['createServer', options.port, options.dataDir, options.configPath]);
71
+ onPaymentCompleted = options.onPaymentCompleted;
72
+ return {
73
+ bearerToken: 'token',
74
+ server: { address: () => ({ port: 4321 }) },
75
+ listen: async (options) => { calls.push(['listen', options]); },
76
+ close: async () => { calls.push(['close']); },
77
+ };
78
+ },
79
+ openBrowser: async (url) => {
80
+ calls.push(['openBrowser', url]);
81
+ onPaymentCompleted?.();
82
+ },
83
+ log: (message) => { calls.push(['log', message]); },
84
+ });
85
+ assert.deepEqual(calls, [
86
+ ['createServer', 0, '/tmp/buyer', '/tmp/config.json'],
87
+ ['listen', { port: 0, host: '127.0.0.1' }],
88
+ ['log', 'Open this secure local page to connect the authorized wallet:\nhttp://127.0.0.1:4321?token=token&page=pay&action=authorize'],
89
+ ['openBrowser', 'http://127.0.0.1:4321?token=token&page=pay&action=authorize'],
90
+ ['close'],
91
+ ]);
92
+ });
93
+ test('browser flow can print the URL without opening a browser', async () => {
94
+ let complete;
95
+ const opened = [];
96
+ await runBrowserWalletAuthorization({
97
+ dataDir: '/tmp/buyer',
98
+ createServer: async (options) => {
99
+ complete = options.onPaymentCompleted;
100
+ return {
101
+ bearerToken: 'token',
102
+ server: { address: () => ({ port: 4321 }) },
103
+ listen: async () => { queueMicrotask(complete); },
104
+ close: async () => { },
105
+ };
106
+ },
107
+ log: (message) => { opened.push(message); },
108
+ });
109
+ assert.equal(opened.length, 1);
110
+ assert.match(opened[0], /http:\/\/127\.0\.0\.1:4321/);
111
+ });
112
+ test('command defaults to browser authorization and exposes explicit self and no-open flags', () => {
113
+ let help = '';
114
+ const program = new Command().exitOverride().configureOutput({
115
+ writeOut: (value) => { help += value; },
116
+ writeErr: () => { },
117
+ });
118
+ const buyerCmd = program.command('buyer');
119
+ registerBuyerSetAuthorizedWalletCommand(buyerCmd);
120
+ const command = buyerCmd.commands[0];
121
+ assert.equal(command.name(), 'set-authorized-wallet');
122
+ assert.equal(command.registeredArguments.length, 0);
123
+ assert.deepEqual(command.options.map((option) => option.long), ['--self', '--no-open']);
124
+ command.outputHelp();
125
+ assert.match(help, /connected external wallet.*--self.*buyer hot wallet/s);
126
+ });
127
+ //# sourceMappingURL=set-authorized-wallet.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-authorized-wallet.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/set-authorized-wallet.test.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,5 @@ export declare function redactConfig(config: AntseedConfig): Record<string, unkn
17
17
  * @example setConfigValue(config, 'seller.providers.openai.services.gpt-4.pricing.inputUsdPerMillion', '3')
18
18
  */
19
19
  export declare function setConfigValue(config: Record<string, unknown>, key: string, value: string): void;
20
+ export declare function isDynamicKey(key: string): boolean;
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AASpF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuQ5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoChG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AASpF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuQ5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoChG;AAiBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD"}
@@ -311,15 +311,21 @@ export function setConfigValue(config, key, value) {
311
311
  current[lastKey] = Number.isNaN(numVal) ? trimmed : numVal;
312
312
  }
313
313
  /**
314
- * Key paths that are accepted even when the intermediate segments don't
315
- * exist in the current config yet. These are dictionaries keyed by
316
- * user-supplied identifiers (provider names, service IDs).
314
+ * Key paths accepted even when optional intermediate objects do not exist.
315
+ * Provider paths are dynamic because their names and service IDs are user-defined;
316
+ * optional fixed-shape blocks enumerate their supported leaf keys explicitly.
317
317
  */
318
318
  const DYNAMIC_KEY_PREFIXES = [
319
319
  'seller.providers.',
320
320
  ];
321
- function isDynamicKey(key) {
322
- return DYNAMIC_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
321
+ const DYNAMIC_KEYS = new Set([
322
+ 'seller.freeTier.maxRequestsPerAddress',
323
+ 'seller.freeTier.maxRequestsPerIp',
324
+ 'seller.freeTier.windowMs',
325
+ ]);
326
+ export function isDynamicKey(key) {
327
+ return DYNAMIC_KEYS.has(key)
328
+ || DYNAMIC_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
323
329
  }
324
330
  function getValidConfigKeys(config, prefix = '') {
325
331
  const keys = [];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
3
  import { createDefaultConfig } from '../../../config/defaults.js';
4
4
  import { resolvePluginPackage } from '../../../plugins/registry.js';
5
- import { redactConfig, setConfigValue, } from './index.js';
5
+ import { isDynamicKey, redactConfig, setConfigValue, } from './index.js';
6
6
  test('resolvePluginPackage maps trusted plugin aliases to package names', () => {
7
7
  assert.equal(resolvePluginPackage('openai'), '@antseed/provider-openai');
8
8
  assert.equal(resolvePluginPackage('@custom/provider'), '@custom/provider');
@@ -18,6 +18,18 @@ test('setConfigValue creates nested seller provider paths for dynamic keys', ()
18
18
  const pricing = kimi['pricing'];
19
19
  assert.equal(pricing['inputUsdPerMillion'], 0.5);
20
20
  });
21
+ test('seller free-tier fields can be created before the optional block exists', () => {
22
+ assert.equal(isDynamicKey('seller.freeTier.maxRequestsPerAddress'), true);
23
+ assert.equal(isDynamicKey('seller.freeTier.maxRequestsPerIp'), true);
24
+ assert.equal(isDynamicKey('seller.freeTier.windowMs'), true);
25
+ assert.equal(isDynamicKey('seller.freeTier.typo'), false);
26
+ const config = createDefaultConfig();
27
+ setConfigValue(config, 'seller.freeTier.maxRequestsPerAddress', '100');
28
+ setConfigValue(config, 'seller.freeTier.maxRequestsPerIp', '300');
29
+ setConfigValue(config, 'seller.freeTier.windowMs', '86400000');
30
+ const seller = config['seller'];
31
+ assert.deepEqual(seller['freeTier'], { maxRequestsPerAddress: 100, maxRequestsPerIp: 300, windowMs: 86400000 });
32
+ });
21
33
  test('redactConfig returns a detached clone of the config object', () => {
22
34
  const config = createDefaultConfig();
23
35
  config.identity.displayName = 'Original';
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,MAAM,MAAM,GAAG,mBAAmB,EAAwC,CAAC;IAE3E,cAAc,CACZ,MAAM,EACN,yEAAyE,EACzE,KAAK,CACN,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAA4B,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAA4B,CAAC;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAA4B,CAAC;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAA4B,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAA4B,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAA4B,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;IAEzC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAA6B,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAE7E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;IAC7E,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,MAAM,MAAM,GAAG,mBAAmB,EAAwC,CAAC;IAE3E,cAAc,CACZ,MAAM,EACN,yEAAyE,EACzE,KAAK,CACN,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAA4B,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAA4B,CAAC;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAA4B,CAAC;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAA4B,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAA4B,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAA4B,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACnF,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,uCAAuC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,kCAAkC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,mBAAmB,EAAwC,CAAC;IAC3E,cAAc,CAAC,MAAM,EAAE,uCAAuC,EAAE,KAAK,CAAC,CAAC;IACvE,cAAc,CAAC,MAAM,EAAE,kCAAkC,EAAE,KAAK,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,0BAA0B,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAA4B,CAAC;IAC3D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;IAEzC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAA6B,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAE7E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,OAAO,EAaL,KAAK,WAAW,EAGjB,MAAM,eAAe,CAAA;AAStB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAMpG,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAUxG,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAO3C;AAqBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,aAAa,CAAA;IACrB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,eAAe,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EhB;AAqCD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7F;AAED,wBAAgB,oCAAoC,CAAC,OAAO,EAAE;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,GAAG,sBAAsB,CAYzB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,eAAe,EAC7B,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6ExB;AAED,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,oBAAoB,EACpC,YAAY,EAAE,WAAW,EAAE,GAC1B,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,GACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAkpBnE"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,OAAO,EAcL,KAAK,WAAW,EAGjB,MAAM,eAAe,CAAA;AAStB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAMpG,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAUxG,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,eAAe,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAO3C;AAqBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,aAAa,CAAA;IACrB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;IACxB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,eAAe,EAAE,OAAO,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EhB;AAqCD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7F;AAED,wBAAgB,oCAAoC,CAAC,OAAO,EAAE;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,GAAG,sBAAsB,CAYzB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,eAAe,EAC7B,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6ExB;AAED,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,oBAAoB,EACpC,YAAY,EAAE,WAAW,EAAE,GAC1B,MAAM,GAAG,SAAS,CASpB;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE;IACR,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,GACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAwpBnE"}
@@ -4,7 +4,7 @@ import { writeFile, unlink } from 'node:fs/promises';
4
4
  import { join, resolve, isAbsolute, dirname } from 'node:path';
5
5
  import { getGlobalOptions } from '../types.js';
6
6
  import { loadConfig } from '../../../config/loader.js';
7
- import { AntseedNode, ModelHealthChecker, GasHealthMonitor, CONNECTION_CAPABILITY_MODEL_HEALTH_V1, DEFAULT_HEALTH_CHECK_INTERVAL_MS, DEFAULT_HEALTH_CHECK_FAILURE_THRESHOLD, DEFAULT_GAS_CHECK_INTERVAL_MS, DEFAULT_MIN_GAS_BALANCE_WEI, formatEther, parseEther, resolveChainConfig, loadOrCreateIdentity, } from '@antseed/node';
7
+ import { AntseedNode, ModelHealthChecker, GasHealthMonitor, CONNECTION_CAPABILITY_MODEL_HEALTH_V1, DEFAULT_HEALTH_CHECK_INTERVAL_MS, DEFAULT_HEALTH_CHECK_FAILURE_THRESHOLD, DEFAULT_GAS_CHECK_INTERVAL_MS, DEFAULT_MIN_GAS_BALANCE_WEI, SellerFreeTierLimiter, formatEther, parseEther, resolveChainConfig, loadOrCreateIdentity, } from '@antseed/node';
8
8
  import { checkSellerReadiness, DEFAULT_MIN_SETTLE_DELTA_STR } from '@antseed/node/payments';
9
9
  import { ANTSEED_BASE_RPC_URL_ENV, createIdentityClient, createStakingClient, resolveBaseRpcUrlOverride, } from '../../payment-utils.js';
10
10
  import { ANTSEED_VERIFIER_SDKS_ENV, buildVerifierCapabilities, normalizeVerifierIds } from '../../../plugins/verifier.js';
@@ -523,6 +523,12 @@ export function registerSellerStartCommand(sellerCmd) {
523
523
  }
524
524
  console.log(chalk.dim(` reserve floor: ${effectiveSellerConfig.reserveFloor}`));
525
525
  console.log(chalk.dim(` max concurrent buyers: ${effectiveSellerConfig.maxConcurrentBuyers}`));
526
+ if (effectiveSellerConfig.freeTier) {
527
+ console.log(chalk.dim(` free tier: ${new SellerFreeTierLimiter(effectiveSellerConfig.freeTier).describe()}`));
528
+ }
529
+ else {
530
+ console.log(chalk.dim(' free tier: unlimited for fully zero-priced services'));
531
+ }
526
532
  if (healthCheckEnabled) {
527
533
  const intervalMs = healthCheckCfg?.intervalMs ?? DEFAULT_HEALTH_CHECK_INTERVAL_MS;
528
534
  const failureThreshold = healthCheckCfg?.failureThreshold ?? DEFAULT_HEALTH_CHECK_FAILURE_THRESHOLD;
@@ -597,6 +603,7 @@ export function registerSellerStartCommand(sellerCmd) {
597
603
  ...(dhtPort ? { dhtPort } : {}),
598
604
  ...(signalingPort ? { signalingPort } : {}),
599
605
  ...(maxUploadBodyBytes !== undefined ? { maxUploadBodyBytes } : {}),
606
+ ...(effectiveSellerConfig.freeTier ? { freeTier: effectiveSellerConfig.freeTier } : {}),
600
607
  payments: {
601
608
  enabled: paymentsEnabled,
602
609
  paymentMethod: preferredMethod,