@antseed/cli 0.1.80 → 0.1.82

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 (236) hide show
  1. package/README.md +93 -77
  2. package/dist/cli/commands/buyer/balance.d.ts +3 -0
  3. package/dist/cli/commands/buyer/balance.d.ts.map +1 -0
  4. package/dist/cli/commands/{balance.js → buyer/balance.js} +5 -6
  5. package/dist/cli/commands/buyer/balance.js.map +1 -0
  6. package/dist/cli/commands/buyer/channels.d.ts +3 -0
  7. package/dist/cli/commands/buyer/channels.d.ts.map +1 -0
  8. package/dist/cli/commands/{channels.js → buyer/channels.js} +9 -17
  9. package/dist/cli/commands/buyer/channels.js.map +1 -0
  10. package/dist/cli/commands/buyer/connection.d.ts +3 -0
  11. package/dist/cli/commands/buyer/connection.d.ts.map +1 -0
  12. package/dist/cli/commands/{connection.js → buyer/connection.js} +5 -5
  13. package/dist/cli/commands/buyer/connection.js.map +1 -0
  14. package/dist/cli/commands/buyer/deposit.d.ts +3 -0
  15. package/dist/cli/commands/buyer/deposit.d.ts.map +1 -0
  16. package/dist/cli/commands/{deposit.js → buyer/deposit.js} +6 -6
  17. package/dist/cli/commands/buyer/deposit.js.map +1 -0
  18. package/dist/cli/commands/buyer/index.d.ts +3 -0
  19. package/dist/cli/commands/buyer/index.d.ts.map +1 -0
  20. package/dist/cli/commands/buyer/index.js +24 -0
  21. package/dist/cli/commands/buyer/index.js.map +1 -0
  22. package/dist/cli/commands/buyer/metering.d.ts +3 -0
  23. package/dist/cli/commands/buyer/metering.d.ts.map +1 -0
  24. package/dist/cli/commands/{metering.js → buyer/metering.js} +7 -10
  25. package/dist/cli/commands/buyer/metering.js.map +1 -0
  26. package/dist/cli/commands/buyer/metering.test.d.ts.map +1 -0
  27. package/dist/cli/commands/buyer/metering.test.js.map +1 -0
  28. package/dist/cli/commands/{connect.d.ts → buyer/start.d.ts} +7 -4
  29. package/dist/cli/commands/buyer/start.d.ts.map +1 -0
  30. package/dist/cli/commands/{connect.js → buyer/start.js} +37 -71
  31. package/dist/cli/commands/buyer/start.js.map +1 -0
  32. package/dist/cli/commands/buyer/start.test.d.ts +2 -0
  33. package/dist/cli/commands/buyer/start.test.d.ts.map +1 -0
  34. package/dist/cli/commands/{connect.test.js → buyer/start.test.js} +12 -8
  35. package/dist/cli/commands/buyer/start.test.js.map +1 -0
  36. package/dist/cli/commands/buyer/status.d.ts +3 -0
  37. package/dist/cli/commands/buyer/status.d.ts.map +1 -0
  38. package/dist/cli/commands/buyer/status.js +70 -0
  39. package/dist/cli/commands/buyer/status.js.map +1 -0
  40. package/dist/cli/commands/buyer/subscribe.d.ts +3 -0
  41. package/dist/cli/commands/buyer/subscribe.d.ts.map +1 -0
  42. package/dist/cli/commands/{subscribe.js → buyer/subscribe.js} +8 -8
  43. package/dist/cli/commands/buyer/subscribe.js.map +1 -0
  44. package/dist/cli/commands/buyer/withdraw.d.ts +3 -0
  45. package/dist/cli/commands/buyer/withdraw.d.ts.map +1 -0
  46. package/dist/cli/commands/{withdraw.js → buyer/withdraw.js} +6 -7
  47. package/dist/cli/commands/buyer/withdraw.js.map +1 -0
  48. package/dist/cli/commands/{config.d.ts → config/index.d.ts} +7 -7
  49. package/dist/cli/commands/config/index.d.ts.map +1 -0
  50. package/dist/cli/commands/config/index.js +357 -0
  51. package/dist/cli/commands/config/index.js.map +1 -0
  52. package/dist/cli/commands/config/index.test.d.ts +2 -0
  53. package/dist/cli/commands/config/index.test.d.ts.map +1 -0
  54. package/dist/cli/commands/config/index.test.js +28 -0
  55. package/dist/cli/commands/config/index.test.js.map +1 -0
  56. package/dist/cli/commands/identity/index.d.ts +3 -0
  57. package/dist/cli/commands/identity/index.d.ts.map +1 -0
  58. package/dist/cli/commands/identity/index.js +6 -0
  59. package/dist/cli/commands/identity/index.js.map +1 -0
  60. package/dist/cli/commands/identity/profile.d.ts.map +1 -0
  61. package/dist/cli/commands/identity/profile.js.map +1 -0
  62. package/dist/cli/commands/network/bootstrap.d.ts +3 -0
  63. package/dist/cli/commands/network/bootstrap.d.ts.map +1 -0
  64. package/dist/cli/commands/{bootstrap.js → network/bootstrap.js} +5 -5
  65. package/dist/cli/commands/network/bootstrap.js.map +1 -0
  66. package/dist/cli/commands/network/browse.d.ts +7 -0
  67. package/dist/cli/commands/network/browse.d.ts.map +1 -0
  68. package/dist/cli/commands/{browse.js → network/browse.js} +6 -6
  69. package/dist/cli/commands/network/browse.js.map +1 -0
  70. package/dist/cli/commands/network/index.d.ts +3 -0
  71. package/dist/cli/commands/network/index.d.ts.map +1 -0
  72. package/dist/cli/commands/network/index.js +10 -0
  73. package/dist/cli/commands/network/index.js.map +1 -0
  74. package/dist/cli/commands/seller/emissions.d.ts +3 -0
  75. package/dist/cli/commands/seller/emissions.d.ts.map +1 -0
  76. package/dist/cli/commands/{emissions.js → seller/emissions.js} +7 -7
  77. package/dist/cli/commands/seller/emissions.js.map +1 -0
  78. package/dist/cli/commands/seller/index.d.ts +3 -0
  79. package/dist/cli/commands/seller/index.d.ts.map +1 -0
  80. package/dist/cli/commands/seller/index.js +18 -0
  81. package/dist/cli/commands/seller/index.js.map +1 -0
  82. package/dist/cli/commands/seller/register.d.ts +3 -0
  83. package/dist/cli/commands/seller/register.d.ts.map +1 -0
  84. package/dist/cli/commands/{register.js → seller/register.js} +6 -6
  85. package/dist/cli/commands/seller/register.js.map +1 -0
  86. package/dist/cli/commands/seller/setup.d.ts +12 -0
  87. package/dist/cli/commands/seller/setup.d.ts.map +1 -0
  88. package/dist/cli/commands/seller/setup.js +175 -0
  89. package/dist/cli/commands/seller/setup.js.map +1 -0
  90. package/dist/cli/commands/seller/setup.test.d.ts +2 -0
  91. package/dist/cli/commands/seller/setup.test.d.ts.map +1 -0
  92. package/dist/cli/commands/seller/setup.test.js +32 -0
  93. package/dist/cli/commands/seller/setup.test.js.map +1 -0
  94. package/dist/cli/commands/seller/stake.d.ts +3 -0
  95. package/dist/cli/commands/seller/stake.d.ts.map +1 -0
  96. package/dist/cli/commands/{stake.js → seller/stake.js} +11 -11
  97. package/dist/cli/commands/seller/stake.js.map +1 -0
  98. package/dist/cli/commands/seller/start.d.ts +44 -0
  99. package/dist/cli/commands/seller/start.d.ts.map +1 -0
  100. package/dist/cli/commands/{seed.js → seller/start.js} +241 -135
  101. package/dist/cli/commands/seller/start.js.map +1 -0
  102. package/dist/cli/commands/seller/start.test.d.ts +2 -0
  103. package/dist/cli/commands/seller/start.test.d.ts.map +1 -0
  104. package/dist/cli/commands/seller/start.test.js +212 -0
  105. package/dist/cli/commands/seller/start.test.js.map +1 -0
  106. package/dist/cli/commands/seller/status.d.ts +3 -0
  107. package/dist/cli/commands/seller/status.d.ts.map +1 -0
  108. package/dist/cli/commands/seller/status.js +72 -0
  109. package/dist/cli/commands/seller/status.js.map +1 -0
  110. package/dist/cli/commands/types.d.ts.map +1 -1
  111. package/dist/cli/commands/types.js +3 -1
  112. package/dist/cli/commands/types.js.map +1 -1
  113. package/dist/cli/commands/types.test.d.ts +2 -0
  114. package/dist/cli/commands/types.test.d.ts.map +1 -0
  115. package/dist/cli/commands/types.test.js +21 -0
  116. package/dist/cli/commands/types.test.js.map +1 -0
  117. package/dist/cli/index.js +11 -42
  118. package/dist/cli/index.js.map +1 -1
  119. package/dist/cli/payment-utils.js +1 -1
  120. package/dist/cli/payment-utils.js.map +1 -1
  121. package/dist/config/defaults.d.ts.map +1 -1
  122. package/dist/config/defaults.js +1 -8
  123. package/dist/config/defaults.js.map +1 -1
  124. package/dist/config/effective.d.ts.map +1 -1
  125. package/dist/config/effective.js +23 -4
  126. package/dist/config/effective.js.map +1 -1
  127. package/dist/config/effective.test.js +24 -5
  128. package/dist/config/effective.test.js.map +1 -1
  129. package/dist/config/loader.d.ts.map +1 -1
  130. package/dist/config/loader.js +64 -95
  131. package/dist/config/loader.js.map +1 -1
  132. package/dist/config/loader.test.js +62 -41
  133. package/dist/config/loader.test.js.map +1 -1
  134. package/dist/config/types.d.ts +35 -49
  135. package/dist/config/types.d.ts.map +1 -1
  136. package/dist/config/validation.d.ts.map +1 -1
  137. package/dist/config/validation.js +51 -35
  138. package/dist/config/validation.js.map +1 -1
  139. package/dist/plugins/loader.js +1 -1
  140. package/dist/plugins/loader.js.map +1 -1
  141. package/dist/plugins/registry.d.ts +1 -0
  142. package/dist/plugins/registry.d.ts.map +1 -1
  143. package/dist/plugins/registry.js +4 -0
  144. package/dist/plugins/registry.js.map +1 -1
  145. package/dist/proxy/buyer-proxy.d.ts +1 -1
  146. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  147. package/dist/proxy/buyer-proxy.js +5 -2
  148. package/dist/proxy/buyer-proxy.js.map +1 -1
  149. package/package.json +8 -8
  150. package/dist/cli/commands/balance.d.ts +0 -3
  151. package/dist/cli/commands/balance.d.ts.map +0 -1
  152. package/dist/cli/commands/balance.js.map +0 -1
  153. package/dist/cli/commands/bootstrap.d.ts +0 -3
  154. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  155. package/dist/cli/commands/bootstrap.js.map +0 -1
  156. package/dist/cli/commands/browse.d.ts +0 -7
  157. package/dist/cli/commands/browse.d.ts.map +0 -1
  158. package/dist/cli/commands/browse.js.map +0 -1
  159. package/dist/cli/commands/channels.d.ts +0 -3
  160. package/dist/cli/commands/channels.d.ts.map +0 -1
  161. package/dist/cli/commands/channels.js.map +0 -1
  162. package/dist/cli/commands/config.d.ts.map +0 -1
  163. package/dist/cli/commands/config.js +0 -239
  164. package/dist/cli/commands/config.js.map +0 -1
  165. package/dist/cli/commands/connect.d.ts.map +0 -1
  166. package/dist/cli/commands/connect.js.map +0 -1
  167. package/dist/cli/commands/connect.test.d.ts +0 -2
  168. package/dist/cli/commands/connect.test.d.ts.map +0 -1
  169. package/dist/cli/commands/connect.test.js.map +0 -1
  170. package/dist/cli/commands/connection.d.ts +0 -3
  171. package/dist/cli/commands/connection.d.ts.map +0 -1
  172. package/dist/cli/commands/connection.js.map +0 -1
  173. package/dist/cli/commands/deposit.d.ts +0 -3
  174. package/dist/cli/commands/deposit.d.ts.map +0 -1
  175. package/dist/cli/commands/deposit.js.map +0 -1
  176. package/dist/cli/commands/emissions.d.ts +0 -3
  177. package/dist/cli/commands/emissions.d.ts.map +0 -1
  178. package/dist/cli/commands/emissions.js.map +0 -1
  179. package/dist/cli/commands/init.d.ts +0 -3
  180. package/dist/cli/commands/init.d.ts.map +0 -1
  181. package/dist/cli/commands/init.js +0 -90
  182. package/dist/cli/commands/init.js.map +0 -1
  183. package/dist/cli/commands/metering.d.ts +0 -3
  184. package/dist/cli/commands/metering.d.ts.map +0 -1
  185. package/dist/cli/commands/metering.js.map +0 -1
  186. package/dist/cli/commands/metering.test.d.ts.map +0 -1
  187. package/dist/cli/commands/metering.test.js.map +0 -1
  188. package/dist/cli/commands/plugin-create.d.ts +0 -11
  189. package/dist/cli/commands/plugin-create.d.ts.map +0 -1
  190. package/dist/cli/commands/plugin-create.js +0 -201
  191. package/dist/cli/commands/plugin-create.js.map +0 -1
  192. package/dist/cli/commands/plugin-create.test.d.ts +0 -2
  193. package/dist/cli/commands/plugin-create.test.d.ts.map +0 -1
  194. package/dist/cli/commands/plugin-create.test.js +0 -53
  195. package/dist/cli/commands/plugin-create.test.js.map +0 -1
  196. package/dist/cli/commands/plugin.d.ts +0 -3
  197. package/dist/cli/commands/plugin.d.ts.map +0 -1
  198. package/dist/cli/commands/plugin.js +0 -279
  199. package/dist/cli/commands/plugin.js.map +0 -1
  200. package/dist/cli/commands/plugin.test.d.ts +0 -2
  201. package/dist/cli/commands/plugin.test.d.ts.map +0 -1
  202. package/dist/cli/commands/plugin.test.js +0 -54
  203. package/dist/cli/commands/plugin.test.js.map +0 -1
  204. package/dist/cli/commands/profile.d.ts.map +0 -1
  205. package/dist/cli/commands/profile.js.map +0 -1
  206. package/dist/cli/commands/register.d.ts +0 -3
  207. package/dist/cli/commands/register.d.ts.map +0 -1
  208. package/dist/cli/commands/register.js.map +0 -1
  209. package/dist/cli/commands/seed.d.ts +0 -14
  210. package/dist/cli/commands/seed.d.ts.map +0 -1
  211. package/dist/cli/commands/seed.js.map +0 -1
  212. package/dist/cli/commands/seed.test.d.ts +0 -2
  213. package/dist/cli/commands/seed.test.d.ts.map +0 -1
  214. package/dist/cli/commands/seed.test.js +0 -92
  215. package/dist/cli/commands/seed.test.js.map +0 -1
  216. package/dist/cli/commands/setup.d.ts +0 -3
  217. package/dist/cli/commands/setup.d.ts.map +0 -1
  218. package/dist/cli/commands/setup.js +0 -84
  219. package/dist/cli/commands/setup.js.map +0 -1
  220. package/dist/cli/commands/stake.d.ts +0 -3
  221. package/dist/cli/commands/stake.d.ts.map +0 -1
  222. package/dist/cli/commands/stake.js.map +0 -1
  223. package/dist/cli/commands/status.d.ts +0 -8
  224. package/dist/cli/commands/status.d.ts.map +0 -1
  225. package/dist/cli/commands/status.js +0 -55
  226. package/dist/cli/commands/status.js.map +0 -1
  227. package/dist/cli/commands/subscribe.d.ts +0 -3
  228. package/dist/cli/commands/subscribe.d.ts.map +0 -1
  229. package/dist/cli/commands/subscribe.js.map +0 -1
  230. package/dist/cli/commands/withdraw.d.ts +0 -3
  231. package/dist/cli/commands/withdraw.d.ts.map +0 -1
  232. package/dist/cli/commands/withdraw.js.map +0 -1
  233. /package/dist/cli/commands/{metering.test.d.ts → buyer/metering.test.d.ts} +0 -0
  234. /package/dist/cli/commands/{metering.test.js → buyer/metering.test.js} +0 -0
  235. /package/dist/cli/commands/{profile.d.ts → identity/profile.d.ts} +0 -0
  236. /package/dist/cli/commands/{profile.js → identity/profile.js} +0 -0
