@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
@@ -1,6 +1,6 @@
1
1
  import type { Command } from 'commander';
2
- import { type BuyerRuntimeOverrides } from '../../config/effective.js';
3
- import type { BuyerCLIConfig } from '../../config/types.js';
2
+ import { type BuyerRuntimeOverrides } from '../../../config/effective.js';
3
+ import type { BuyerCLIConfig } from '../../../config/types.js';
4
4
  export declare function buildBuyerRuntimeOverridesFromFlags(options: {
5
5
  port?: number;
6
6
  minPeerReputation?: number;
@@ -8,6 +8,9 @@ export declare function buildBuyerRuntimeOverridesFromFlags(options: {
8
8
  maxOutputUsdPerMillion?: number;
9
9
  }): BuyerRuntimeOverrides;
10
10
  export declare function buildRouterRuntimeEnvFromBuyerConfig(buyerConfig: BuyerCLIConfig): Record<string, string>;
11
+ export declare function resolveBuyerRouterName(options: {
12
+ router?: string;
13
+ }): string;
11
14
  export declare function buildBuyerBootstrapEntries(configuredBootstrapNodes: string[] | undefined, localSeederDhtPort?: number): string[];
12
- export declare function registerConnectCommand(program: Command): void;
13
- //# sourceMappingURL=connect.d.ts.map
15
+ export declare function registerBuyerStartCommand(buyerCmd: Command): void;
16
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAexC,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAQ9D,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAOxB;AAED,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE3E;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CAiBV;AA0GD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAsNjE"}
@@ -4,42 +4,39 @@ import { readFile } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
5
  import { homedir } from 'node:os';
6
6
  import { createConnection } from 'node:net';
7
- import { getGlobalOptions } from './types.js';
8
- import { loadConfig } from '../../config/loader.js';
7
+ import { getGlobalOptions } from '../types.js';
8
+ import { loadConfig } from '../../../config/loader.js';
9
9
  import { AntseedNode, DepositsClient, getInstance, resolveChainConfig } from '@antseed/node';
10
10
  import { OFFICIAL_BOOTSTRAP_NODES, parseBootstrapList, toBootstrapConfig } from '@antseed/node/discovery';
11
- import { setupShutdownHandler } from '../shutdown.js';
12
- import { loadRouterPlugin, buildPluginConfig, getPackageVersions } from '../../plugins/loader.js';
13
- import { BuyerProxy } from '../../proxy/buyer-proxy.js';
14
- import { resolveEffectiveBuyerConfig } from '../../config/effective.js';
11
+ import { setupShutdownHandler } from '../../shutdown.js';
12
+ import { loadRouterPlugin, buildPluginConfig, getPackageVersions } from '../../../plugins/loader.js';
13
+ import { BuyerProxy } from '../../../proxy/buyer-proxy.js';
14
+ import { resolveEffectiveBuyerConfig } from '../../../config/effective.js';
15
15
  export function buildBuyerRuntimeOverridesFromFlags(options) {
16
16
  const overrides = {};
17
- if (options.port !== undefined) {
17
+ if (options.port !== undefined)
18
18
  overrides.proxyPort = options.port;
19
- }
20
- if (options.minPeerReputation !== undefined) {
19
+ if (options.minPeerReputation !== undefined)
21
20
  overrides.minPeerReputation = options.minPeerReputation;
22
- }
23
- if (options.maxInputUsdPerMillion !== undefined) {
21
+ if (options.maxInputUsdPerMillion !== undefined)
24
22
  overrides.maxInputUsdPerMillion = options.maxInputUsdPerMillion;
25
- }
26
- if (options.maxOutputUsdPerMillion !== undefined) {
23
+ if (options.maxOutputUsdPerMillion !== undefined)
27
24
  overrides.maxOutputUsdPerMillion = options.maxOutputUsdPerMillion;
28
- }
29
25
  return overrides;
30
26
  }
31
27
  export function buildRouterRuntimeEnvFromBuyerConfig(buyerConfig) {
32
- const runtimeEnv = {
28
+ return {
33
29
  ANTSEED_MIN_REPUTATION: String(buyerConfig.minPeerReputation),
34
30
  ANTSEED_MAX_PRICING_JSON: JSON.stringify(buyerConfig.maxPricing),
35
31
  };
36
- return runtimeEnv;
32
+ }
33
+ export function resolveBuyerRouterName(options) {
34
+ return options.router ?? 'local';
37
35
  }
38
36
  export function buildBuyerBootstrapEntries(configuredBootstrapNodes, localSeederDhtPort) {
39
37
  const configured = Array.isArray(configuredBootstrapNodes)
40
38
  ? configuredBootstrapNodes.filter((entry) => typeof entry === 'string' && entry.trim().length > 0)
41
39
  : [];
42
- // Respect explicit user bootstrap config. If none is provided, keep default public bootstrap nodes.
43
40
  const baseEntries = configured.length > 0
44
41
  ? configured
45
42
  : OFFICIAL_BOOTSTRAP_NODES.map((node) => `${node.host}:${node.port}`);
@@ -105,16 +102,11 @@ async function getLocalSeederInfo() {
105
102
  }
106
103
  }
107
104
  }
108
- catch {
109
- // No state file or unreadable
110
- }
105
+ catch { }
111
106
  return null;
112
107
  }
113
108
  function isAddrInUseError(error) {
114
- if (!(error instanceof Error)) {
115
- return false;
116
- }
117
- return error.message.includes('EADDRINUSE');
109
+ return error instanceof Error && error.message.includes('EADDRINUSE');
118
110
  }
119
111
  async function isPortReachable(port, timeoutMs = 700) {
120
112
  return await new Promise((resolve) => {
@@ -136,38 +128,28 @@ async function isCompatibleBuyerProxy(port, timeoutMs = 1200) {
136
128
  const overallBudgetMs = Math.max(1, timeoutMs);
137
129
  const startedAt = Date.now();
138
130
  const reachabilityTimeoutMs = Math.min(overallBudgetMs, 700);
139
- if (!await isPortReachable(port, reachabilityTimeoutMs)) {
131
+ if (!await isPortReachable(port, reachabilityTimeoutMs))
140
132
  return false;
141
- }
142
133
  const elapsedMs = Date.now() - startedAt;
143
134
  const remainingBudgetMs = overallBudgetMs - elapsedMs;
144
- if (remainingBudgetMs <= 0) {
135
+ if (remainingBudgetMs <= 0)
145
136
  return false;
146
- }
147
137
  const controller = new AbortController();
148
138
  const timeout = setTimeout(() => controller.abort(), remainingBudgetMs);
149
139
  try {
150
140
  const response = await fetch(`http://127.0.0.1:${Math.floor(port)}/v1/models`, {
151
141
  method: 'GET',
152
- headers: {
153
- accept: 'application/json',
154
- },
142
+ headers: { accept: 'application/json' },
155
143
  signal: controller.signal,
156
144
  });
157
- // Antseed proxy usually attaches these telemetry headers when a request reached routing.
158
145
  const antseedHeaderNames = ['x-antseed-request-id', 'x-antseed-peer-id', 'x-antseed-provider'];
159
- if (antseedHeaderNames.some((header) => response.headers.has(header))) {
146
+ if (antseedHeaderNames.some((header) => response.headers.has(header)))
160
147
  return true;
161
- }
162
148
  const body = (await response.text()).toLowerCase();
163
- // Local proxy-generated fallbacks that may not include telemetry headers.
164
- if (body.includes('no sellers available on the network')
149
+ return body.includes('no sellers available on the network')
165
150
  || body.includes('no peers support')
166
151
  || body.includes('p2p request failed')
167
- || body.includes('pinned peer')) {
168
- return true;
169
- }
170
- return false;
152
+ || body.includes('pinned peer');
171
153
  }
172
154
  catch {
173
155
  return false;
@@ -176,9 +158,9 @@ async function isCompatibleBuyerProxy(port, timeoutMs = 1200) {
176
158
  clearTimeout(timeout);
177
159
  }
178
160
  }
179
- export function registerConnectCommand(program) {
180
- program
181
- .command('connect')
161
+ export function registerBuyerStartCommand(buyerCmd) {
162
+ buyerCmd
163
+ .command('start')
182
164
  .description('Start the buyer proxy and connect to sellers on the P2P network')
183
165
  .option('-p, --port <number>', 'local proxy port', (v) => parseInt(v, 10))
184
166
  .option('--router <name>', 'router plugin name or npm package')
@@ -187,7 +169,7 @@ export function registerConnectCommand(program) {
187
169
  .option('--max-output-usd-per-million <number>', 'runtime-only max output pricing override in USD per 1M tokens', parseFloat)
188
170
  .option('--peer <peerId>', 'pin all requests to a specific peer ID (40-char hex EVM address), bypassing the router')
189
171
  .action(async (options) => {
190
- const globalOpts = getGlobalOptions(program);
172
+ const globalOpts = getGlobalOptions(buyerCmd);
191
173
  const config = await loadConfig(globalOpts.config);
192
174
  const pinnedPeerId = options.peer;
193
175
  if (pinnedPeerId !== undefined && !/^(0x)?[0-9a-f]{40}$/i.test(pinnedPeerId)) {
@@ -205,6 +187,7 @@ export function registerConnectCommand(program) {
205
187
  });
206
188
  let router;
207
189
  let toolHints = [];
190
+ const routerName = resolveBuyerRouterName({ router: options.router });
208
191
  if (options.instance) {
209
192
  const configPath = join(homedir(), '.antseed', 'config.json');
210
193
  const instance = await getInstance(configPath, options.instance);
@@ -230,10 +213,10 @@ export function registerConnectCommand(program) {
230
213
  process.exit(1);
231
214
  }
232
215
  }
233
- else if (options.router) {
234
- const spinner = ora(`Loading router plugin "${options.router}"...`).start();
216
+ else {
217
+ const spinner = ora(`Loading router plugin "${routerName}"...`).start();
235
218
  try {
236
- const plugin = await loadRouterPlugin(options.router);
219
+ const plugin = await loadRouterPlugin(routerName);
237
220
  const runtimeEnv = buildRouterRuntimeEnvFromBuyerConfig(effectiveBuyerConfig);
238
221
  const pluginConfig = buildPluginConfig(plugin.configSchema ?? plugin.configKeys ?? [], runtimeEnv);
239
222
  router = await plugin.createRouter(pluginConfig);
@@ -245,21 +228,13 @@ export function registerConnectCommand(program) {
245
228
  process.exit(1);
246
229
  }
247
230
  }
248
- else {
249
- console.error(chalk.red('Error: No router specified.'));
250
- console.error(chalk.dim('Run: antseed connect --router <name> or antseed connect --instance <id>'));
251
- process.exit(1);
252
- }
253
- // Auto-discover local seeder
254
231
  const seederInfo = await getLocalSeederInfo();
255
232
  const allBootstrapEntries = buildBuyerBootstrapEntries(config.network?.bootstrapNodes, seederInfo?.dhtPort);
256
233
  const bootstrapNodes = toBootstrapConfig(parseBootstrapList(allBootstrapEntries));
257
234
  const nodeSpinner = ora('Connecting to P2P network...').start();
258
- // Build payment config — use protocol chain defaults + user overrides
259
235
  let paymentsConfig;
260
236
  const settlementEnv = parseOptionalBoolEnv(process.env['ANTSEED_ENABLE_SETTLEMENT']);
261
237
  const cryptoOverrides = config.payments?.crypto;
262
- // Resolve chain config with protocol defaults (always available)
263
238
  const chainConfig = resolveChainConfig({
264
239
  chainId: cryptoOverrides?.chainId,
265
240
  rpcUrl: cryptoOverrides?.rpcUrl,
@@ -292,10 +267,10 @@ export function registerConnectCommand(program) {
292
267
  maxReserveAmountUsdc: config.payments?.maxReserveAmountUsdc ?? '1000000',
293
268
  };
294
269
  }
295
- const routerName = options.instance
270
+ const resolvedRouterName = options.instance
296
271
  ? (await getInstance(join(homedir(), '.antseed', 'config.json'), options.instance))?.package
297
- : options.router;
298
- const versions = getPackageVersions(routerName ?? undefined);
272
+ : routerName;
273
+ const versions = getPackageVersions(resolvedRouterName ?? undefined);
299
274
  if (Object.keys(versions).length > 0) {
300
275
  console.log(chalk.dim(`Package versions: ${Object.entries(versions).map(([k, v]) => `${k}@${v}`).join(', ')}`));
301
276
  }
@@ -307,9 +282,8 @@ export function registerConnectCommand(program) {
307
282
  console.log(chalk.dim(` max reserve USDC: ${(Number(maxReserveAmountUsdc) / 1_000_000).toFixed(6)}`));
308
283
  console.log(chalk.dim(` min peer reputation: ${effectiveBuyerConfig.minPeerReputation}`));
309
284
  console.log(chalk.dim(` proxy port: ${effectiveBuyerConfig.proxyPort}`));
310
- if (pinnedPeerId) {
285
+ if (pinnedPeerId)
311
286
  console.log(chalk.yellow(` pinned peer: ${pinnedPeerId} (router bypassed)`));
312
- }
313
287
  console.log('');
314
288
  const node = new AntseedNode({
315
289
  role: 'buyer',
@@ -328,7 +302,6 @@ export function registerConnectCommand(program) {
328
302
  nodeSpinner.fail(chalk.red(`Failed to connect: ${err.message}`));
329
303
  process.exit(1);
330
304
  }
331
- // Display available USDC balance only if payments are active
332
305
  if (paymentsConfig?.enabled) {
333
306
  try {
334
307
  const identity = node.identity;
@@ -344,18 +317,12 @@ export function registerConnectCommand(program) {
344
317
  console.log(chalk.dim(`Deposits available: ${availUsdc.toFixed(6)} USDC`));
345
318
  }
346
319
  catch {
347
- // Non-fatal — chain may not be available
348
320
  console.log(chalk.dim('Payment balance unavailable (chain not reachable)'));
349
321
  }
350
322
  }
351
- // Start the local HTTP proxy
352
323
  const proxyPort = effectiveBuyerConfig.proxyPort;
353
324
  const proxySpinner = ora(`Starting local proxy on port ${proxyPort}...`).start();
354
- const proxy = new BuyerProxy({
355
- port: proxyPort,
356
- node,
357
- pinnedPeerId,
358
- });
325
+ const proxy = new BuyerProxy({ port: proxyPort, node, pinnedPeerId });
359
326
  let ownsProxyListener = false;
360
327
  try {
361
328
  await proxy.start();
@@ -391,12 +358,11 @@ export function registerConnectCommand(program) {
391
358
  console.log('');
392
359
  setupShutdownHandler(async () => {
393
360
  nodeSpinner.start('Shutting down...');
394
- if (ownsProxyListener) {
361
+ if (ownsProxyListener)
395
362
  await proxy.stop();
396
- }
397
363
  await node.stop();
398
364
  nodeSpinner.succeed('Disconnected. All channels finalized.');
399
365
  });
400
366
  });
401
367
  }
402
- //# sourceMappingURL=connect.js.map
368
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=start.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.test.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
- import { createDefaultConfig } from '../../config/defaults.js';
4
- import { resolveEffectiveBuyerConfig } from '../../config/effective.js';
5
- import { buildBuyerRuntimeOverridesFromFlags, buildBuyerBootstrapEntries, buildRouterRuntimeEnvFromBuyerConfig, } from './connect.js';
6
- test('connect runtime overrides are runtime-only and win over env/config', () => {
3
+ import { createDefaultConfig } from '../../../config/defaults.js';
4
+ import { resolveEffectiveBuyerConfig } from '../../../config/effective.js';
5
+ import { buildBuyerRuntimeOverridesFromFlags, buildBuyerBootstrapEntries, buildRouterRuntimeEnvFromBuyerConfig, resolveBuyerRouterName, } from './start.js';
6
+ test('buyer start runtime overrides are runtime-only and win over env/config', () => {
7
7
  const config = createDefaultConfig();
8
8
  config.buyer.proxyPort = 7777;
9
9
  config.buyer.maxPricing.defaults.inputUsdPerMillion = 50;
@@ -28,7 +28,7 @@ test('connect runtime overrides are runtime-only and win over env/config', () =>
28
28
  assert.equal(effective.maxPricing.defaults.outputUsdPerMillion, 95);
29
29
  assert.deepEqual(config, beforeResolution);
30
30
  });
31
- test('connect maps effective buyer config into router runtime env keys', () => {
31
+ test('buyer start maps effective buyer config into router runtime env keys', () => {
32
32
  const config = createDefaultConfig();
33
33
  config.buyer.minPeerReputation = 72;
34
34
  config.buyer.maxPricing.defaults.inputUsdPerMillion = 21;
@@ -39,14 +39,18 @@ test('connect maps effective buyer config into router runtime env keys', () => {
39
39
  assert.equal(parsed.defaults?.inputUsdPerMillion, 21);
40
40
  assert.equal(parsed.defaults?.outputUsdPerMillion, 63);
41
41
  });
42
- test('connect bootstrap entries use official nodes when config is empty and include local seeder first', () => {
42
+ test('buyer start bootstrap entries use official nodes when config is empty and include local seeder first', () => {
43
43
  const entries = buildBuyerBootstrapEntries([], 6881);
44
44
  assert.equal(entries[0], '127.0.0.1:6881');
45
45
  assert.ok(entries.length > 1);
46
46
  });
47
- test('connect bootstrap entries respect explicit configured nodes', () => {
47
+ test('buyer start bootstrap entries respect explicit configured nodes', () => {
48
48
  const entries = buildBuyerBootstrapEntries(['10.0.0.2:6881'], 6889);
49
49
  assert.equal(entries[0], '127.0.0.1:6889');
50
50
  assert.deepEqual(entries.slice(1), ['10.0.0.2:6881']);
51
51
  });
52
- //# sourceMappingURL=connect.test.js.map
52
+ test('buyer start defaults router name to local', () => {
53
+ assert.equal(resolveBuyerRouterName({}), 'local');
54
+ assert.equal(resolveBuyerRouterName({ router: 'claude-code' }), 'claude-code');
55
+ });
56
+ //# sourceMappingURL=start.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/start.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerBuyerStatusCommand(buyerCmd: Command): void;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA6DlE"}
@@ -0,0 +1,70 @@
1
+ import chalk from 'chalk';
2
+ import Table from 'cli-table3';
3
+ import { readFile } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import { homedir } from 'node:os';
6
+ import { getGlobalOptions } from '../types.js';
7
+ import { createDepositsClient, loadCryptoContext, formatUsdc } from '../../payment-utils.js';
8
+ import { loadConfig } from '../../../config/loader.js';
9
+ import { getNodeStatus } from '../../../status/node-status.js';
10
+ const BUYER_STATE_FILE = join(homedir(), '.antseed', 'buyer.state.json');
11
+ async function readBuyerState() {
12
+ try {
13
+ const raw = await readFile(BUYER_STATE_FILE, 'utf-8');
14
+ return JSON.parse(raw);
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ export function registerBuyerStatusCommand(buyerCmd) {
21
+ buyerCmd
22
+ .command('status')
23
+ .description('Show buyer connection status and balance')
24
+ .option('--json', 'output as JSON', false)
25
+ .action(async (options) => {
26
+ try {
27
+ const globalOpts = getGlobalOptions(buyerCmd);
28
+ const config = await loadConfig(globalOpts.config);
29
+ const nodeStatus = await getNodeStatus(config);
30
+ const buyerState = await readBuyerState();
31
+ const identity = await loadCryptoContext(globalOpts.dataDir);
32
+ let depositsAvailable = null;
33
+ let depositsReserved = null;
34
+ try {
35
+ const depositsClient = createDepositsClient(config);
36
+ const account = await depositsClient.getBuyerBalance(identity.address);
37
+ depositsAvailable = formatUsdc(account.available);
38
+ depositsReserved = formatUsdc(account.reserved);
39
+ }
40
+ catch {
41
+ // Non-fatal: show the status view even if chain access is unavailable.
42
+ }
43
+ if (options.json) {
44
+ console.log(JSON.stringify({
45
+ connectionState: nodeStatus.state,
46
+ proxyPort: nodeStatus.proxyPort,
47
+ pinnedService: buyerState?.pinnedService ?? null,
48
+ pinnedPeerId: buyerState?.pinnedPeerId ?? null,
49
+ depositsAvailable,
50
+ depositsReserved,
51
+ activeChannels: nodeStatus.activeChannels,
52
+ walletAddress: nodeStatus.walletAddress ?? identity.address,
53
+ }, null, 2));
54
+ return;
55
+ }
56
+ const table = new Table({
57
+ head: [chalk.bold('Metric'), chalk.bold('Value')],
58
+ colWidths: [28, 44],
59
+ });
60
+ table.push(['Connection state', nodeStatus.state === 'connected' ? chalk.green('connected') : chalk.gray('idle')], ['Proxy port', nodeStatus.proxyPort ? String(nodeStatus.proxyPort) : chalk.dim('n/a')], ['Pinned service', buyerState?.pinnedService ? chalk.cyan(buyerState.pinnedService) : chalk.dim('none')], ['Pinned peer', buyerState?.pinnedPeerId ? chalk.cyan(buyerState.pinnedPeerId) : chalk.dim('none')], ['Deposits available', depositsAvailable ? chalk.green(`${depositsAvailable} USDC`) : chalk.dim('unavailable')], ['Deposits reserved', depositsReserved ? chalk.yellow(`${depositsReserved} USDC`) : chalk.dim('unavailable')], ['Active channels', String(nodeStatus.activeChannels)], ['Wallet address', nodeStatus.walletAddress ?? identity.address ?? chalk.dim('not configured')]);
61
+ console.log(chalk.bold('Buyer Status:\n'));
62
+ console.log(table.toString());
63
+ }
64
+ catch (err) {
65
+ console.error(chalk.red(`Error: ${err.message}`));
66
+ process.exitCode = 1;
67
+ }
68
+ });
69
+ }
70
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerBuyerSubscribeCommand(buyerCmd: Command): void;
3
+ //# sourceMappingURL=subscribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA0GrE"}
@@ -1,17 +1,17 @@
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 { createSubPoolClient, loadCryptoContext, formatUsdc, } from '../payment-utils.js';
6
- export function registerSubscribeCommand(program) {
7
- const subscribe = program
3
+ import { getGlobalOptions } from '../types.js';
4
+ import { loadConfig } from '../../../config/loader.js';
5
+ import { createSubPoolClient, loadCryptoContext, formatUsdc, } from '../../payment-utils.js';
6
+ export function registerBuyerSubscribeCommand(buyerCmd) {
7
+ const subscribe = buyerCmd
8
8
  .command('subscribe')
9
9
  .description('Manage subscription pool membership');
10
10
  subscribe
11
11
  .command('join <tierId>')
12
12
  .description('Subscribe to a tier')
13
13
  .action(async (tierIdStr) => {
14
- const globalOpts = getGlobalOptions(program);
14
+ const globalOpts = getGlobalOptions(buyerCmd);
15
15
  const config = await loadConfig(globalOpts.config);
16
16
  const tierId = parseInt(tierIdStr, 10);
17
17
  if (isNaN(tierId) || tierId < 0) {
@@ -44,7 +44,7 @@ export function registerSubscribeCommand(program) {
44
44
  .description('Check subscription status')
45
45
  .option('--json', 'output as JSON', false)
46
46
  .action(async (options) => {
47
- const globalOpts = getGlobalOptions(program);
47
+ const globalOpts = getGlobalOptions(buyerCmd);
48
48
  const config = await loadConfig(globalOpts.config);
49
49
  const spinner = ora('Checking subscription...').start();
50
50
  try {
@@ -76,7 +76,7 @@ export function registerSubscribeCommand(program) {
76
76
  .command('cancel')
77
77
  .description('Cancel your subscription')
78
78
  .action(async () => {
79
- const globalOpts = getGlobalOptions(program);
79
+ const globalOpts = getGlobalOptions(buyerCmd);
80
80
  const config = await loadConfig(globalOpts.config);
81
81
  const spinner = ora('Cancelling subscription...').start();
82
82
  try {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/subscribe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerBuyerWithdrawCommand(buyerCmd: Command): void;
3
+ //# sourceMappingURL=withdraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA8CpE"}
@@ -1,19 +1,19 @@
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';
3
+ import { getGlobalOptions } from '../types.js';
4
+ import { loadConfig } from '../../../config/loader.js';
5
5
  import { loadOrCreateIdentity, DepositsClient, } from '@antseed/node';
6
- export function registerWithdrawCommand(program) {
7
- program
6
+ export function registerBuyerWithdrawCommand(buyerCmd) {
7
+ buyerCmd
8
8
  .command('withdraw <amount>')
9
9
  .description('Withdraw USDC from the deposits contract (amount in human-readable USDC, e.g. "5" = 5 USDC)')
10
10
  .action(async (amount) => {
11
- const globalOpts = getGlobalOptions(program);
11
+ const globalOpts = getGlobalOptions(buyerCmd);
12
12
  const config = await loadConfig(globalOpts.config);
13
13
  const payments = config.payments;
14
14
  if (!payments?.crypto) {
15
15
  console.error(chalk.red('Error: No crypto payment configuration found.'));
16
- console.error(chalk.dim('Configure payments.crypto in your config file or run: antseed init'));
16
+ console.error(chalk.dim('Configure payments.crypto in your config file.'));
17
17
  process.exit(1);
18
18
  }
19
19
  const amountFloat = parseFloat(amount);
@@ -21,7 +21,6 @@ export function registerWithdrawCommand(program) {
21
21
  console.error(chalk.red('Error: Amount must be a positive number.'));
22
22
  process.exit(1);
23
23
  }
24
- // Convert human-readable USDC to base units (6 decimals)
25
24
  const amountBaseUnits = BigInt(Math.round(amountFloat * 1_000_000));
26
25
  const identity = await loadOrCreateIdentity(globalOpts.dataDir);
27
26
  const wallet = identity.wallet;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../../src/cli/commands/buyer/withdraw.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Command } from 'commander';
2
- import type { AntseedConfig, ProviderConfig, ProviderType } from '../../config/types.js';
2
+ import type { AntseedConfig } from '../../../config/types.js';
3
3
  /**
4
4
  * Register the `antseed config` command and its subcommands.
5
5
  */
@@ -9,12 +9,12 @@ export declare function registerConfigCommand(program: Command): void;
9
9
  */
10
10
  export declare function redactConfig(config: AntseedConfig): Record<string, unknown>;
11
11
  /**
12
- * Set a nested config value by dot-separated key path.
12
+ * Set a nested config value by dot-separated key path. Auto-creates missing
13
+ * intermediate objects so dynamic paths under `seller.providers.<name>.services.<id>`
14
+ * can be set before the provider or service entry exists in the file.
15
+ *
13
16
  * @example setConfigValue(config, 'seller.reserveFloor', '20')
17
+ * @example setConfigValue(config, 'seller.providers.openai.services.gpt-4.pricing.inputUsdPerMillion', '3')
14
18
  */
15
19
  export declare function setConfigValue(config: Record<string, unknown>, key: string, value: string): void;
16
- /**
17
- * Build a ProviderConfig with default endpoint and auth header for known providers.
18
- */
19
- export declare function buildProviderConfig(type: ProviderType, authValue: string, customEndpoint?: string): ProviderConfig;
20
- //# sourceMappingURL=config.d.ts.map
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AAKpF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+P5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAoChG"}