@antseed/cli 0.1.81 → 0.1.83
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.
- package/README.md +93 -77
- package/dist/cli/commands/buyer/balance.d.ts +3 -0
- package/dist/cli/commands/buyer/balance.d.ts.map +1 -0
- package/dist/cli/commands/{balance.js → buyer/balance.js} +5 -6
- package/dist/cli/commands/buyer/balance.js.map +1 -0
- package/dist/cli/commands/buyer/channels.d.ts +3 -0
- package/dist/cli/commands/buyer/channels.d.ts.map +1 -0
- package/dist/cli/commands/{channels.js → buyer/channels.js} +9 -17
- package/dist/cli/commands/buyer/channels.js.map +1 -0
- package/dist/cli/commands/buyer/connection.d.ts +3 -0
- package/dist/cli/commands/buyer/connection.d.ts.map +1 -0
- package/dist/cli/commands/{connection.js → buyer/connection.js} +5 -5
- package/dist/cli/commands/buyer/connection.js.map +1 -0
- package/dist/cli/commands/buyer/deposit.d.ts +3 -0
- package/dist/cli/commands/buyer/deposit.d.ts.map +1 -0
- package/dist/cli/commands/{deposit.js → buyer/deposit.js} +6 -6
- package/dist/cli/commands/buyer/deposit.js.map +1 -0
- package/dist/cli/commands/buyer/index.d.ts +3 -0
- package/dist/cli/commands/buyer/index.d.ts.map +1 -0
- package/dist/cli/commands/buyer/index.js +24 -0
- package/dist/cli/commands/buyer/index.js.map +1 -0
- package/dist/cli/commands/buyer/metering.d.ts +3 -0
- package/dist/cli/commands/buyer/metering.d.ts.map +1 -0
- package/dist/cli/commands/{metering.js → buyer/metering.js} +7 -10
- package/dist/cli/commands/buyer/metering.js.map +1 -0
- package/dist/cli/commands/buyer/metering.test.d.ts.map +1 -0
- package/dist/cli/commands/buyer/metering.test.js.map +1 -0
- package/dist/cli/commands/{connect.d.ts → buyer/start.d.ts} +7 -4
- package/dist/cli/commands/buyer/start.d.ts.map +1 -0
- package/dist/cli/commands/{connect.js → buyer/start.js} +37 -71
- package/dist/cli/commands/buyer/start.js.map +1 -0
- package/dist/cli/commands/buyer/start.test.d.ts +2 -0
- package/dist/cli/commands/buyer/start.test.d.ts.map +1 -0
- package/dist/cli/commands/{connect.test.js → buyer/start.test.js} +12 -8
- package/dist/cli/commands/buyer/start.test.js.map +1 -0
- package/dist/cli/commands/buyer/status.d.ts +3 -0
- package/dist/cli/commands/buyer/status.d.ts.map +1 -0
- package/dist/cli/commands/buyer/status.js +70 -0
- package/dist/cli/commands/buyer/status.js.map +1 -0
- package/dist/cli/commands/buyer/subscribe.d.ts +3 -0
- package/dist/cli/commands/buyer/subscribe.d.ts.map +1 -0
- package/dist/cli/commands/{subscribe.js → buyer/subscribe.js} +8 -8
- package/dist/cli/commands/buyer/subscribe.js.map +1 -0
- package/dist/cli/commands/buyer/withdraw.d.ts +3 -0
- package/dist/cli/commands/buyer/withdraw.d.ts.map +1 -0
- package/dist/cli/commands/{withdraw.js → buyer/withdraw.js} +6 -7
- package/dist/cli/commands/buyer/withdraw.js.map +1 -0
- package/dist/cli/commands/{config.d.ts → config/index.d.ts} +7 -7
- package/dist/cli/commands/config/index.d.ts.map +1 -0
- package/dist/cli/commands/config/index.js +357 -0
- package/dist/cli/commands/config/index.js.map +1 -0
- package/dist/cli/commands/config/index.test.d.ts +2 -0
- package/dist/cli/commands/config/index.test.d.ts.map +1 -0
- package/dist/cli/commands/config/index.test.js +28 -0
- package/dist/cli/commands/config/index.test.js.map +1 -0
- package/dist/cli/commands/identity/index.d.ts +3 -0
- package/dist/cli/commands/identity/index.d.ts.map +1 -0
- package/dist/cli/commands/identity/index.js +6 -0
- package/dist/cli/commands/identity/index.js.map +1 -0
- package/dist/cli/commands/identity/profile.d.ts.map +1 -0
- package/dist/cli/commands/identity/profile.js.map +1 -0
- package/dist/cli/commands/network/bootstrap.d.ts +3 -0
- package/dist/cli/commands/network/bootstrap.d.ts.map +1 -0
- package/dist/cli/commands/{bootstrap.js → network/bootstrap.js} +5 -5
- package/dist/cli/commands/network/bootstrap.js.map +1 -0
- package/dist/cli/commands/network/browse.d.ts +7 -0
- package/dist/cli/commands/network/browse.d.ts.map +1 -0
- package/dist/cli/commands/{browse.js → network/browse.js} +6 -6
- package/dist/cli/commands/network/browse.js.map +1 -0
- package/dist/cli/commands/network/index.d.ts +3 -0
- package/dist/cli/commands/network/index.d.ts.map +1 -0
- package/dist/cli/commands/network/index.js +10 -0
- package/dist/cli/commands/network/index.js.map +1 -0
- package/dist/cli/commands/seller/emissions.d.ts +3 -0
- package/dist/cli/commands/seller/emissions.d.ts.map +1 -0
- package/dist/cli/commands/{emissions.js → seller/emissions.js} +7 -7
- package/dist/cli/commands/seller/emissions.js.map +1 -0
- package/dist/cli/commands/seller/index.d.ts +3 -0
- package/dist/cli/commands/seller/index.d.ts.map +1 -0
- package/dist/cli/commands/seller/index.js +18 -0
- package/dist/cli/commands/seller/index.js.map +1 -0
- package/dist/cli/commands/seller/register.d.ts +3 -0
- package/dist/cli/commands/seller/register.d.ts.map +1 -0
- package/dist/cli/commands/{register.js → seller/register.js} +6 -6
- package/dist/cli/commands/seller/register.js.map +1 -0
- package/dist/cli/commands/seller/setup.d.ts +12 -0
- package/dist/cli/commands/seller/setup.d.ts.map +1 -0
- package/dist/cli/commands/seller/setup.js +175 -0
- package/dist/cli/commands/seller/setup.js.map +1 -0
- package/dist/cli/commands/seller/setup.test.d.ts +2 -0
- package/dist/cli/commands/seller/setup.test.d.ts.map +1 -0
- package/dist/cli/commands/seller/setup.test.js +32 -0
- package/dist/cli/commands/seller/setup.test.js.map +1 -0
- package/dist/cli/commands/seller/stake.d.ts +3 -0
- package/dist/cli/commands/seller/stake.d.ts.map +1 -0
- package/dist/cli/commands/{stake.js → seller/stake.js} +11 -11
- package/dist/cli/commands/seller/stake.js.map +1 -0
- package/dist/cli/commands/seller/start.d.ts +44 -0
- package/dist/cli/commands/seller/start.d.ts.map +1 -0
- package/dist/cli/commands/{seed.js → seller/start.js} +241 -135
- package/dist/cli/commands/seller/start.js.map +1 -0
- package/dist/cli/commands/seller/start.test.d.ts +2 -0
- package/dist/cli/commands/seller/start.test.d.ts.map +1 -0
- package/dist/cli/commands/seller/start.test.js +212 -0
- package/dist/cli/commands/seller/start.test.js.map +1 -0
- package/dist/cli/commands/seller/status.d.ts +3 -0
- package/dist/cli/commands/seller/status.d.ts.map +1 -0
- package/dist/cli/commands/seller/status.js +72 -0
- package/dist/cli/commands/seller/status.js.map +1 -0
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/types.js +3 -1
- package/dist/cli/commands/types.js.map +1 -1
- package/dist/cli/commands/types.test.d.ts +2 -0
- package/dist/cli/commands/types.test.d.ts.map +1 -0
- package/dist/cli/commands/types.test.js +21 -0
- package/dist/cli/commands/types.test.js.map +1 -0
- package/dist/cli/index.js +11 -42
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/payment-utils.js +1 -1
- package/dist/cli/payment-utils.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -8
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effective.d.ts.map +1 -1
- package/dist/config/effective.js +23 -4
- package/dist/config/effective.js.map +1 -1
- package/dist/config/effective.test.js +24 -5
- package/dist/config/effective.test.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +64 -95
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +62 -41
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/types.d.ts +35 -49
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +51 -35
- package/dist/config/validation.js.map +1 -1
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/loader.js.map +1 -1
- package/dist/plugins/registry.d.ts +1 -0
- package/dist/plugins/registry.d.ts.map +1 -1
- package/dist/plugins/registry.js +4 -0
- package/dist/plugins/registry.js.map +1 -1
- package/dist/proxy/buyer-proxy.d.ts +1 -1
- package/package.json +8 -8
- package/dist/cli/commands/balance.d.ts +0 -3
- package/dist/cli/commands/balance.d.ts.map +0 -1
- package/dist/cli/commands/balance.js.map +0 -1
- package/dist/cli/commands/bootstrap.d.ts +0 -3
- package/dist/cli/commands/bootstrap.d.ts.map +0 -1
- package/dist/cli/commands/bootstrap.js.map +0 -1
- package/dist/cli/commands/browse.d.ts +0 -7
- package/dist/cli/commands/browse.d.ts.map +0 -1
- package/dist/cli/commands/browse.js.map +0 -1
- package/dist/cli/commands/channels.d.ts +0 -3
- package/dist/cli/commands/channels.d.ts.map +0 -1
- package/dist/cli/commands/channels.js.map +0 -1
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -239
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/connect.d.ts.map +0 -1
- package/dist/cli/commands/connect.js.map +0 -1
- package/dist/cli/commands/connect.test.d.ts +0 -2
- package/dist/cli/commands/connect.test.d.ts.map +0 -1
- package/dist/cli/commands/connect.test.js.map +0 -1
- package/dist/cli/commands/connection.d.ts +0 -3
- package/dist/cli/commands/connection.d.ts.map +0 -1
- package/dist/cli/commands/connection.js.map +0 -1
- package/dist/cli/commands/deposit.d.ts +0 -3
- package/dist/cli/commands/deposit.d.ts.map +0 -1
- package/dist/cli/commands/deposit.js.map +0 -1
- package/dist/cli/commands/emissions.d.ts +0 -3
- package/dist/cli/commands/emissions.d.ts.map +0 -1
- package/dist/cli/commands/emissions.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -3
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -90
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/metering.d.ts +0 -3
- package/dist/cli/commands/metering.d.ts.map +0 -1
- package/dist/cli/commands/metering.js.map +0 -1
- package/dist/cli/commands/metering.test.d.ts.map +0 -1
- package/dist/cli/commands/metering.test.js.map +0 -1
- package/dist/cli/commands/plugin-create.d.ts +0 -11
- package/dist/cli/commands/plugin-create.d.ts.map +0 -1
- package/dist/cli/commands/plugin-create.js +0 -201
- package/dist/cli/commands/plugin-create.js.map +0 -1
- package/dist/cli/commands/plugin-create.test.d.ts +0 -2
- package/dist/cli/commands/plugin-create.test.d.ts.map +0 -1
- package/dist/cli/commands/plugin-create.test.js +0 -53
- package/dist/cli/commands/plugin-create.test.js.map +0 -1
- package/dist/cli/commands/plugin.d.ts +0 -3
- package/dist/cli/commands/plugin.d.ts.map +0 -1
- package/dist/cli/commands/plugin.js +0 -279
- package/dist/cli/commands/plugin.js.map +0 -1
- package/dist/cli/commands/plugin.test.d.ts +0 -2
- package/dist/cli/commands/plugin.test.d.ts.map +0 -1
- package/dist/cli/commands/plugin.test.js +0 -54
- package/dist/cli/commands/plugin.test.js.map +0 -1
- package/dist/cli/commands/profile.d.ts.map +0 -1
- package/dist/cli/commands/profile.js.map +0 -1
- package/dist/cli/commands/register.d.ts +0 -3
- package/dist/cli/commands/register.d.ts.map +0 -1
- package/dist/cli/commands/register.js.map +0 -1
- package/dist/cli/commands/seed.d.ts +0 -14
- package/dist/cli/commands/seed.d.ts.map +0 -1
- package/dist/cli/commands/seed.js.map +0 -1
- package/dist/cli/commands/seed.test.d.ts +0 -2
- package/dist/cli/commands/seed.test.d.ts.map +0 -1
- package/dist/cli/commands/seed.test.js +0 -92
- package/dist/cli/commands/seed.test.js.map +0 -1
- package/dist/cli/commands/setup.d.ts +0 -3
- package/dist/cli/commands/setup.d.ts.map +0 -1
- package/dist/cli/commands/setup.js +0 -84
- package/dist/cli/commands/setup.js.map +0 -1
- package/dist/cli/commands/stake.d.ts +0 -3
- package/dist/cli/commands/stake.d.ts.map +0 -1
- package/dist/cli/commands/stake.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -8
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -55
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/subscribe.d.ts +0 -3
- package/dist/cli/commands/subscribe.d.ts.map +0 -1
- package/dist/cli/commands/subscribe.js.map +0 -1
- package/dist/cli/commands/withdraw.d.ts +0 -3
- package/dist/cli/commands/withdraw.d.ts.map +0 -1
- package/dist/cli/commands/withdraw.js.map +0 -1
- /package/dist/cli/commands/{metering.test.d.ts → buyer/metering.test.d.ts} +0 -0
- /package/dist/cli/commands/{metering.test.js → buyer/metering.test.js} +0 -0
- /package/dist/cli/commands/{profile.d.ts → identity/profile.d.ts} +0 -0
- /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 '
|
|
3
|
-
import type { BuyerCLIConfig } from '
|
|
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
|
|
13
|
-
//# sourceMappingURL=
|
|
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 '
|
|
8
|
-
import { loadConfig } from '
|
|
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 '
|
|
12
|
-
import { loadRouterPlugin, buildPluginConfig, getPackageVersions } from '
|
|
13
|
-
import { BuyerProxy } from '
|
|
14
|
-
import { resolveEffectiveBuyerConfig } from '
|
|
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
|
-
|
|
28
|
+
return {
|
|
33
29
|
ANTSEED_MIN_REPUTATION: String(buyerConfig.minPeerReputation),
|
|
34
30
|
ANTSEED_MAX_PRICING_JSON: JSON.stringify(buyerConfig.maxPricing),
|
|
35
31
|
};
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
180
|
-
|
|
181
|
-
.command('
|
|
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(
|
|
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
|
|
234
|
-
const spinner = ora(`Loading router plugin "${
|
|
216
|
+
else {
|
|
217
|
+
const spinner = ora(`Loading router plugin "${routerName}"...`).start();
|
|
235
218
|
try {
|
|
236
|
-
const plugin = await loadRouterPlugin(
|
|
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
|
|
270
|
+
const resolvedRouterName = options.instance
|
|
296
271
|
? (await getInstance(join(homedir(), '.antseed', 'config.json'), options.instance))?.package
|
|
297
|
-
:
|
|
298
|
-
const versions = getPackageVersions(
|
|
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=
|
|
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 @@
|
|
|
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 '
|
|
4
|
-
import { resolveEffectiveBuyerConfig } from '
|
|
5
|
-
import { buildBuyerRuntimeOverridesFromFlags, buildBuyerBootstrapEntries, buildRouterRuntimeEnvFromBuyerConfig, } from './
|
|
6
|
-
test('
|
|
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('
|
|
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('
|
|
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('
|
|
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
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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 '
|
|
4
|
-
import { loadConfig } from '
|
|
5
|
-
import { createSubPoolClient, loadCryptoContext, formatUsdc, } from '
|
|
6
|
-
export function
|
|
7
|
-
const subscribe =
|
|
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(
|
|
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(
|
|
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(
|
|
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 @@
|
|
|
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 '
|
|
4
|
-
import { loadConfig } from '
|
|
3
|
+
import { getGlobalOptions } from '../types.js';
|
|
4
|
+
import { loadConfig } from '../../../config/loader.js';
|
|
5
5
|
import { loadOrCreateIdentity, DepositsClient, } from '@antseed/node';
|
|
6
|
-
export function
|
|
7
|
-
|
|
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(
|
|
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
|
|
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
|
|
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"}
|