@antseed/cli 0.1.81 → 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 (233) 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/package.json +8 -8
  147. package/dist/cli/commands/balance.d.ts +0 -3
  148. package/dist/cli/commands/balance.d.ts.map +0 -1
  149. package/dist/cli/commands/balance.js.map +0 -1
  150. package/dist/cli/commands/bootstrap.d.ts +0 -3
  151. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  152. package/dist/cli/commands/bootstrap.js.map +0 -1
  153. package/dist/cli/commands/browse.d.ts +0 -7
  154. package/dist/cli/commands/browse.d.ts.map +0 -1
  155. package/dist/cli/commands/browse.js.map +0 -1
  156. package/dist/cli/commands/channels.d.ts +0 -3
  157. package/dist/cli/commands/channels.d.ts.map +0 -1
  158. package/dist/cli/commands/channels.js.map +0 -1
  159. package/dist/cli/commands/config.d.ts.map +0 -1
  160. package/dist/cli/commands/config.js +0 -239
  161. package/dist/cli/commands/config.js.map +0 -1
  162. package/dist/cli/commands/connect.d.ts.map +0 -1
  163. package/dist/cli/commands/connect.js.map +0 -1
  164. package/dist/cli/commands/connect.test.d.ts +0 -2
  165. package/dist/cli/commands/connect.test.d.ts.map +0 -1
  166. package/dist/cli/commands/connect.test.js.map +0 -1
  167. package/dist/cli/commands/connection.d.ts +0 -3
  168. package/dist/cli/commands/connection.d.ts.map +0 -1
  169. package/dist/cli/commands/connection.js.map +0 -1
  170. package/dist/cli/commands/deposit.d.ts +0 -3
  171. package/dist/cli/commands/deposit.d.ts.map +0 -1
  172. package/dist/cli/commands/deposit.js.map +0 -1
  173. package/dist/cli/commands/emissions.d.ts +0 -3
  174. package/dist/cli/commands/emissions.d.ts.map +0 -1
  175. package/dist/cli/commands/emissions.js.map +0 -1
  176. package/dist/cli/commands/init.d.ts +0 -3
  177. package/dist/cli/commands/init.d.ts.map +0 -1
  178. package/dist/cli/commands/init.js +0 -90
  179. package/dist/cli/commands/init.js.map +0 -1
  180. package/dist/cli/commands/metering.d.ts +0 -3
  181. package/dist/cli/commands/metering.d.ts.map +0 -1
  182. package/dist/cli/commands/metering.js.map +0 -1
  183. package/dist/cli/commands/metering.test.d.ts.map +0 -1
  184. package/dist/cli/commands/metering.test.js.map +0 -1
  185. package/dist/cli/commands/plugin-create.d.ts +0 -11
  186. package/dist/cli/commands/plugin-create.d.ts.map +0 -1
  187. package/dist/cli/commands/plugin-create.js +0 -201
  188. package/dist/cli/commands/plugin-create.js.map +0 -1
  189. package/dist/cli/commands/plugin-create.test.d.ts +0 -2
  190. package/dist/cli/commands/plugin-create.test.d.ts.map +0 -1
  191. package/dist/cli/commands/plugin-create.test.js +0 -53
  192. package/dist/cli/commands/plugin-create.test.js.map +0 -1
  193. package/dist/cli/commands/plugin.d.ts +0 -3
  194. package/dist/cli/commands/plugin.d.ts.map +0 -1
  195. package/dist/cli/commands/plugin.js +0 -279
  196. package/dist/cli/commands/plugin.js.map +0 -1
  197. package/dist/cli/commands/plugin.test.d.ts +0 -2
  198. package/dist/cli/commands/plugin.test.d.ts.map +0 -1
  199. package/dist/cli/commands/plugin.test.js +0 -54
  200. package/dist/cli/commands/plugin.test.js.map +0 -1
  201. package/dist/cli/commands/profile.d.ts.map +0 -1
  202. package/dist/cli/commands/profile.js.map +0 -1
  203. package/dist/cli/commands/register.d.ts +0 -3
  204. package/dist/cli/commands/register.d.ts.map +0 -1
  205. package/dist/cli/commands/register.js.map +0 -1
  206. package/dist/cli/commands/seed.d.ts +0 -14
  207. package/dist/cli/commands/seed.d.ts.map +0 -1
  208. package/dist/cli/commands/seed.js.map +0 -1
  209. package/dist/cli/commands/seed.test.d.ts +0 -2
  210. package/dist/cli/commands/seed.test.d.ts.map +0 -1
  211. package/dist/cli/commands/seed.test.js +0 -92
  212. package/dist/cli/commands/seed.test.js.map +0 -1
  213. package/dist/cli/commands/setup.d.ts +0 -3
  214. package/dist/cli/commands/setup.d.ts.map +0 -1
  215. package/dist/cli/commands/setup.js +0 -84
  216. package/dist/cli/commands/setup.js.map +0 -1
  217. package/dist/cli/commands/stake.d.ts +0 -3
  218. package/dist/cli/commands/stake.d.ts.map +0 -1
  219. package/dist/cli/commands/stake.js.map +0 -1
  220. package/dist/cli/commands/status.d.ts +0 -8
  221. package/dist/cli/commands/status.d.ts.map +0 -1
  222. package/dist/cli/commands/status.js +0 -55
  223. package/dist/cli/commands/status.js.map +0 -1
  224. package/dist/cli/commands/subscribe.d.ts +0 -3
  225. package/dist/cli/commands/subscribe.d.ts.map +0 -1
  226. package/dist/cli/commands/subscribe.js.map +0 -1
  227. package/dist/cli/commands/withdraw.d.ts +0 -3
  228. package/dist/cli/commands/withdraw.d.ts.map +0 -1
  229. package/dist/cli/commands/withdraw.js.map +0 -1
  230. /package/dist/cli/commands/{metering.test.d.ts → buyer/metering.test.d.ts} +0 -0
  231. /package/dist/cli/commands/{metering.test.js → buyer/metering.test.js} +0 -0
  232. /package/dist/cli/commands/{profile.d.ts → identity/profile.d.ts} +0 -0
  233. /package/dist/cli/commands/{profile.js → identity/profile.js} +0 -0
