@antseed/cli 0.1.61 → 0.1.63
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/dist/cli/commands/agent.d.ts +3 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +165 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/balance.d.ts +3 -0
- package/dist/cli/commands/balance.d.ts.map +1 -0
- package/dist/cli/commands/balance.js +62 -0
- package/dist/cli/commands/balance.js.map +1 -0
- package/dist/cli/commands/bootstrap.d.ts +3 -0
- package/dist/cli/commands/bootstrap.d.ts.map +1 -0
- package/dist/cli/commands/bootstrap.js +46 -0
- package/dist/cli/commands/bootstrap.js.map +1 -0
- package/dist/cli/commands/browse.d.ts +7 -0
- package/dist/cli/commands/browse.d.ts.map +1 -0
- package/dist/cli/commands/browse.js +103 -0
- package/dist/cli/commands/browse.js.map +1 -0
- package/dist/cli/commands/channels.d.ts +3 -0
- package/dist/cli/commands/channels.d.ts.map +1 -0
- package/dist/cli/commands/channels.js +79 -0
- package/dist/cli/commands/channels.js.map +1 -0
- package/dist/cli/commands/config.d.ts +20 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +239 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/connect.d.ts +13 -0
- package/dist/cli/commands/connect.d.ts.map +1 -0
- package/dist/cli/commands/connect.js +402 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/connect.test.d.ts +2 -0
- package/dist/cli/commands/connect.test.d.ts.map +1 -0
- package/dist/cli/commands/connect.test.js +52 -0
- package/dist/cli/commands/connect.test.js.map +1 -0
- package/dist/cli/commands/connection.d.ts +3 -0
- package/dist/cli/commands/connection.d.ts.map +1 -0
- package/dist/cli/commands/connection.js +128 -0
- package/dist/cli/commands/connection.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +6 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +48 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/deposit.d.ts +3 -0
- package/dist/cli/commands/deposit.d.ts.map +1 -0
- package/dist/cli/commands/deposit.js +38 -0
- package/dist/cli/commands/deposit.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +3 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +94 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/emissions.d.ts +3 -0
- package/dist/cli/commands/emissions.d.ts.map +1 -0
- package/dist/cli/commands/emissions.js +80 -0
- package/dist/cli/commands/emissions.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +90 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/payments.d.ts +3 -0
- package/dist/cli/commands/payments.d.ts.map +1 -0
- package/dist/cli/commands/payments.js +26 -0
- package/dist/cli/commands/payments.js.map +1 -0
- package/dist/cli/commands/plugin-create.d.ts +11 -0
- package/dist/cli/commands/plugin-create.d.ts.map +1 -0
- package/dist/cli/commands/plugin-create.js +201 -0
- package/dist/cli/commands/plugin-create.js.map +1 -0
- package/dist/cli/commands/plugin-create.test.d.ts +2 -0
- package/dist/cli/commands/plugin-create.test.d.ts.map +1 -0
- package/dist/cli/commands/plugin-create.test.js +53 -0
- package/dist/cli/commands/plugin-create.test.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +3 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +279 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/plugin.test.d.ts +2 -0
- package/dist/cli/commands/plugin.test.d.ts.map +1 -0
- package/dist/cli/commands/plugin.test.js +54 -0
- package/dist/cli/commands/plugin.test.js.map +1 -0
- package/dist/cli/commands/profile.d.ts +10 -0
- package/dist/cli/commands/profile.d.ts.map +1 -0
- package/dist/cli/commands/profile.js +89 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/register.d.ts +3 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +35 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/seed.d.ts +14 -0
- package/dist/cli/commands/seed.d.ts.map +1 -0
- package/dist/cli/commands/seed.js +500 -0
- package/dist/cli/commands/seed.js.map +1 -0
- package/dist/cli/commands/seed.test.d.ts +2 -0
- package/dist/cli/commands/seed.test.d.ts.map +1 -0
- package/dist/cli/commands/seed.test.js +92 -0
- package/dist/cli/commands/seed.test.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +3 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +84 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/stake.d.ts +3 -0
- package/dist/cli/commands/stake.d.ts.map +1 -0
- package/dist/cli/commands/stake.js +83 -0
- package/dist/cli/commands/stake.js.map +1 -0
- package/dist/cli/commands/status.d.ts +8 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +55 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/subscribe.d.ts +3 -0
- package/dist/cli/commands/subscribe.d.ts.map +1 -0
- package/dist/cli/commands/subscribe.js +96 -0
- package/dist/cli/commands/subscribe.js.map +1 -0
- package/dist/cli/commands/types.d.ts +14 -0
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/commands/types.js +41 -0
- package/dist/cli/commands/types.js.map +1 -0
- package/dist/cli/commands/withdraw.d.ts +3 -0
- package/dist/cli/commands/withdraw.d.ts.map +1 -0
- package/dist/cli/commands/withdraw.js +48 -0
- package/dist/cli/commands/withdraw.js.map +1 -0
- package/dist/cli/formatters.d.ts +29 -0
- package/dist/cli/formatters.d.ts.map +1 -0
- package/dist/cli/formatters.js +67 -0
- package/dist/cli/formatters.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +63 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/payment-utils.d.ts +53 -0
- package/dist/cli/payment-utils.d.ts.map +1 -0
- package/dist/cli/payment-utils.js +137 -0
- package/dist/cli/payment-utils.js.map +1 -0
- package/dist/cli/shutdown.d.ts +11 -0
- package/dist/cli/shutdown.d.ts.map +1 -0
- package/dist/cli/shutdown.js +34 -0
- package/dist/cli/shutdown.js.map +1 -0
- package/dist/config/defaults.d.ts +6 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +41 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/effective.d.ts +25 -0
- package/dist/config/effective.d.ts.map +1 -0
- package/dist/config/effective.js +67 -0
- package/dist/config/effective.js.map +1 -0
- package/dist/config/effective.test.d.ts +2 -0
- package/dist/config/effective.test.d.ts.map +1 -0
- package/dist/config/effective.test.js +62 -0
- package/dist/config/effective.test.js.map +1 -0
- package/dist/config/loader.d.ts +12 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +269 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/loader.test.d.ts +2 -0
- package/dist/config/loader.test.d.ts.map +1 -0
- package/dist/config/loader.test.js +124 -0
- package/dist/config/loader.test.js.map +1 -0
- package/dist/config/types.d.ts +167 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +10 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +130 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/env/load-env.d.ts +6 -0
- package/dist/env/load-env.d.ts.map +1 -0
- package/dist/env/load-env.js +18 -0
- package/dist/env/load-env.js.map +1 -0
- package/dist/plugins/loader.d.ts +12 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +111 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +11 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +52 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/registry.d.ts +8 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +45 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/proxy/buyer-proxy.d.ts +82 -0
- package/dist/proxy/buyer-proxy.d.ts.map +1 -0
- package/dist/proxy/buyer-proxy.js +1056 -0
- package/dist/proxy/buyer-proxy.js.map +1 -0
- package/dist/proxy/buyer-proxy.test.d.ts +2 -0
- package/dist/proxy/buyer-proxy.test.d.ts.map +1 -0
- package/dist/proxy/buyer-proxy.test.js +124 -0
- package/dist/proxy/buyer-proxy.test.js.map +1 -0
- package/dist/proxy/request-utils.d.ts +21 -0
- package/dist/proxy/request-utils.d.ts.map +1 -0
- package/dist/proxy/request-utils.js +237 -0
- package/dist/proxy/request-utils.js.map +1 -0
- package/dist/proxy/routing.d.ts +17 -0
- package/dist/proxy/routing.d.ts.map +1 -0
- package/dist/proxy/routing.js +115 -0
- package/dist/proxy/routing.js.map +1 -0
- package/dist/proxy/service-api-adapter.d.ts +3 -0
- package/dist/proxy/service-api-adapter.d.ts.map +1 -0
- package/dist/proxy/service-api-adapter.js +2 -0
- package/dist/proxy/service-api-adapter.js.map +1 -0
- package/dist/proxy/service-api-adapter.test.d.ts +2 -0
- package/dist/proxy/service-api-adapter.test.d.ts.map +1 -0
- package/dist/proxy/service-api-adapter.test.js +121 -0
- package/dist/proxy/service-api-adapter.test.js.map +1 -0
- package/dist/proxy/telemetry.d.ts +23 -0
- package/dist/proxy/telemetry.d.ts.map +1 -0
- package/dist/proxy/telemetry.js +227 -0
- package/dist/proxy/telemetry.js.map +1 -0
- package/dist/status/node-status.d.ts +22 -0
- package/dist/status/node-status.d.ts.map +1 -0
- package/dist/status/node-status.js +83 -0
- package/dist/status/node-status.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
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';
|
|
8
|
+
import { registerDashboardCommand } from './commands/dashboard.js';
|
|
9
|
+
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
|
+
import { registerPaymentsCommand } from './commands/payments.js';
|
|
27
|
+
loadEnvFromFiles();
|
|
28
|
+
import pkg from '../../package.json' with { type: 'json' };
|
|
29
|
+
const version = pkg.version;
|
|
30
|
+
const program = new Command();
|
|
31
|
+
program
|
|
32
|
+
.name('antseed')
|
|
33
|
+
.description('P2P network for AI services')
|
|
34
|
+
.version(version)
|
|
35
|
+
.option('-c, --config <path>', 'path to config file (env: ANTSEED_CONFIG, default: ~/.antseed/config.json)')
|
|
36
|
+
.option('--data-dir <path>', 'path to node identity/state directory (env: ANTSEED_DATA_DIR, default: ~/.antseed)')
|
|
37
|
+
.option('-v, --verbose', 'enable verbose logging', false);
|
|
38
|
+
registerSeedCommand(program);
|
|
39
|
+
registerConnectCommand(program);
|
|
40
|
+
registerStatusCommand(program);
|
|
41
|
+
registerConfigCommand(program);
|
|
42
|
+
registerDashboardCommand(program);
|
|
43
|
+
registerDevCommand(program);
|
|
44
|
+
registerBrowseCommand(program);
|
|
45
|
+
registerInitCommand(program);
|
|
46
|
+
registerPluginCommand(program);
|
|
47
|
+
registerProfileCommand(program);
|
|
48
|
+
registerPeerCommand(program);
|
|
49
|
+
registerDepositCommand(program);
|
|
50
|
+
registerWithdrawCommand(program);
|
|
51
|
+
registerBalanceCommand(program);
|
|
52
|
+
registerBootstrapCommand(program);
|
|
53
|
+
registerConnectionCommand(program);
|
|
54
|
+
registerAgentCommand(program);
|
|
55
|
+
registerSetupCommand(program);
|
|
56
|
+
registerRegisterCommand(program);
|
|
57
|
+
registerStakeCommand(program);
|
|
58
|
+
registerEmissionsCommand(program);
|
|
59
|
+
registerChannelsCommand(program);
|
|
60
|
+
registerSubscribeCommand(program);
|
|
61
|
+
registerPaymentsCommand(program);
|
|
62
|
+
program.parse(process.argv);
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AntseedConfig } from '../config/types.js';
|
|
2
|
+
import { DepositsClient, ChannelsClient, StakingClient } from '@antseed/node';
|
|
3
|
+
import { IdentityClient, EmissionsClient, SubPoolClient, ChannelStore } from '@antseed/node/payments';
|
|
4
|
+
import type { Identity } from '@antseed/node';
|
|
5
|
+
/** Format ANTS token amounts (18 decimals) to human-readable string. */
|
|
6
|
+
export declare function formatAnts(baseUnits: bigint): string;
|
|
7
|
+
/** Format USDC base units (6 decimals) to human-readable string. */
|
|
8
|
+
export declare function formatUsdc(baseUnits: bigint): string;
|
|
9
|
+
/** Parse human-readable USDC to base units (6 decimals). */
|
|
10
|
+
export declare function parseUsdcToBaseUnits(amount: string): bigint;
|
|
11
|
+
export interface CryptoContext {
|
|
12
|
+
identity: Identity;
|
|
13
|
+
wallet: Identity['wallet'];
|
|
14
|
+
address: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Load identity and derive EVM wallet + address. Shared across all payment commands.
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadCryptoContext(dataDir: string): Promise<CryptoContext>;
|
|
20
|
+
/**
|
|
21
|
+
* Validate that crypto payment config is present and return it.
|
|
22
|
+
* Exits with error if not configured.
|
|
23
|
+
*/
|
|
24
|
+
export declare function requireCryptoConfig(config: AntseedConfig): NonNullable<AntseedConfig['payments']['crypto']>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a DepositsClient from the CLI config.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createDepositsClient(config: AntseedConfig): DepositsClient;
|
|
29
|
+
/**
|
|
30
|
+
* Create a ChannelsClient from the CLI config.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createChannelsClient(config: AntseedConfig): ChannelsClient;
|
|
33
|
+
/**
|
|
34
|
+
* Create an IdentityClient from the CLI config.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createIdentityClient(config: AntseedConfig): IdentityClient;
|
|
37
|
+
/**
|
|
38
|
+
* Create a StakingClient from the CLI config.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createStakingClient(config: AntseedConfig): StakingClient;
|
|
41
|
+
/**
|
|
42
|
+
* Create an EmissionsClient from the CLI config.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createEmissionsClient(config: AntseedConfig): EmissionsClient;
|
|
45
|
+
/**
|
|
46
|
+
* Create a SubPoolClient from the CLI config.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createSubPoolClient(config: AntseedConfig): SubPoolClient;
|
|
49
|
+
/**
|
|
50
|
+
* Open a ChannelStore from the given data directory.
|
|
51
|
+
*/
|
|
52
|
+
export declare function openChannelStore(dataDir: string): ChannelStore;
|
|
53
|
+
//# sourceMappingURL=payment-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-utils.d.ts","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAK/E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAiB3G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAO1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAM1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAS1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAUxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAS5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAUxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE9D"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { DepositsClient, ChannelsClient, StakingClient, loadOrCreateIdentity, resolveChainConfig, } from '@antseed/node';
|
|
2
|
+
import { IdentityClient, EmissionsClient, SubPoolClient, ChannelStore, } from '@antseed/node/payments';
|
|
3
|
+
/** Format ANTS token amounts (18 decimals) to human-readable string. */
|
|
4
|
+
export function formatAnts(baseUnits) {
|
|
5
|
+
const whole = baseUnits / 10n ** 18n;
|
|
6
|
+
const frac = baseUnits % 10n ** 18n;
|
|
7
|
+
const fracStr = frac.toString().padStart(18, '0').replace(/0+$/, '').slice(0, 6) || '0';
|
|
8
|
+
return `${whole}.${fracStr}`;
|
|
9
|
+
}
|
|
10
|
+
/** Format USDC base units (6 decimals) to human-readable string. */
|
|
11
|
+
export function formatUsdc(baseUnits) {
|
|
12
|
+
const whole = baseUnits / 1000000n;
|
|
13
|
+
const frac = baseUnits % 1000000n;
|
|
14
|
+
const fracStr = frac.toString().padStart(6, '0').replace(/0+$/, '') || '0';
|
|
15
|
+
return `${whole}.${fracStr}`;
|
|
16
|
+
}
|
|
17
|
+
/** Parse human-readable USDC to base units (6 decimals). */
|
|
18
|
+
export function parseUsdcToBaseUnits(amount) {
|
|
19
|
+
const amountFloat = parseFloat(amount);
|
|
20
|
+
if (isNaN(amountFloat) || amountFloat <= 0) {
|
|
21
|
+
throw new Error('Amount must be a positive number.');
|
|
22
|
+
}
|
|
23
|
+
return BigInt(Math.round(amountFloat * 1_000_000));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Load identity and derive EVM wallet + address. Shared across all payment commands.
|
|
27
|
+
*/
|
|
28
|
+
export async function loadCryptoContext(dataDir) {
|
|
29
|
+
const identity = await loadOrCreateIdentity(dataDir);
|
|
30
|
+
const wallet = identity.wallet;
|
|
31
|
+
const address = identity.wallet.address;
|
|
32
|
+
return { identity, wallet, address };
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validate that crypto payment config is present and return it.
|
|
36
|
+
* Exits with error if not configured.
|
|
37
|
+
*/
|
|
38
|
+
export function requireCryptoConfig(config) {
|
|
39
|
+
const crypto = config.payments?.crypto;
|
|
40
|
+
if (!crypto) {
|
|
41
|
+
throw new Error('No crypto payment configuration found. Configure payments.crypto in your config file or run: antseed init');
|
|
42
|
+
}
|
|
43
|
+
// Merge with chain-config defaults so commands work with just chainId
|
|
44
|
+
const resolved = resolveChainConfig(crypto);
|
|
45
|
+
return {
|
|
46
|
+
...crypto,
|
|
47
|
+
rpcUrl: crypto.rpcUrl || resolved.rpcUrl,
|
|
48
|
+
usdcContractAddress: crypto.usdcContractAddress || resolved.usdcContractAddress,
|
|
49
|
+
depositsContractAddress: crypto.depositsContractAddress || resolved.depositsContractAddress,
|
|
50
|
+
channelsContractAddress: crypto.channelsContractAddress || resolved.channelsContractAddress,
|
|
51
|
+
stakingContractAddress: crypto.stakingContractAddress || resolved.stakingContractAddress,
|
|
52
|
+
emissionsContractAddress: crypto.emissionsContractAddress || resolved.emissionsContractAddress,
|
|
53
|
+
identityRegistryAddress: crypto.identityRegistryAddress || resolved.identityRegistryAddress,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a DepositsClient from the CLI config.
|
|
58
|
+
*/
|
|
59
|
+
export function createDepositsClient(config) {
|
|
60
|
+
const crypto = requireCryptoConfig(config);
|
|
61
|
+
return new DepositsClient({
|
|
62
|
+
rpcUrl: crypto.rpcUrl,
|
|
63
|
+
contractAddress: crypto.depositsContractAddress,
|
|
64
|
+
usdcAddress: crypto.usdcContractAddress,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create a ChannelsClient from the CLI config.
|
|
69
|
+
*/
|
|
70
|
+
export function createChannelsClient(config) {
|
|
71
|
+
const crypto = requireCryptoConfig(config);
|
|
72
|
+
return new ChannelsClient({
|
|
73
|
+
rpcUrl: crypto.rpcUrl,
|
|
74
|
+
contractAddress: crypto.channelsContractAddress,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create an IdentityClient from the CLI config.
|
|
79
|
+
*/
|
|
80
|
+
export function createIdentityClient(config) {
|
|
81
|
+
const crypto = requireCryptoConfig(config);
|
|
82
|
+
if (!crypto.identityRegistryAddress) {
|
|
83
|
+
throw new Error('No identity registry address configured. Set payments.crypto.identityRegistryAddress in your config file.');
|
|
84
|
+
}
|
|
85
|
+
return new IdentityClient({
|
|
86
|
+
rpcUrl: crypto.rpcUrl,
|
|
87
|
+
contractAddress: crypto.identityRegistryAddress,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create a StakingClient from the CLI config.
|
|
92
|
+
*/
|
|
93
|
+
export function createStakingClient(config) {
|
|
94
|
+
const crypto = requireCryptoConfig(config);
|
|
95
|
+
if (!crypto.stakingContractAddress) {
|
|
96
|
+
throw new Error('No staking contract address configured. Set payments.crypto.stakingContractAddress in your config file.');
|
|
97
|
+
}
|
|
98
|
+
return new StakingClient({
|
|
99
|
+
rpcUrl: crypto.rpcUrl,
|
|
100
|
+
contractAddress: crypto.stakingContractAddress,
|
|
101
|
+
usdcAddress: crypto.usdcContractAddress,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Create an EmissionsClient from the CLI config.
|
|
106
|
+
*/
|
|
107
|
+
export function createEmissionsClient(config) {
|
|
108
|
+
const crypto = requireCryptoConfig(config);
|
|
109
|
+
if (!crypto.emissionsContractAddress) {
|
|
110
|
+
throw new Error('No emissions contract address configured. Set payments.crypto.emissionsContractAddress in your config file.');
|
|
111
|
+
}
|
|
112
|
+
return new EmissionsClient({
|
|
113
|
+
rpcUrl: crypto.rpcUrl,
|
|
114
|
+
contractAddress: crypto.emissionsContractAddress,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Create a SubPoolClient from the CLI config.
|
|
119
|
+
*/
|
|
120
|
+
export function createSubPoolClient(config) {
|
|
121
|
+
const crypto = requireCryptoConfig(config);
|
|
122
|
+
if (!crypto.subPoolContractAddress) {
|
|
123
|
+
throw new Error('No subscription pool contract address configured. Set payments.crypto.subPoolContractAddress in your config file.');
|
|
124
|
+
}
|
|
125
|
+
return new SubPoolClient({
|
|
126
|
+
rpcUrl: crypto.rpcUrl,
|
|
127
|
+
contractAddress: crypto.subPoolContractAddress,
|
|
128
|
+
usdcAddress: crypto.usdcContractAddress,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Open a ChannelStore from the given data directory.
|
|
133
|
+
*/
|
|
134
|
+
export function openChannelStore(dataDir) {
|
|
135
|
+
return new ChannelStore(dataDir);
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=payment-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-utils.js","sourceRoot":"","sources":["../../src/cli/payment-utils.ts"],"names":[],"mappings":"AACA,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,2GAA2G,CAAC,CAAC;IAC/H,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;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type ShutdownCallback = () => Promise<void>;
|
|
2
|
+
/**
|
|
3
|
+
* Register a callback to be called on shutdown (SIGINT/SIGTERM).
|
|
4
|
+
* Multiple callbacks are called in LIFO order (last registered = first called).
|
|
5
|
+
* The process exits after all callbacks complete.
|
|
6
|
+
*
|
|
7
|
+
* @param callback - Async function to run during shutdown
|
|
8
|
+
*/
|
|
9
|
+
export declare function setupShutdownHandler(callback: ShutdownCallback): void;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=shutdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/cli/shutdown.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAK5C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAyBrE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
let shutdownCallbacks = [];
|
|
2
|
+
let isShuttingDown = false;
|
|
3
|
+
/**
|
|
4
|
+
* Register a callback to be called on shutdown (SIGINT/SIGTERM).
|
|
5
|
+
* Multiple callbacks are called in LIFO order (last registered = first called).
|
|
6
|
+
* The process exits after all callbacks complete.
|
|
7
|
+
*
|
|
8
|
+
* @param callback - Async function to run during shutdown
|
|
9
|
+
*/
|
|
10
|
+
export function setupShutdownHandler(callback) {
|
|
11
|
+
shutdownCallbacks.push(callback);
|
|
12
|
+
// Only register signal handlers once
|
|
13
|
+
if (shutdownCallbacks.length === 1) {
|
|
14
|
+
const handler = async () => {
|
|
15
|
+
if (isShuttingDown)
|
|
16
|
+
return; // Prevent double-shutdown
|
|
17
|
+
isShuttingDown = true;
|
|
18
|
+
// Execute callbacks in LIFO order
|
|
19
|
+
const callbacks = [...shutdownCallbacks].reverse();
|
|
20
|
+
for (const cb of callbacks) {
|
|
21
|
+
try {
|
|
22
|
+
await cb();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
console.error('Shutdown error:', err.message);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
process.exit(0);
|
|
29
|
+
};
|
|
30
|
+
process.on('SIGINT', handler);
|
|
31
|
+
process.on('SIGTERM', handler);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/cli/shutdown.ts"],"names":[],"mappings":"AAEA,IAAI,iBAAiB,GAAuB,EAAE,CAAC;AAC/C,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA0B;IAC7D,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjC,qCAAqC;IACrC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,cAAc;gBAAE,OAAO,CAAC,0BAA0B;YACtD,cAAc,GAAG,IAAI,CAAC;YAEtB,kCAAkC;YAClC,MAAM,SAAS,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;YACnD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,EAAE,EAAE,CAAC;gBACb,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a default Antseed configuration with sensible defaults.
|
|
3
|
+
*/
|
|
4
|
+
export function createDefaultConfig() {
|
|
5
|
+
return {
|
|
6
|
+
identity: {
|
|
7
|
+
displayName: 'Antseed Node',
|
|
8
|
+
},
|
|
9
|
+
providers: [],
|
|
10
|
+
seller: {
|
|
11
|
+
reserveFloor: 10,
|
|
12
|
+
maxConcurrentBuyers: 5,
|
|
13
|
+
enabledProviders: [],
|
|
14
|
+
pricing: {
|
|
15
|
+
defaults: {
|
|
16
|
+
inputUsdPerMillion: 10,
|
|
17
|
+
outputUsdPerMillion: 10,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
publicAddress: '',
|
|
21
|
+
},
|
|
22
|
+
buyer: {
|
|
23
|
+
maxPricing: {
|
|
24
|
+
defaults: {
|
|
25
|
+
inputUsdPerMillion: 100,
|
|
26
|
+
outputUsdPerMillion: 100,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
minPeerReputation: 50,
|
|
30
|
+
proxyPort: 8377,
|
|
31
|
+
},
|
|
32
|
+
payments: {
|
|
33
|
+
preferredMethod: 'crypto',
|
|
34
|
+
platformFeeRate: 0.05,
|
|
35
|
+
},
|
|
36
|
+
network: {
|
|
37
|
+
bootstrapNodes: [],
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BuyerCLIConfig, AntseedConfig, SellerCLIConfig } from './types.js';
|
|
2
|
+
export interface SellerRuntimeOverrides {
|
|
3
|
+
reserveFloor?: number;
|
|
4
|
+
inputUsdPerMillion?: number;
|
|
5
|
+
outputUsdPerMillion?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface BuyerRuntimeOverrides {
|
|
8
|
+
proxyPort?: number;
|
|
9
|
+
minPeerReputation?: number;
|
|
10
|
+
maxInputUsdPerMillion?: number;
|
|
11
|
+
maxOutputUsdPerMillion?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ResolveEffectiveConfigInput {
|
|
14
|
+
config: AntseedConfig;
|
|
15
|
+
env?: NodeJS.ProcessEnv;
|
|
16
|
+
sellerOverrides?: SellerRuntimeOverrides;
|
|
17
|
+
buyerOverrides?: BuyerRuntimeOverrides;
|
|
18
|
+
}
|
|
19
|
+
export declare function resolveEffectiveSellerConfig(input: ResolveEffectiveConfigInput): SellerCLIConfig;
|
|
20
|
+
export declare function resolveEffectiveBuyerConfig(input: ResolveEffectiveConfigInput): BuyerCLIConfig;
|
|
21
|
+
export declare function resolveEffectiveRoleConfig(input: ResolveEffectiveConfigInput): {
|
|
22
|
+
seller: SellerCLIConfig;
|
|
23
|
+
buyer: BuyerCLIConfig;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=effective.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
function parseEnvNumber(env, key) {
|
|
2
|
+
const raw = env[key];
|
|
3
|
+
if (raw === undefined)
|
|
4
|
+
return undefined;
|
|
5
|
+
const parsed = Number(raw);
|
|
6
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
7
|
+
}
|
|
8
|
+
export function resolveEffectiveSellerConfig(input) {
|
|
9
|
+
const env = input.env ?? process.env;
|
|
10
|
+
const seller = structuredClone(input.config.seller);
|
|
11
|
+
const envInputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_SELLER_INPUT_USD_PER_MILLION');
|
|
12
|
+
const envOutputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_SELLER_OUTPUT_USD_PER_MILLION');
|
|
13
|
+
if (envInputUsdPerMillion !== undefined) {
|
|
14
|
+
seller.pricing.defaults.inputUsdPerMillion = envInputUsdPerMillion;
|
|
15
|
+
}
|
|
16
|
+
if (envOutputUsdPerMillion !== undefined) {
|
|
17
|
+
seller.pricing.defaults.outputUsdPerMillion = envOutputUsdPerMillion;
|
|
18
|
+
}
|
|
19
|
+
const overrides = input.sellerOverrides;
|
|
20
|
+
if (overrides?.reserveFloor !== undefined) {
|
|
21
|
+
seller.reserveFloor = overrides.reserveFloor;
|
|
22
|
+
}
|
|
23
|
+
if (overrides?.inputUsdPerMillion !== undefined) {
|
|
24
|
+
seller.pricing.defaults.inputUsdPerMillion = overrides.inputUsdPerMillion;
|
|
25
|
+
}
|
|
26
|
+
if (overrides?.outputUsdPerMillion !== undefined) {
|
|
27
|
+
seller.pricing.defaults.outputUsdPerMillion = overrides.outputUsdPerMillion;
|
|
28
|
+
}
|
|
29
|
+
return seller;
|
|
30
|
+
}
|
|
31
|
+
export function resolveEffectiveBuyerConfig(input) {
|
|
32
|
+
const env = input.env ?? process.env;
|
|
33
|
+
const buyer = structuredClone(input.config.buyer);
|
|
34
|
+
const envMinReputation = parseEnvNumber(env, 'ANTSEED_BUYER_MIN_REPUTATION');
|
|
35
|
+
const envMaxInputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_BUYER_MAX_INPUT_USD_PER_MILLION');
|
|
36
|
+
const envMaxOutputUsdPerMillion = parseEnvNumber(env, 'ANTSEED_BUYER_MAX_OUTPUT_USD_PER_MILLION');
|
|
37
|
+
if (envMinReputation !== undefined) {
|
|
38
|
+
buyer.minPeerReputation = envMinReputation;
|
|
39
|
+
}
|
|
40
|
+
if (envMaxInputUsdPerMillion !== undefined) {
|
|
41
|
+
buyer.maxPricing.defaults.inputUsdPerMillion = envMaxInputUsdPerMillion;
|
|
42
|
+
}
|
|
43
|
+
if (envMaxOutputUsdPerMillion !== undefined) {
|
|
44
|
+
buyer.maxPricing.defaults.outputUsdPerMillion = envMaxOutputUsdPerMillion;
|
|
45
|
+
}
|
|
46
|
+
const overrides = input.buyerOverrides;
|
|
47
|
+
if (overrides?.proxyPort !== undefined) {
|
|
48
|
+
buyer.proxyPort = overrides.proxyPort;
|
|
49
|
+
}
|
|
50
|
+
if (overrides?.minPeerReputation !== undefined) {
|
|
51
|
+
buyer.minPeerReputation = overrides.minPeerReputation;
|
|
52
|
+
}
|
|
53
|
+
if (overrides?.maxInputUsdPerMillion !== undefined) {
|
|
54
|
+
buyer.maxPricing.defaults.inputUsdPerMillion = overrides.maxInputUsdPerMillion;
|
|
55
|
+
}
|
|
56
|
+
if (overrides?.maxOutputUsdPerMillion !== undefined) {
|
|
57
|
+
buyer.maxPricing.defaults.outputUsdPerMillion = overrides.maxOutputUsdPerMillion;
|
|
58
|
+
}
|
|
59
|
+
return buyer;
|
|
60
|
+
}
|
|
61
|
+
export function resolveEffectiveRoleConfig(input) {
|
|
62
|
+
return {
|
|
63
|
+
seller: resolveEffectiveSellerConfig(input),
|
|
64
|
+
buyer: resolveEffectiveBuyerConfig(input),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=effective.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.js","sourceRoot":"","sources":["../../src/config/effective.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.test.d.ts","sourceRoot":"","sources":["../../src/config/effective.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { createDefaultConfig } from './defaults.js';
|
|
4
|
+
import { resolveEffectiveBuyerConfig, resolveEffectiveRoleConfig, resolveEffectiveSellerConfig, } from './effective.js';
|
|
5
|
+
test('effective seller config precedence is flags > env > config > defaults', () => {
|
|
6
|
+
const config = createDefaultConfig();
|
|
7
|
+
config.seller.pricing.defaults.inputUsdPerMillion = 10;
|
|
8
|
+
config.seller.pricing.defaults.outputUsdPerMillion = 20;
|
|
9
|
+
const env = {
|
|
10
|
+
ANTSEED_SELLER_INPUT_USD_PER_MILLION: '30',
|
|
11
|
+
ANTSEED_SELLER_OUTPUT_USD_PER_MILLION: '40',
|
|
12
|
+
};
|
|
13
|
+
const effective = resolveEffectiveSellerConfig({
|
|
14
|
+
config,
|
|
15
|
+
env,
|
|
16
|
+
sellerOverrides: {
|
|
17
|
+
inputUsdPerMillion: 50,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
assert.equal(effective.pricing.defaults.inputUsdPerMillion, 50);
|
|
21
|
+
assert.equal(effective.pricing.defaults.outputUsdPerMillion, 40);
|
|
22
|
+
});
|
|
23
|
+
test('effective buyer config precedence is flags > env > config > defaults', () => {
|
|
24
|
+
const config = createDefaultConfig();
|
|
25
|
+
config.buyer.minPeerReputation = 25;
|
|
26
|
+
config.buyer.maxPricing.defaults.inputUsdPerMillion = 70;
|
|
27
|
+
config.buyer.maxPricing.defaults.outputUsdPerMillion = 80;
|
|
28
|
+
const env = {
|
|
29
|
+
ANTSEED_BUYER_MIN_REPUTATION: '45',
|
|
30
|
+
ANTSEED_BUYER_MAX_INPUT_USD_PER_MILLION: '90',
|
|
31
|
+
ANTSEED_BUYER_MAX_OUTPUT_USD_PER_MILLION: '95',
|
|
32
|
+
};
|
|
33
|
+
const effective = resolveEffectiveBuyerConfig({
|
|
34
|
+
config,
|
|
35
|
+
env,
|
|
36
|
+
buyerOverrides: {
|
|
37
|
+
minPeerReputation: 55,
|
|
38
|
+
maxOutputUsdPerMillion: 99,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
assert.equal(effective.minPeerReputation, 55);
|
|
42
|
+
assert.equal(effective.maxPricing.defaults.inputUsdPerMillion, 90);
|
|
43
|
+
assert.equal(effective.maxPricing.defaults.outputUsdPerMillion, 99);
|
|
44
|
+
});
|
|
45
|
+
test('effective config resolution does not mutate loaded config', () => {
|
|
46
|
+
const config = createDefaultConfig();
|
|
47
|
+
const original = JSON.parse(JSON.stringify(config));
|
|
48
|
+
const env = {
|
|
49
|
+
ANTSEED_BUYER_MAX_INPUT_USD_PER_MILLION: '123',
|
|
50
|
+
};
|
|
51
|
+
const effective = resolveEffectiveRoleConfig({
|
|
52
|
+
config,
|
|
53
|
+
env,
|
|
54
|
+
sellerOverrides: {
|
|
55
|
+
outputUsdPerMillion: 44,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
assert.equal(effective.buyer.maxPricing.defaults.inputUsdPerMillion, 123);
|
|
59
|
+
assert.equal(effective.seller.pricing.defaults.outputUsdPerMillion, 44);
|
|
60
|
+
assert.deepEqual(config, original);
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=effective.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective.test.js","sourceRoot":"","sources":["../../src/config/effective.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AntseedConfig } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Load configuration from a JSON file.
|
|
4
|
+
* Returns default configuration if the file does not exist.
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadConfig(configPath: string): Promise<AntseedConfig>;
|
|
7
|
+
/**
|
|
8
|
+
* Save configuration to a JSON file.
|
|
9
|
+
* Creates the directory if it doesn't exist.
|
|
10
|
+
*/
|
|
11
|
+
export declare function saveConfig(configPath: string, config: AntseedConfig): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,YAAY,CAAC;AAuPpB;;;GAGG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgD3E;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzF"}
|