@@ -0,0 +1,357 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { getGlobalOptions } from '../types.js';
4
+ import { loadConfig, saveConfig } from '../../../config/loader.js';
5
+ import { assertValidConfig } from '../../../config/validation.js';
6
+ import { installPlugin } from '../../../plugins/manager.js';
7
+ import { resolvePluginPackage } from '../../../plugins/registry.js';
8
+ /**
9
+ * Register the `antseed config` command and its subcommands.
10
+ */
11
+ export function registerConfigCommand(program) {
12
+ const configCmd = program
13
+ .command('config')
14
+ .description('Manage Antseed configuration');
15
+ // antseed config show
16
+ configCmd
17
+ .command('show')
18
+ .description('Display current configuration (credentials redacted)')
19
+ .action(async () => {
20
+ const globalOpts = getGlobalOptions(program);
21
+ const config = await loadConfig(globalOpts.config);
22
+ const redacted = redactConfig(config);
23
+ console.log(JSON.stringify(redacted, null, 2));
24
+ });
25
+ // antseed config set <key> <value>
26
+ configCmd
27
+ .command('set <key> <value>')
28
+ .description('Set a configuration value (e.g., seller.reserveFloor 20)')
29
+ .action(async (key, value) => {
30
+ try {
31
+ const globalOpts = getGlobalOptions(program);
32
+ const config = await loadConfig(globalOpts.config);
33
+ if (!isDynamicKey(key)) {
34
+ const validKeys = getValidConfigKeys(config);
35
+ if (!validKeys.includes(key)) {
36
+ console.error(chalk.red(`Invalid config key: ${key}`));
37
+ console.error(chalk.dim(`Available keys: ${validKeys.join(', ')}`));
38
+ process.exitCode = 1;
39
+ return;
40
+ }
41
+ }
42
+ setConfigValue(config, key, value);
43
+ assertValidConfig(config);
44
+ await saveConfig(globalOpts.config, config);
45
+ console.log(chalk.green(`Set ${key} = ${value}`));
46
+ }
47
+ catch (err) {
48
+ console.error(chalk.red(`Error: ${err.message}`));
49
+ process.exitCode = 1;
50
+ }
51
+ });
52
+ const sellerCmd = configCmd
53
+ .command('seller')
54
+ .description('Role-scoped seller configuration commands');
55
+ sellerCmd
56
+ .command('show')
57
+ .description('Display seller configuration')
58
+ .action(async () => {
59
+ const globalOpts = getGlobalOptions(program);
60
+ const config = await loadConfig(globalOpts.config);
61
+ console.log(JSON.stringify(config.seller, null, 2));
62
+ });
63
+ sellerCmd
64
+ .command('set <key> <value>')
65
+ .description('Set seller configuration value (e.g., providers.openai.services.gpt-4.pricing.inputUsdPerMillion 3)')
66
+ .action(async (key, value) => {
67
+ await setRoleScopedValue(program, 'seller', key, value);
68
+ });
69
+ sellerCmd
70
+ .command('add-service <provider> <serviceId>')
71
+ .description('Add a service offering under a provider (e.g., add-service openai gpt-4 --input 5 --output 15 --categories chat,coding)')
72
+ .option('--upstream <model>', 'upstream model identifier (defaults to serviceId)')
73
+ .option('--input <usd>', 'input price in USD per 1M tokens', parseFloat)
74
+ .option('--output <usd>', 'output price in USD per 1M tokens', parseFloat)
75
+ .option('--cached <usd>', 'cached-input price in USD per 1M tokens', parseFloat)
76
+ .option('--categories <list>', 'comma-separated normie tags (e.g., chat,coding,fast)')
77
+ .option('--base-url <url>', 'set the provider baseUrl (one-shot; applies to the whole provider)')
78
+ .action(async (providerName, serviceId, options) => {
79
+ try {
80
+ const globalOpts = getGlobalOptions(program);
81
+ const config = await loadConfig(globalOpts.config);
82
+ const providers = config.seller.providers;
83
+ const providerCfg = providers[providerName];
84
+ if (!providerCfg) {
85
+ console.error(chalk.red(`Provider "${providerName}" not found. Add it first with antseed config seller add-provider ${providerName} --plugin <plugin>.`));
86
+ process.exitCode = 1;
87
+ return;
88
+ }
89
+ if (options.baseUrl) {
90
+ providerCfg.baseUrl = options.baseUrl;
91
+ }
92
+ const service = providerCfg.services[serviceId] ?? {};
93
+ if (options.upstream) {
94
+ service.upstreamModel = options.upstream;
95
+ }
96
+ else if (!service.upstreamModel) {
97
+ service.upstreamModel = serviceId;
98
+ }
99
+ const hasInput = typeof options.input === 'number';
100
+ const hasOutput = typeof options.output === 'number';
101
+ const hasCached = typeof options.cached === 'number';
102
+ if (hasInput || hasOutput || hasCached) {
103
+ const existing = service.pricing ?? { inputUsdPerMillion: 0, outputUsdPerMillion: 0 };
104
+ service.pricing = {
105
+ inputUsdPerMillion: hasInput ? options.input : existing.inputUsdPerMillion,
106
+ outputUsdPerMillion: hasOutput ? options.output : existing.outputUsdPerMillion,
107
+ ...(hasCached ? { cachedInputUsdPerMillion: options.cached } : (existing.cachedInputUsdPerMillion != null ? { cachedInputUsdPerMillion: existing.cachedInputUsdPerMillion } : {})),
108
+ };
109
+ }
110
+ if (typeof options.categories === 'string' && options.categories.trim().length > 0) {
111
+ service.categories = options.categories
112
+ .split(',')
113
+ .map((t) => t.trim().toLowerCase())
114
+ .filter((t) => t.length > 0);
115
+ }
116
+ providerCfg.services[serviceId] = service;
117
+ providers[providerName] = providerCfg;
118
+ assertValidConfig(config);
119
+ await saveConfig(globalOpts.config, config);
120
+ console.log(chalk.green(`Added service ${providerName}/${serviceId}`));
121
+ }
122
+ catch (err) {
123
+ console.error(chalk.red(`Error: ${err.message}`));
124
+ process.exitCode = 1;
125
+ }
126
+ });
127
+ sellerCmd
128
+ .command('remove-service <provider> <serviceId>')
129
+ .description('Remove a service offering from a provider')
130
+ .action(async (providerName, serviceId) => {
131
+ try {
132
+ const globalOpts = getGlobalOptions(program);
133
+ const config = await loadConfig(globalOpts.config);
134
+ const providerCfg = config.seller.providers[providerName];
135
+ if (!providerCfg || !providerCfg.services[serviceId]) {
136
+ console.log(chalk.yellow(`No service ${providerName}/${serviceId} found`));
137
+ return;
138
+ }
139
+ delete providerCfg.services[serviceId];
140
+ assertValidConfig(config);
141
+ await saveConfig(globalOpts.config, config);
142
+ console.log(chalk.green(`Removed service ${providerName}/${serviceId}`));
143
+ }
144
+ catch (err) {
145
+ console.error(chalk.red(`Error: ${err.message}`));
146
+ process.exitCode = 1;
147
+ }
148
+ });
149
+ sellerCmd
150
+ .command('add-provider <name>')
151
+ .description('Add a provider (installs plugin, creates seller.providers[name] entry)')
152
+ .requiredOption('--plugin <plugin>', 'plugin name or npm package (e.g., openai, anthropic, @antseed/provider-openai)')
153
+ .option('--base-url <url>', 'upstream API base URL (e.g., https://api.together.ai)')
154
+ .option('--input <usd>', 'default input price in USD per 1M tokens', parseFloat)
155
+ .option('--output <usd>', 'default output price in USD per 1M tokens', parseFloat)
156
+ .option('--cached <usd>', 'default cached-input price in USD per 1M tokens', parseFloat)
157
+ .action(async (name, options) => {
158
+ try {
159
+ const globalOpts = getGlobalOptions(program);
160
+ const config = await loadConfig(globalOpts.config);
161
+ if (config.seller.providers[name]) {
162
+ console.error(chalk.red(`Provider "${name}" already exists. Remove it first or choose a different name.`));
163
+ process.exitCode = 1;
164
+ return;
165
+ }
166
+ const pluginName = options.plugin;
167
+ const packageName = resolvePluginPackage(pluginName);
168
+ const spinner = ora(`Installing ${packageName}...`).start();
169
+ try {
170
+ await installPlugin(packageName);
171
+ spinner.succeed(chalk.green(`Installed ${packageName}`));
172
+ }
173
+ catch (err) {
174
+ spinner.fail(chalk.red(`Failed to install ${packageName}: ${err.message}`));
175
+ process.exitCode = 1;
176
+ return;
177
+ }
178
+ const providerEntry = {
179
+ plugin: pluginName,
180
+ services: {},
181
+ };
182
+ if (options.baseUrl) {
183
+ providerEntry.baseUrl = options.baseUrl;
184
+ }
185
+ const hasInput = typeof options.input === 'number';
186
+ const hasOutput = typeof options.output === 'number';
187
+ const hasCached = typeof options.cached === 'number';
188
+ if (hasInput || hasOutput) {
189
+ providerEntry.defaults = {
190
+ inputUsdPerMillion: hasInput ? options.input : 0,
191
+ outputUsdPerMillion: hasOutput ? options.output : 0,
192
+ ...(hasCached ? { cachedInputUsdPerMillion: options.cached } : {}),
193
+ };
194
+ }
195
+ config.seller.providers[name] = providerEntry;
196
+ assertValidConfig(config);
197
+ await saveConfig(globalOpts.config, config);
198
+ console.log(chalk.green(`Added provider "${name}" (plugin: ${pluginName})`));
199
+ console.log(chalk.dim(`Next: antseed config seller add-service ${name} <serviceId> --input <usd> --output <usd>`));
200
+ }
201
+ catch (err) {
202
+ console.error(chalk.red(`Error: ${err.message}`));
203
+ process.exitCode = 1;
204
+ }
205
+ });
206
+ sellerCmd
207
+ .command('remove-provider <name>')
208
+ .description('Remove a provider entry from seller config')
209
+ .action(async (name) => {
210
+ try {
211
+ const globalOpts = getGlobalOptions(program);
212
+ const config = await loadConfig(globalOpts.config);
213
+ if (!config.seller.providers[name]) {
214
+ console.log(chalk.yellow(`No provider "${name}" found`));
215
+ return;
216
+ }
217
+ const serviceCount = Object.keys(config.seller.providers[name].services).length;
218
+ delete config.seller.providers[name];
219
+ await saveConfig(globalOpts.config, config);
220
+ console.log(chalk.green(`Removed provider "${name}" (had ${serviceCount} service(s))`));
221
+ }
222
+ catch (err) {
223
+ console.error(chalk.red(`Error: ${err.message}`));
224
+ process.exitCode = 1;
225
+ }
226
+ });
227
+ const buyerCmd = configCmd
228
+ .command('buyer')
229
+ .description('Role-scoped buyer configuration commands');
230
+ buyerCmd
231
+ .command('show')
232
+ .description('Display buyer configuration')
233
+ .action(async () => {
234
+ const globalOpts = getGlobalOptions(program);
235
+ const config = await loadConfig(globalOpts.config);
236
+ console.log(JSON.stringify(config.buyer, null, 2));
237
+ });
238
+ buyerCmd
239
+ .command('set <key> <value>')
240
+ .description('Set buyer configuration value (e.g., maxPricing.defaults.inputUsdPerMillion 25)')
241
+ .action(async (key, value) => {
242
+ await setRoleScopedValue(program, 'buyer', key, value);
243
+ });
244
+ // antseed config init
245
+ configCmd
246
+ .command('init')
247
+ .description('Initialize a new config file with defaults')
248
+ .action(async () => {
249
+ const globalOpts = getGlobalOptions(program);
250
+ const { createDefaultConfig } = await import('../../../config/defaults.js');
251
+ const config = createDefaultConfig();
252
+ await saveConfig(globalOpts.config, config);
253
+ console.log(chalk.green(`Config initialized at ${globalOpts.config}`));
254
+ });
255
+ }
256
+ /**
257
+ * Redact sensitive fields (auth values) from config for display.
258
+ */
259
+ export function redactConfig(config) {
260
+ return JSON.parse(JSON.stringify(config));
261
+ }
262
+ /**
263
+ * Set a nested config value by dot-separated key path. Auto-creates missing
264
+ * intermediate objects so dynamic paths under `seller.providers.<name>.services.<id>`
265
+ * can be set before the provider or service entry exists in the file.
266
+ *
267
+ * @example setConfigValue(config, 'seller.reserveFloor', '20')
268
+ * @example setConfigValue(config, 'seller.providers.openai.services.gpt-4.pricing.inputUsdPerMillion', '3')
269
+ */
270
+ export function setConfigValue(config, key, value) {
271
+ const parts = key.split('.');
272
+ let current = config;
273
+ for (let i = 0; i < parts.length - 1; i++) {
274
+ const part = parts[i];
275
+ const existing = current[part];
276
+ if (existing === undefined || existing === null) {
277
+ current[part] = {};
278
+ current = current[part];
279
+ continue;
280
+ }
281
+ if (typeof existing !== 'object' || Array.isArray(existing)) {
282
+ throw new Error(`Cannot set ${key}: ${parts.slice(0, i + 1).join('.')} is not an object`);
283
+ }
284
+ current = existing;
285
+ }
286
+ const lastKey = parts[parts.length - 1];
287
+ const trimmed = value.trim();
288
+ if ((trimmed.startsWith('{') && trimmed.endsWith('}')) ||
289
+ (trimmed.startsWith('[') && trimmed.endsWith(']'))) {
290
+ try {
291
+ current[lastKey] = JSON.parse(trimmed);
292
+ return;
293
+ }
294
+ catch {
295
+ throw new Error(`Invalid JSON value for ${key}`);
296
+ }
297
+ }
298
+ // Auto-parse numeric scalars. Non-numeric strings use `trimmed` to match
299
+ // loader normalization (e.g. normalizeSellerProvider strips whitespace), so
300
+ // on-disk state matches what `loadConfig` would produce.
301
+ const numVal = Number(trimmed);
302
+ current[lastKey] = Number.isNaN(numVal) ? trimmed : numVal;
303
+ }
304
+ /**
305
+ * Key paths that are accepted even when the intermediate segments don't
306
+ * exist in the current config yet. These are dictionaries keyed by
307
+ * user-supplied identifiers (provider names, service IDs).
308
+ */
309
+ const DYNAMIC_KEY_PREFIXES = [
310
+ 'seller.providers.',
311
+ ];
312
+ function isDynamicKey(key) {
313
+ return DYNAMIC_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
314
+ }
315
+ function getValidConfigKeys(config, prefix = '') {
316
+ const keys = [];
317
+ for (const [k, v] of Object.entries(config)) {
318
+ if (k === 'plugins')
319
+ continue;
320
+ const path = prefix ? `${prefix}.${k}` : k;
321
+ if (v && typeof v === 'object' && !Array.isArray(v)) {
322
+ keys.push(...getValidConfigKeys(v, path));
323
+ }
324
+ else {
325
+ keys.push(path);
326
+ }
327
+ }
328
+ return keys;
329
+ }
330
+ async function setRoleScopedValue(program, role, key, value) {
331
+ try {
332
+ const globalOpts = getGlobalOptions(program);
333
+ const config = await loadConfig(globalOpts.config);
334
+ const fullKey = `${role}.${key}`;
335
+ if (!isDynamicKey(fullKey)) {
336
+ const validKeys = getValidConfigKeys(config);
337
+ if (!validKeys.includes(fullKey)) {
338
+ console.error(chalk.red(`Invalid ${role} config key: ${key}`));
339
+ const scopedKeys = validKeys
340
+ .filter((path) => path.startsWith(`${role}.`))
341
+ .map((path) => path.slice(role.length + 1));
342
+ console.error(chalk.dim(`Available ${role} keys: ${scopedKeys.join(', ')}`));
343
+ process.exitCode = 1;
344
+ return;
345
+ }
346
+ }
347
+ setConfigValue(config, fullKey, value);
348
+ assertValidConfig(config);
349
+ await saveConfig(globalOpts.config, config);
350
+ console.log(chalk.green(`Set ${fullKey} = ${value}`));
351
+ }
352
+ catch (err) {
353
+ console.error(chalk.red(`Error: ${err.message}`));
354
+ process.exitCode = 1;
355
+ }
356
+ }
357
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { createDefaultConfig } from '../../../config/defaults.js';
4
+ import { resolvePluginPackage } from '../../../plugins/registry.js';
5
+ import { redactConfig, setConfigValue, } from './index.js';
6
+ test('resolvePluginPackage maps trusted plugin aliases to package names', () => {
7
+ assert.equal(resolvePluginPackage('openai'), '@antseed/provider-openai');
8
+ assert.equal(resolvePluginPackage('@custom/provider'), '@custom/provider');
9
+ });
10
+ test('setConfigValue creates nested seller provider paths for dynamic keys', () => {
11
+ const config = createDefaultConfig();
12
+ setConfigValue(config, 'seller.providers.together.services.kimi-k2_5.pricing.inputUsdPerMillion', '0.5');
13
+ const seller = config['seller'];
14
+ const providers = seller['providers'];
15
+ const together = providers['together'];
16
+ const services = together['services'];
17
+ const kimi = services['kimi-k2_5'];
18
+ const pricing = kimi['pricing'];
19
+ assert.equal(pricing['inputUsdPerMillion'], 0.5);
20
+ });
21
+ test('redactConfig returns a detached clone of the config object', () => {
22
+ const config = createDefaultConfig();
23
+ config.identity.displayName = 'Original';
24
+ const redacted = redactConfig(config);
25
+ redacted['identity']['displayName'] = 'Mutated';
26
+ assert.equal(config.identity.displayName, 'Original');
27
+ });
28
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerIdentityCommands(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAG/D"}
@@ -0,0 +1,6 @@
1
+ import { registerProfileCommand, registerPeerCommand } from './profile.js';
2
+ export function registerIdentityCommands(program) {
3
+ registerProfileCommand(program);
4
+ registerPeerCommand(program);
5
+ }
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/identity/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0E7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS1D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/cli/commands/identity/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerNetworkBootstrapCommand(networkCmd: Command): void;
3
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAkDzE"}
@@ -1,16 +1,16 @@
1
1
  import chalk from 'chalk';
2
- import { getGlobalOptions } from './types.js';
2
+ import { getGlobalOptions } from '../types.js';
3
3
  import { loadOrCreateIdentity } from '@antseed/node';
4
4
  import { DHTNode, parseBootstrapList } from '@antseed/node/discovery';
5
- import { setupShutdownHandler } from '../shutdown.js';
6
- export function registerBootstrapCommand(program) {
7
- program
5
+ import { setupShutdownHandler } from '../../shutdown.js';
6
+ export function registerNetworkBootstrapCommand(networkCmd) {
7
+ networkCmd
8
8
  .command('bootstrap')
9
9
  .description('Run a dedicated DHT bootstrap node (no provider, no payments)')
10
10
  .option('-p, --port <port>', 'UDP port to listen on', '6881')
11
11
  .option('-b, --bootstrap <nodes>', 'comma-separated host:port list of peer bootstrap nodes (e.g. to cross-connect two bootstrap nodes)')
12
12
  .action(async (options) => {
13
- const globalOptions = getGlobalOptions(program);
13
+ const globalOptions = getGlobalOptions(networkCmd);
14
14
  const port = parseInt(options.port, 10);
15
15
  if (!Number.isFinite(port) || port < 1 || port > 65535) {
16
16
  console.error(chalk.red(`Invalid port: ${options.port}`));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/cli/commands/network/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Command } from 'commander';
2
+ /**
3
+ * Register the `antseed network browse` command on the Commander program.
4
+ * Discovers peers on the network and displays available services, prices, and reputation.
5
+ */
6
+ export declare function registerNetworkBrowseCommand(networkCmd: Command): void;
7
+ //# sourceMappingURL=browse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/browse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CA4FtE"}
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
3
  import Table from 'cli-table3';
4
- import { getGlobalOptions } from './types.js';
5
- import { loadConfig } from '../../config/loader.js';
4
+ import { getGlobalOptions } from '../types.js';
5
+ import { loadConfig } from '../../../config/loader.js';
6
6
  import { AntseedNode } from '@antseed/node';
7
7
  import { parseBootstrapList, toBootstrapConfig } from '@antseed/node/discovery';
8
8
  function getReputationColor(reputation) {
@@ -15,17 +15,17 @@ function getReputationColor(reputation) {
15
15
  return chalk.red;
16
16
  }
17
17
  /**
18
- * Register the `antseed browse` command on the Commander program.
18
+ * Register the `antseed network browse` command on the Commander program.
19
19
  * Discovers peers on the network and displays available services, prices, and reputation.
20
20
  */
21
- export function registerBrowseCommand(program) {
22
- program
21
+ export function registerNetworkBrowseCommand(networkCmd) {
22
+ networkCmd
23
23
  .command('browse')
24
24
  .description('Browse available services, prices, and reputation on the P2P network')
25
25
  .option('-s, --service <service>', 'filter by service name')
26
26
  .option('--json', 'output as JSON', false)
27
27
  .action(async (options) => {
28
- const globalOpts = getGlobalOptions(program);
28
+ const globalOpts = getGlobalOptions(networkCmd);
29
29
  const config = await loadConfig(globalOpts.config);
30
30
  const bootstrapNodes = config.network.bootstrapNodes.length > 0
31
31
  ? toBootstrapConfig(parseBootstrapList(config.network.bootstrapNodes))
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../../src/cli/commands/network/browse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerNetworkCommands(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/network/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAO9D"}
@@ -0,0 +1,10 @@
1
+ import { registerNetworkBrowseCommand } from './browse.js';
2
+ import { registerNetworkBootstrapCommand } from './bootstrap.js';
3
+ export function registerNetworkCommands(program) {
4
+ const networkCmd = program
5
+ .command('network')
6
+ .description('Network discovery and infrastructure');
7
+ registerNetworkBrowseCommand(networkCmd);
8
+ registerNetworkBootstrapCommand(networkCmd);
9
+ }
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/network/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sCAAsC,CAAC,CAAC;IAEvD,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACzC,+BAA+B,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerSellerEmissionsCommand(sellerCmd: Command): void;
3
+ //# sourceMappingURL=emissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emissions.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/emissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAqFvE"}
@@ -1,10 +1,10 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import { getGlobalOptions } from './types.js';
4
- import { loadConfig } from '../../config/loader.js';
5
- import { createEmissionsClient, loadCryptoContext, formatAnts, } from '../payment-utils.js';
6
- export function registerEmissionsCommand(program) {
7
- const emissions = program
3
+ import { getGlobalOptions } from '../types.js';
4
+ import { loadConfig } from '../../../config/loader.js';
5
+ import { createEmissionsClient, loadCryptoContext, formatAnts, } from '../../payment-utils.js';
6
+ export function registerSellerEmissionsCommand(sellerCmd) {
7
+ const emissions = sellerCmd
8
8
  .command('emissions')
9
9
  .description('View epoch info and pending ANTS emissions');
10
10
  emissions
@@ -12,7 +12,7 @@ export function registerEmissionsCommand(program) {
12
12
  .description('Show current epoch info and pending emissions')
13
13
  .option('--json', 'output as JSON', false)
14
14
  .action(async (options) => {
15
- const globalOpts = getGlobalOptions(program);
15
+ const globalOpts = getGlobalOptions(sellerCmd);
16
16
  const config = await loadConfig(globalOpts.config);
17
17
  const { address } = await loadCryptoContext(globalOpts.dataDir);
18
18
  const emissionsClient = createEmissionsClient(config);
@@ -51,7 +51,7 @@ export function registerEmissionsCommand(program) {
51
51
  .command('claim')
52
52
  .description('Claim pending ANTS emissions')
53
53
  .action(async () => {
54
- const globalOpts = getGlobalOptions(program);
54
+ const globalOpts = getGlobalOptions(sellerCmd);
55
55
  const config = await loadConfig(globalOpts.config);
56
56
  const { wallet, address } = await loadCryptoContext(globalOpts.dataDir);
57
57
  const emissionsClient = createEmissionsClient(config);