@@ -0,0 +1,212 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { createDefaultConfig } from '../../../config/defaults.js';
4
+ import { resolveEffectiveSellerConfig } from '../../../config/effective.js';
5
+ import { assertSellerPrerequisites, buildSellerRuntimeOverridesFromFlags, buildSellerPluginRuntimeEnv, mergeSellerRuntimeEnv, selectSellerProviderNames, } from './start.js';
6
+ test('seller start runtime overrides are runtime-only and win over env/config', () => {
7
+ const config = createDefaultConfig();
8
+ config.seller.reserveFloor = 11;
9
+ config.seller.providers = {
10
+ anthropic: {
11
+ plugin: 'anthropic',
12
+ defaults: { inputUsdPerMillion: 12, outputUsdPerMillion: 18 },
13
+ services: {},
14
+ },
15
+ };
16
+ const beforeResolution = JSON.parse(JSON.stringify(config));
17
+ const env = {
18
+ ANTSEED_SELLER_INPUT_USD_PER_MILLION: '20',
19
+ };
20
+ const overrides = buildSellerRuntimeOverridesFromFlags({
21
+ reserve: 33,
22
+ inputUsdPerMillion: 44,
23
+ outputUsdPerMillion: 55,
24
+ });
25
+ const effective = resolveEffectiveSellerConfig({
26
+ config,
27
+ env,
28
+ sellerOverrides: overrides,
29
+ });
30
+ assert.equal(effective.reserveFloor, 33);
31
+ assert.equal(effective.providers.anthropic?.defaults?.inputUsdPerMillion, 44);
32
+ assert.equal(effective.providers.anthropic?.defaults?.outputUsdPerMillion, 55);
33
+ assert.deepEqual(config, beforeResolution);
34
+ });
35
+ test('buildSellerPluginRuntimeEnv translates unified config into flat ANTSEED_* keys', () => {
36
+ const config = createDefaultConfig();
37
+ config.seller.maxConcurrentBuyers = 17;
38
+ config.seller.providers = {
39
+ anthropic: {
40
+ plugin: 'anthropic',
41
+ defaults: {
42
+ inputUsdPerMillion: 15,
43
+ outputUsdPerMillion: 35,
44
+ cachedInputUsdPerMillion: 1.5,
45
+ },
46
+ services: {
47
+ 'claude-sonnet-4-5-20250929': {
48
+ upstreamModel: 'claude-sonnet-4-5-20250929',
49
+ categories: ['coding', 'chat'],
50
+ pricing: {
51
+ inputUsdPerMillion: 18,
52
+ outputUsdPerMillion: 42,
53
+ },
54
+ },
55
+ 'claude-opus-4-5': {
56
+ upstreamModel: 'anthropic/claude-opus-4-5-20251117',
57
+ categories: ['reasoning'],
58
+ },
59
+ },
60
+ },
61
+ };
62
+ const runtimeEnv = buildSellerPluginRuntimeEnv(config.seller, 'anthropic');
63
+ assert.equal(runtimeEnv['ANTSEED_INPUT_USD_PER_MILLION'], '15');
64
+ assert.equal(runtimeEnv['ANTSEED_OUTPUT_USD_PER_MILLION'], '35');
65
+ assert.equal(runtimeEnv['ANTSEED_CACHED_INPUT_USD_PER_MILLION'], '1.5');
66
+ assert.equal(runtimeEnv['ANTSEED_MAX_CONCURRENCY'], '17');
67
+ // ANTSEED_ALLOWED_SERVICES is derived from the services map keys.
68
+ const allowed = (runtimeEnv['ANTSEED_ALLOWED_SERVICES'] ?? '').split(',').sort();
69
+ assert.deepEqual(allowed, ['claude-opus-4-5', 'claude-sonnet-4-5-20250929']);
70
+ const services = JSON.parse(runtimeEnv['ANTSEED_SERVICE_PRICING_JSON'] ?? '{}');
71
+ assert.equal(services['claude-sonnet-4-5-20250929']?.inputUsdPerMillion, 18);
72
+ assert.equal(services['claude-sonnet-4-5-20250929']?.outputUsdPerMillion, 42);
73
+ assert.equal(services['claude-opus-4-5'], undefined);
74
+ // Categories are intentionally NOT emitted as an env var — plugins don't
75
+ // read them from env. The CLI writes them directly onto
76
+ // `provider.serviceCategories` inside the seed action.
77
+ assert.equal(runtimeEnv['ANTSEED_SERVICE_CATEGORIES_JSON'], undefined);
78
+ const aliases = JSON.parse(runtimeEnv['ANTSEED_SERVICE_ALIAS_MAP_JSON'] ?? '{}');
79
+ assert.equal(aliases['claude-opus-4-5'], 'anthropic/claude-opus-4-5-20251117');
80
+ // When upstream == serviceId, no alias entry is emitted.
81
+ assert.equal(aliases['claude-sonnet-4-5-20250929'], undefined);
82
+ });
83
+ test('buildSellerPluginRuntimeEnv returns bare env when no provider is configured', () => {
84
+ const config = createDefaultConfig();
85
+ config.seller.maxConcurrentBuyers = 7;
86
+ const runtimeEnv = buildSellerPluginRuntimeEnv(config.seller, 'openai');
87
+ assert.equal(runtimeEnv['ANTSEED_INPUT_USD_PER_MILLION'], undefined);
88
+ assert.equal(runtimeEnv['ANTSEED_OUTPUT_USD_PER_MILLION'], undefined);
89
+ assert.equal(runtimeEnv['ANTSEED_ALLOWED_SERVICES'], undefined);
90
+ assert.equal(runtimeEnv['ANTSEED_MAX_CONCURRENCY'], '7');
91
+ });
92
+ test('buildSellerPluginRuntimeEnv sets OPENAI_BASE_URL from provider baseUrl', () => {
93
+ const config = createDefaultConfig();
94
+ config.seller.providers = {
95
+ openai: {
96
+ plugin: 'openai',
97
+ baseUrl: 'https://api.together.ai',
98
+ services: {
99
+ 'qwen3.5-9b': {},
100
+ },
101
+ },
102
+ };
103
+ const runtimeEnv = buildSellerPluginRuntimeEnv(config.seller, 'openai');
104
+ assert.equal(runtimeEnv['OPENAI_BASE_URL'], 'https://api.together.ai');
105
+ });
106
+ test('assertSellerPrerequisites fails when no services are configured', async () => {
107
+ const config = createDefaultConfig();
108
+ const seller = config.seller;
109
+ await assert.rejects(async () => assertSellerPrerequisites({
110
+ dataDir: '/tmp/no-identity-here',
111
+ config,
112
+ effectiveSeller: seller,
113
+ providerNames: ['anthropic'],
114
+ paymentsEnabled: false,
115
+ runtimePricingOverride: false,
116
+ skipChainChecks: true,
117
+ }), /seller prerequisites not met/);
118
+ });
119
+ test('assertSellerPrerequisites fails when pricing override has no providers to apply to', async () => {
120
+ const config = createDefaultConfig();
121
+ const seller = config.seller;
122
+ await assert.rejects(async () => assertSellerPrerequisites({
123
+ dataDir: '/tmp/no-identity-here',
124
+ config,
125
+ effectiveSeller: seller,
126
+ providerNames: ['anthropic'],
127
+ paymentsEnabled: false,
128
+ runtimePricingOverride: true,
129
+ skipChainChecks: true,
130
+ }), /seller prerequisites not met/);
131
+ });
132
+ test('assertSellerPrerequisites passes when services are configured and chain checks are skipped', async () => {
133
+ const config = createDefaultConfig();
134
+ config.seller.providers = {
135
+ anthropic: {
136
+ plugin: 'anthropic',
137
+ defaults: { inputUsdPerMillion: 3, outputUsdPerMillion: 15 },
138
+ services: {
139
+ 'claude-sonnet-4-5-20250929': {
140
+ pricing: { inputUsdPerMillion: 3, outputUsdPerMillion: 15 },
141
+ },
142
+ },
143
+ },
144
+ };
145
+ await assertSellerPrerequisites({
146
+ dataDir: '/tmp/no-identity-here',
147
+ config,
148
+ effectiveSeller: config.seller,
149
+ providerNames: ['anthropic'],
150
+ paymentsEnabled: false,
151
+ runtimePricingOverride: false,
152
+ skipChainChecks: true,
153
+ });
154
+ });
155
+ test('assertSellerPrerequisites fails when any selected provider has no services', async () => {
156
+ const config = createDefaultConfig();
157
+ config.seller.providers = {
158
+ anthropic: {
159
+ plugin: 'anthropic',
160
+ services: {
161
+ 'claude-sonnet-4-5-20250929': {},
162
+ },
163
+ },
164
+ together: {
165
+ plugin: 'openai',
166
+ services: {},
167
+ },
168
+ };
169
+ await assert.rejects(async () => assertSellerPrerequisites({
170
+ dataDir: '/tmp/no-identity-here',
171
+ config,
172
+ effectiveSeller: config.seller,
173
+ providerNames: ['anthropic', 'together'],
174
+ paymentsEnabled: false,
175
+ runtimePricingOverride: false,
176
+ skipChainChecks: true,
177
+ }), /seller prerequisites not met/);
178
+ });
179
+ test('seller start merge keeps explicit pricing when runtime env also contains pricing and force override is off', () => {
180
+ const merged = mergeSellerRuntimeEnv({
181
+ ANTSEED_INPUT_USD_PER_MILLION: '0.05',
182
+ ANTSEED_OUTPUT_USD_PER_MILLION: '0.1',
183
+ }, {
184
+ ANTSEED_INPUT_USD_PER_MILLION: '3',
185
+ ANTSEED_OUTPUT_USD_PER_MILLION: '15',
186
+ ANTSEED_MAX_CONCURRENCY: '10',
187
+ });
188
+ assert.equal(merged['ANTSEED_INPUT_USD_PER_MILLION'], '0.05');
189
+ assert.equal(merged['ANTSEED_OUTPUT_USD_PER_MILLION'], '0.1');
190
+ assert.equal(merged['ANTSEED_MAX_CONCURRENCY'], '10');
191
+ });
192
+ test('selectSellerProviderNames defaults to all configured providers', () => {
193
+ const config = createDefaultConfig();
194
+ config.seller.providers = {
195
+ anthropic: { plugin: 'anthropic', services: {} },
196
+ together: { plugin: 'openai', services: {} },
197
+ };
198
+ const selection = selectSellerProviderNames(config.seller);
199
+ assert.deepEqual(selection.selected, ['anthropic', 'together']);
200
+ assert.deepEqual(selection.unknown, []);
201
+ });
202
+ test('selectSellerProviderNames parses comma-separated provider filters and reports unknown names', () => {
203
+ const config = createDefaultConfig();
204
+ config.seller.providers = {
205
+ anthropic: { plugin: 'anthropic', services: {} },
206
+ together: { plugin: 'openai', services: {} },
207
+ };
208
+ const selection = selectSellerProviderNames(config.seller, 'together, missing');
209
+ assert.deepEqual(selection.selected, ['together', 'missing']);
210
+ assert.deepEqual(selection.unknown, ['missing']);
211
+ });
212
+ //# sourceMappingURL=start.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/seller/start.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerSellerStatusCommand(sellerCmd: Command): void;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/seller/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA4EpE"}
@@ -0,0 +1,72 @@
1
+ import chalk from 'chalk';
2
+ import Table from 'cli-table3';
3
+ import { getGlobalOptions } from '../types.js';
4
+ import { loadConfig } from '../../../config/loader.js';
5
+ import { resolveEffectiveSellerConfig } from '../../../config/effective.js';
6
+ import { getNodeStatus } from '../../../status/node-status.js';
7
+ import { formatEarnings, formatTokens } from '../../formatters.js';
8
+ export function registerSellerStatusCommand(sellerCmd) {
9
+ sellerCmd
10
+ .command('status')
11
+ .description('Show seller node status and readiness')
12
+ .option('--json', 'output as JSON', false)
13
+ .action(async (options) => {
14
+ try {
15
+ const globalOpts = getGlobalOptions(sellerCmd);
16
+ const config = await loadConfig(globalOpts.config);
17
+ const effectiveSeller = resolveEffectiveSellerConfig({ config });
18
+ const status = await getNodeStatus(config);
19
+ const providerSummary = Object.entries(effectiveSeller.providers).map(([name, cfg]) => {
20
+ const defaults = cfg.defaults;
21
+ const serviceCount = Object.keys(cfg.services).length;
22
+ const priceLabel = defaults
23
+ ? `${defaults.inputUsdPerMillion}/${defaults.outputUsdPerMillion}`
24
+ : 'per-service';
25
+ return {
26
+ name,
27
+ services: serviceCount,
28
+ pricing: priceLabel,
29
+ plugin: cfg.plugin,
30
+ };
31
+ });
32
+ if (options.json) {
33
+ console.log(JSON.stringify({
34
+ state: status.state,
35
+ peerCount: status.peerCount,
36
+ earningsToday: status.earningsToday,
37
+ tokensToday: status.tokensToday,
38
+ activeChannels: status.activeChannels,
39
+ uptime: status.uptime,
40
+ walletAddress: status.walletAddress,
41
+ providers: providerSummary,
42
+ }, null, 2));
43
+ return;
44
+ }
45
+ const stateColors = {
46
+ seeding: chalk.green,
47
+ connected: chalk.cyan,
48
+ idle: chalk.gray,
49
+ };
50
+ const colorFn = stateColors[status.state] ?? chalk.white;
51
+ console.log(chalk.bold('Seller Status: ') + colorFn(status.state.toUpperCase()));
52
+ console.log('');
53
+ const table = new Table({
54
+ head: [chalk.bold('Metric'), chalk.bold('Value')],
55
+ colWidths: [25, 55],
56
+ });
57
+ table.push(['Peers connected', chalk.cyan(String(status.peerCount))], ['Earnings today', chalk.green(formatEarnings(status.earningsToday))], ['Tokens today', formatTokens(status.tokensToday)], ['Active channels', String(status.activeChannels)], ['Uptime', status.uptime], ['Wallet address', status.walletAddress ?? chalk.dim('not configured')]);
58
+ table.push([
59
+ 'Configured providers',
60
+ providerSummary.length > 0
61
+ ? providerSummary.map((provider) => `${provider.name} (${provider.plugin}): ${provider.services} service(s), defaults ${provider.pricing}`).join('\n')
62
+ : chalk.dim('(none)'),
63
+ ]);
64
+ console.log(table.toString());
65
+ }
66
+ catch (err) {
67
+ console.error(chalk.red(`Error: ${err.message}`));
68
+ process.exitCode = 1;
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cli/commands/seller/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE3D,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAyBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAqBhE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE3D,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAyBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAuBhE"}
@@ -25,7 +25,9 @@ function isTruthyEnv(value) {
25
25
  * Extract global options from the Commander program instance.
26
26
  */
27
27
  export function getGlobalOptions(program) {
28
- const opts = program.opts();
28
+ const opts = typeof program.optsWithGlobals === 'function'
29
+ ? program.optsWithGlobals()
30
+ : program.opts();
29
31
  const verbose = opts['verbose'] ?? false;
30
32
  if (verbose || isTruthyEnv(process.env['ANTSEED_DEBUG'])) {
31
33
  process.env['ANTSEED_DEBUG'] = '1';
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAY1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAE1D,SAAS,mBAAmB,CAAC,QAAgB,EAAE,oBAA4B;IACzE,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC;AACpG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACzC,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,wBAAwB,EAC3E,eAAe,CAChB,CAAC;IACF,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,YAAY,EAClE,YAAY,CACb,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,gBAAgB;QACzB,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAY1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAE1D,SAAS,mBAAmB,CAAC,QAAgB,EAAE,oBAA4B;IACzE,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC;AACpG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU;QACxD,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE;QAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACzC,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,wBAAwB,EAC3E,eAAe,CAChB,CAAC;IACF,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,YAAY,EAClE,YAAY,CACb,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,gBAAgB;QACzB,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { Command } from 'commander';
4
+ import { getGlobalOptions } from './types.js';
5
+ test('getGlobalOptions reads root options from a nested subcommand', () => {
6
+ const program = new Command();
7
+ program
8
+ .option('-c, --config <path>')
9
+ .option('--data-dir <path>')
10
+ .option('-v, --verbose');
11
+ const sellerCmd = program.command('seller');
12
+ const startCmd = sellerCmd.command('start');
13
+ program.parse(['--config', '/tmp/custom-config.json', '--data-dir', '/tmp/custom-data', '--verbose', 'seller', 'start'], {
14
+ from: 'user',
15
+ });
16
+ const options = getGlobalOptions(startCmd);
17
+ assert.equal(options.config, '/tmp/custom-config.json');
18
+ assert.equal(options.dataDir, '/tmp/custom-data');
19
+ assert.equal(options.verbose, true);
20
+ });
21
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../src/cli/commands/types.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,eAAe,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,yBAAyB,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;QACvH,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,30 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
3
  import { loadEnvFromFiles } from '../env/load-env.js';
4
- import { registerSeedCommand } from './commands/seed.js';
5
- import { registerConnectCommand } from './commands/connect.js';
6
- import { registerStatusCommand } from './commands/status.js';
7
- import { registerConfigCommand } from './commands/config.js';
4
+ import { registerSellerCommands } from './commands/seller/index.js';
5
+ import { registerBuyerCommands } from './commands/buyer/index.js';
6
+ import { registerConfigCommand } from './commands/config/index.js';
7
+ import { registerNetworkCommands } from './commands/network/index.js';
8
+ import { registerIdentityCommands } from './commands/identity/index.js';
9
+ import { registerAgentCommand } from './commands/agent.js';
8
10
  import { registerDashboardCommand } from './commands/dashboard.js';
9
11
  import { registerDevCommand } from './commands/dev.js';
10
- import { registerBrowseCommand } from './commands/browse.js';
11
- import { registerInitCommand } from './commands/init.js';
12
- import { registerPluginCommand } from './commands/plugin.js';
13
- import { registerProfileCommand, registerPeerCommand } from './commands/profile.js';
14
- import { registerDepositCommand } from './commands/deposit.js';
15
- import { registerWithdrawCommand } from './commands/withdraw.js';
16
- import { registerBalanceCommand } from './commands/balance.js';
17
- import { registerBootstrapCommand } from './commands/bootstrap.js';
18
- import { registerConnectionCommand } from './commands/connection.js';
19
- import { registerAgentCommand } from './commands/agent.js';
20
- import { registerSetupCommand } from './commands/setup.js';
21
- import { registerRegisterCommand } from './commands/register.js';
22
- import { registerStakeCommand } from './commands/stake.js';
23
- import { registerEmissionsCommand } from './commands/emissions.js';
24
- import { registerChannelsCommand } from './commands/channels.js';
25
- import { registerSubscribeCommand } from './commands/subscribe.js';
26
12
  import { registerPaymentsCommand } from './commands/payments.js';
27
- import { registerMeteringCommand } from './commands/metering.js';
28
13
  loadEnvFromFiles();
29
14
  import pkg from '../../package.json' with { type: 'json' };
30
15
  const version = pkg.version;
@@ -36,30 +21,14 @@ program
36
21
  .option('-c, --config <path>', 'path to config file (env: ANTSEED_CONFIG, default: ~/.antseed/config.json)')
37
22
  .option('--data-dir <path>', 'path to node identity/state directory (env: ANTSEED_DATA_DIR, default: ~/.antseed)')
38
23
  .option('-v, --verbose', 'enable verbose logging', false);
39
- registerSeedCommand(program);
40
- registerConnectCommand(program);
41
- registerStatusCommand(program);
24
+ registerSellerCommands(program);
25
+ registerBuyerCommands(program);
42
26
  registerConfigCommand(program);
43
- registerDashboardCommand(program);
27
+ registerNetworkCommands(program);
28
+ registerIdentityCommands(program);
44
29
  registerDevCommand(program);
45
- registerBrowseCommand(program);
46
- registerInitCommand(program);
47
- registerPluginCommand(program);
48
- registerProfileCommand(program);
49
- registerPeerCommand(program);
50
- registerDepositCommand(program);
51
- registerWithdrawCommand(program);
52
- registerBalanceCommand(program);
53
- registerBootstrapCommand(program);
54
- registerConnectionCommand(program);
55
30
  registerAgentCommand(program);
56
- registerSetupCommand(program);
57
- registerRegisterCommand(program);
58
- registerStakeCommand(program);
59
- registerEmissionsCommand(program);
60
- registerChannelsCommand(program);
61
- registerSubscribeCommand(program);
31
+ registerDashboardCommand(program);
62
32
  registerPaymentsCommand(program);
63
- registerMeteringCommand(program);
64
33
  program.parse(process.argv);
65
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,gBAAgB,EAAE,CAAC;AAEnB,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAE5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,qBAAqB,EAAE,4EAA4E,CAAC;KAC3G,MAAM,CAAC,mBAAmB,EAAE,oFAAoF,CAAC;KACjH,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAE5D,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -39,7 +39,7 @@ export async function loadCryptoContext(dataDir) {
39
39
  export function requireCryptoConfig(config) {
40
40
  const crypto = config.payments?.crypto;
41
41
  if (!crypto) {
42
- throw new Error('No crypto payment configuration found. Configure payments.crypto in your config file or run: antseed init');
42
+ throw new Error('No crypto payment configuration found. Configure payments.crypto in your config file.');
43
43
  }
44
44
  // Merge with chain-config defaults so commands work with just chainId
45
45
  const resolved = resolveChainConfig(crypto);
@@ -1 +1 @@
1
- {"version":3,"file":"payment-utils.js","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment-utils.js","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,wBAAwB,CAAC;AAGhC,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,MAAM,KAAK,GAAG,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;IACxF,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,MAAM,KAAK,GAAG,SAAS,GAAG,QAAU,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,GAAG,QAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAC3E,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;AACrD,CAAC;AAQD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;IACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;IAC3G,CAAC;IACD,sEAAsE;IACtE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;QACxC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB;QAC/E,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,IAAI,QAAQ,CAAC,uBAAuB;QAC3F,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,IAAI,QAAQ,CAAC,uBAAuB;QAC3F,sBAAsB,EAAE,MAAM,CAAC,sBAAsB,IAAI,QAAQ,CAAC,sBAAsB;QACxF,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,QAAQ,CAAC,wBAAwB;QAC9F,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,IAAI,QAAQ,CAAC,uBAAuB;KAC5F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAI,cAAc,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,uBAAuB;QAC/C,WAAW,EAAE,MAAM,CAAC,mBAAmB;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAI,cAAc,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,uBAAuB;KAChD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,IAAI,cAAc,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,uBAAuB;KAChD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;IAC7H,CAAC;IACD,OAAO,IAAI,aAAa,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,sBAAsB;QAC9C,WAAW,EAAE,MAAM,CAAC,mBAAmB;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;IACjI,CAAC;IACD,OAAO,IAAI,eAAe,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,wBAAwB;KACjD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,IAAI,aAAa,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,sBAAsB;QAC9C,WAAW,EAAE,MAAM,CAAC,mBAAmB;KACxC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAoCnD"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA6BnD"}
@@ -6,17 +6,10 @@ export function createDefaultConfig() {
6
6
  identity: {
7
7
  displayName: 'Antseed Node',
8
8
  },
9
- providers: [],
10
9
  seller: {
11
10
  reserveFloor: 10,
12
11
  maxConcurrentBuyers: 5,
13
- enabledProviders: [],
14
- pricing: {
15
- defaults: {
16
- inputUsdPerMillion: 10,
17
- outputUsdPerMillion: 10,
18
- },
19
- },
12
+ providers: {},
20
13
  publicAddress: '',
21
14
  },
22
15
  buyer: {
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,QAAQ,EAAE;YACR,WAAW,EAAE,cAAc;SAC5B;QACD,SAAS,EAAE,EAAE;QACb,MAAM,EAAE;YACN,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,CAAC;YACtB,gBAAgB,EAAE,EAAE;YACpB,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,kBAAkB,EAAE,EAAE;oBACtB,mBAAmB,EAAE,EAAE;iBACxB;aACF;YACD,aAAa,EAAE,EAAE;SAClB;QACD,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,kBAAkB,EAAE,GAAG;oBACvB,mBAAmB,EAAE,GAAG;iBACzB;aACF;YACD,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,QAAQ,EAAE;YACR,WAAW,EAAE,cAAc;SAC5B;QACD,MAAM,EAAE;YACN,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,CAAC;YACtB,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;SAClB;QACD,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,kBAAkB,EAAE,GAAG;oBACvB,mBAAmB,EAAE,GAAG;iBACzB;aACF;YACD,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,IAAI;SAChB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,QAAQ;YACzB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"effective.d.ts","sourceRoot":"","sources":["../../src/config/effective.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjF,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AASD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,2BAA2B,GAAG,eAAe,CA0BhG;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,2BAA2B,GAAG,cAAc,CAiC9F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,2BAA2B,GAAG;IAC9E,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,cAAc,CAAC;CACvB,CAKA"}
1
+ {"version":3,"file":"effective.d.ts","sourceRoot":"","sources":["../../src/config/effective.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjF,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAmCD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,2BAA2B,GAAG,eAAe,CA0BhG;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,2BAA2B,GAAG,cAAc,CAiC9F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,2BAA2B,GAAG;IAC9E,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,cAAc,CAAC;CACvB,CAKA"}
@@ -5,26 +5,45 @@ function parseEnvNumber(env, key) {
5
5
  const parsed = Number(raw);
6
6
  return Number.isFinite(parsed) ? parsed : undefined;
7
7
  }
8
+ /**
9
+ * Apply a global seller-wide pricing override to every configured provider's
10
+ * defaults. Service-specific pricing entries are left alone — the override
11
+ * only shifts the fallback price floor.
12
+ */
13
+ function applyProviderPricingOverride(seller, field, value) {
14
+ const providers = Object.values(seller.providers);
15
+ if (providers.length === 0) {
16
+ console.warn(`Warning: ${field} override (${value}) has no effect — no providers configured yet. ` +
17
+ `Add a provider first via 'antseed config seller add-provider'.`);
18
+ return;
19
+ }
20
+ for (const providerCfg of providers) {
21
+ if (!providerCfg.defaults) {
22
+ providerCfg.defaults = { inputUsdPerMillion: 0, outputUsdPerMillion: 0 };
23
+ }
24
+ providerCfg.defaults[field] = value;
25
+ }
26
+ }
8
27
  export function resolveEffectiveSellerConfig(input) {
9
28
  const env = input.env ?? process.env;
10
29
  const seller = structuredClone(input.config.seller);
11
30
  const envInputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_SELLER_INPUT_USD_PER_MILLION');
12
31
  const envOutputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_SELLER_OUTPUT_USD_PER_MILLION');
13
32
  if (envInputUsdPerMillion !== undefined) {
14
- seller.pricing.defaults.inputUsdPerMillion = envInputUsdPerMillion;
33
+ applyProviderPricingOverride(seller, 'inputUsdPerMillion', envInputUsdPerMillion);
15
34
  }
16
35
  if (envOutputUsdPerMillion !== undefined) {
17
- seller.pricing.defaults.outputUsdPerMillion = envOutputUsdPerMillion;
36
+ applyProviderPricingOverride(seller, 'outputUsdPerMillion', envOutputUsdPerMillion);
18
37
  }
19
38
  const overrides = input.sellerOverrides;
20
39
  if (overrides?.reserveFloor !== undefined) {
21
40
  seller.reserveFloor = overrides.reserveFloor;
22
41
  }
23
42
  if (overrides?.inputUsdPerMillion !== undefined) {
24
- seller.pricing.defaults.inputUsdPerMillion = overrides.inputUsdPerMillion;
43
+ applyProviderPricingOverride(seller, 'inputUsdPerMillion', overrides.inputUsdPerMillion);
25
44
  }
26
45
  if (overrides?.outputUsdPerMillion !== undefined) {
27
- seller.pricing.defaults.outputUsdPerMillion = overrides.outputUsdPerMillion;
46
+ applyProviderPricingOverride(seller, 'outputUsdPerMillion', overrides.outputUsdPerMillion);
28
47
  }
29
48
  return seller;
30
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"effective.js","sourceRoot":"","sources":["../../src/config/effective.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effective.js","sourceRoot":"","sources":["../../src/config/effective.ts"],"names":[],"mappings":"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"}