@antseed/cli 0.1.60 → 0.1.61
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/package.json +3 -3
- package/dist/cli/commands/agent.d.ts +0 -3
- package/dist/cli/commands/agent.d.ts.map +0 -1
- package/dist/cli/commands/agent.js +0 -165
- package/dist/cli/commands/agent.js.map +0 -1
- 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 +0 -62
- 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 +0 -46
- 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 +0 -103
- 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 +0 -79
- package/dist/cli/commands/channels.js.map +0 -1
- package/dist/cli/commands/config.d.ts +0 -20
- 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 +0 -13
- package/dist/cli/commands/connect.d.ts.map +0 -1
- package/dist/cli/commands/connect.js +0 -402
- 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 +0 -52
- 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 +0 -128
- package/dist/cli/commands/connection.js.map +0 -1
- package/dist/cli/commands/dashboard.d.ts +0 -6
- package/dist/cli/commands/dashboard.d.ts.map +0 -1
- package/dist/cli/commands/dashboard.js +0 -48
- package/dist/cli/commands/dashboard.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 +0 -38
- package/dist/cli/commands/deposit.js.map +0 -1
- package/dist/cli/commands/dev.d.ts +0 -3
- package/dist/cli/commands/dev.d.ts.map +0 -1
- package/dist/cli/commands/dev.js +0 -94
- package/dist/cli/commands/dev.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 +0 -80
- 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/payments.d.ts +0 -3
- package/dist/cli/commands/payments.d.ts.map +0 -1
- package/dist/cli/commands/payments.js +0 -26
- package/dist/cli/commands/payments.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 +0 -10
- package/dist/cli/commands/profile.d.ts.map +0 -1
- package/dist/cli/commands/profile.js +0 -89
- 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 +0 -35
- 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 +0 -500
- 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 +0 -83
- 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 +0 -96
- package/dist/cli/commands/subscribe.js.map +0 -1
- package/dist/cli/commands/types.d.ts +0 -14
- package/dist/cli/commands/types.d.ts.map +0 -1
- package/dist/cli/commands/types.js +0 -41
- package/dist/cli/commands/types.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 +0 -48
- package/dist/cli/commands/withdraw.js.map +0 -1
- package/dist/cli/formatters.d.ts +0 -29
- package/dist/cli/formatters.d.ts.map +0 -1
- package/dist/cli/formatters.js +0 -67
- package/dist/cli/formatters.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -63
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/payment-utils.d.ts +0 -53
- package/dist/cli/payment-utils.d.ts.map +0 -1
- package/dist/cli/payment-utils.js +0 -137
- package/dist/cli/payment-utils.js.map +0 -1
- package/dist/cli/shutdown.d.ts +0 -11
- package/dist/cli/shutdown.d.ts.map +0 -1
- package/dist/cli/shutdown.js +0 -34
- package/dist/cli/shutdown.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -6
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -53
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/effective.d.ts +0 -25
- package/dist/config/effective.d.ts.map +0 -1
- package/dist/config/effective.js +0 -67
- package/dist/config/effective.js.map +0 -1
- package/dist/config/effective.test.d.ts +0 -2
- package/dist/config/effective.test.d.ts.map +0 -1
- package/dist/config/effective.test.js +0 -62
- package/dist/config/effective.test.js.map +0 -1
- package/dist/config/loader.d.ts +0 -12
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -269
- package/dist/config/loader.js.map +0 -1
- package/dist/config/loader.test.d.ts +0 -2
- package/dist/config/loader.test.d.ts.map +0 -1
- package/dist/config/loader.test.js +0 -124
- package/dist/config/loader.test.js.map +0 -1
- package/dist/config/types.d.ts +0 -167
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -2
- package/dist/config/types.js.map +0 -1
- package/dist/config/validation.d.ts +0 -10
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/config/validation.js +0 -130
- package/dist/config/validation.js.map +0 -1
- package/dist/env/load-env.d.ts +0 -6
- package/dist/env/load-env.d.ts.map +0 -1
- package/dist/env/load-env.js +0 -18
- package/dist/env/load-env.js.map +0 -1
- package/dist/plugins/loader.d.ts +0 -12
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js +0 -111
- package/dist/plugins/loader.js.map +0 -1
- package/dist/plugins/manager.d.ts +0 -11
- package/dist/plugins/manager.d.ts.map +0 -1
- package/dist/plugins/manager.js +0 -52
- package/dist/plugins/manager.js.map +0 -1
- package/dist/plugins/registry.d.ts +0 -8
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -45
- package/dist/plugins/registry.js.map +0 -1
- package/dist/proxy/buyer-proxy.d.ts +0 -82
- package/dist/proxy/buyer-proxy.d.ts.map +0 -1
- package/dist/proxy/buyer-proxy.js +0 -1056
- package/dist/proxy/buyer-proxy.js.map +0 -1
- package/dist/proxy/buyer-proxy.test.d.ts +0 -2
- package/dist/proxy/buyer-proxy.test.d.ts.map +0 -1
- package/dist/proxy/buyer-proxy.test.js +0 -124
- package/dist/proxy/buyer-proxy.test.js.map +0 -1
- package/dist/proxy/request-utils.d.ts +0 -21
- package/dist/proxy/request-utils.d.ts.map +0 -1
- package/dist/proxy/request-utils.js +0 -237
- package/dist/proxy/request-utils.js.map +0 -1
- package/dist/proxy/routing.d.ts +0 -17
- package/dist/proxy/routing.d.ts.map +0 -1
- package/dist/proxy/routing.js +0 -115
- package/dist/proxy/routing.js.map +0 -1
- package/dist/proxy/service-api-adapter.d.ts +0 -3
- package/dist/proxy/service-api-adapter.d.ts.map +0 -1
- package/dist/proxy/service-api-adapter.js +0 -2
- package/dist/proxy/service-api-adapter.js.map +0 -1
- package/dist/proxy/service-api-adapter.test.d.ts +0 -2
- package/dist/proxy/service-api-adapter.test.d.ts.map +0 -1
- package/dist/proxy/service-api-adapter.test.js +0 -121
- package/dist/proxy/service-api-adapter.test.js.map +0 -1
- package/dist/proxy/telemetry.d.ts +0 -23
- package/dist/proxy/telemetry.d.ts.map +0 -1
- package/dist/proxy/telemetry.js +0 -227
- package/dist/proxy/telemetry.js.map +0 -1
- package/dist/status/node-status.d.ts +0 -22
- package/dist/status/node-status.d.ts.map +0 -1
- package/dist/status/node-status.js +0 -83
- package/dist/status/node-status.js.map +0 -1
package/dist/config/loader.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
-
import { dirname, resolve } from 'node:path';
|
|
3
|
-
import { homedir } from 'node:os';
|
|
4
|
-
import { createDefaultConfig } from './defaults.js';
|
|
5
|
-
import { assertValidConfig } from './validation.js';
|
|
6
|
-
/**
|
|
7
|
-
* Resolve a config path, expanding ~ to the user's home directory.
|
|
8
|
-
*/
|
|
9
|
-
function resolveConfigPath(configPath) {
|
|
10
|
-
if (configPath.startsWith('~')) {
|
|
11
|
-
return resolve(homedir(), configPath.slice(2));
|
|
12
|
-
}
|
|
13
|
-
return resolve(configPath);
|
|
14
|
-
}
|
|
15
|
-
function isRecord(value) {
|
|
16
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
-
}
|
|
18
|
-
function toFiniteOrNaN(value) {
|
|
19
|
-
return typeof value === 'number' ? value : Number.NaN;
|
|
20
|
-
}
|
|
21
|
-
function clonePricing(pricing) {
|
|
22
|
-
return {
|
|
23
|
-
inputUsdPerMillion: pricing.inputUsdPerMillion,
|
|
24
|
-
outputUsdPerMillion: pricing.outputUsdPerMillion,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function normalizeTokenPricing(value) {
|
|
28
|
-
if (!isRecord(value))
|
|
29
|
-
return null;
|
|
30
|
-
return {
|
|
31
|
-
inputUsdPerMillion: toFiniteOrNaN(value['inputUsdPerMillion']),
|
|
32
|
-
outputUsdPerMillion: toFiniteOrNaN(value['outputUsdPerMillion']),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
function mergeTokenPricing(defaults, value) {
|
|
36
|
-
if (!isRecord(value)) {
|
|
37
|
-
return clonePricing(defaults);
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
inputUsdPerMillion: typeof value['inputUsdPerMillion'] === 'number'
|
|
41
|
-
? value['inputUsdPerMillion']
|
|
42
|
-
: defaults.inputUsdPerMillion,
|
|
43
|
-
outputUsdPerMillion: typeof value['outputUsdPerMillion'] === 'number'
|
|
44
|
-
? value['outputUsdPerMillion']
|
|
45
|
-
: defaults.outputUsdPerMillion,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function cloneProviderPricing(providers) {
|
|
49
|
-
if (!providers)
|
|
50
|
-
return undefined;
|
|
51
|
-
const out = {};
|
|
52
|
-
for (const [provider, cfg] of Object.entries(providers)) {
|
|
53
|
-
out[provider] = {
|
|
54
|
-
...(cfg.defaults ? { defaults: clonePricing(cfg.defaults) } : {}),
|
|
55
|
-
...(cfg.services ? { services: { ...cfg.services } } : {}),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return out;
|
|
59
|
-
}
|
|
60
|
-
function mergeServicePricing(defaults, value) {
|
|
61
|
-
const out = {
|
|
62
|
-
...(defaults ?? {}),
|
|
63
|
-
};
|
|
64
|
-
if (isRecord(value)) {
|
|
65
|
-
for (const [service, rawPricing] of Object.entries(value)) {
|
|
66
|
-
const parsed = normalizeTokenPricing(rawPricing);
|
|
67
|
-
if (parsed) {
|
|
68
|
-
out[service] = parsed;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
73
|
-
}
|
|
74
|
-
function mergeProviderPricing(defaults, value) {
|
|
75
|
-
const out = cloneProviderPricing(defaults) ?? {};
|
|
76
|
-
if (isRecord(value)) {
|
|
77
|
-
for (const [provider, rawCfg] of Object.entries(value)) {
|
|
78
|
-
if (!isRecord(rawCfg))
|
|
79
|
-
continue;
|
|
80
|
-
const existing = out[provider];
|
|
81
|
-
const parsedDefaults = normalizeTokenPricing(rawCfg['defaults']);
|
|
82
|
-
const next = {
|
|
83
|
-
...(parsedDefaults ? { defaults: parsedDefaults } : (existing?.defaults ? { defaults: existing.defaults } : {})),
|
|
84
|
-
};
|
|
85
|
-
const mergedServices = mergeServicePricing(existing?.services, rawCfg['services']);
|
|
86
|
-
if (mergedServices) {
|
|
87
|
-
next.services = mergedServices;
|
|
88
|
-
}
|
|
89
|
-
if (next.defaults || next.services) {
|
|
90
|
-
out[provider] = next;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
95
|
-
}
|
|
96
|
-
function mergeHierarchicalPricing(defaults, value) {
|
|
97
|
-
if (!isRecord(value)) {
|
|
98
|
-
return {
|
|
99
|
-
defaults: clonePricing(defaults.defaults),
|
|
100
|
-
...(defaults.providers ? { providers: cloneProviderPricing(defaults.providers) } : {}),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
const mergedProviders = mergeProviderPricing(defaults.providers, value['providers']);
|
|
104
|
-
return {
|
|
105
|
-
defaults: mergeTokenPricing(defaults.defaults, value['defaults']),
|
|
106
|
-
...(mergedProviders ? { providers: mergedProviders } : {}),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
function cloneSellerServiceCategories(categories) {
|
|
110
|
-
if (!categories)
|
|
111
|
-
return undefined;
|
|
112
|
-
const out = {};
|
|
113
|
-
for (const [provider, services] of Object.entries(categories)) {
|
|
114
|
-
out[provider] = Object.fromEntries(Object.entries(services).map(([service, tags]) => [service, [...tags]]));
|
|
115
|
-
}
|
|
116
|
-
return out;
|
|
117
|
-
}
|
|
118
|
-
function mergeSellerServiceCategories(defaults, value) {
|
|
119
|
-
const out = cloneSellerServiceCategories(defaults) ?? {};
|
|
120
|
-
if (!isRecord(value)) {
|
|
121
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
122
|
-
}
|
|
123
|
-
for (const [provider, rawProvider] of Object.entries(value)) {
|
|
124
|
-
if (!isRecord(rawProvider))
|
|
125
|
-
continue;
|
|
126
|
-
const nextServices = {
|
|
127
|
-
...(out[provider] ?? {}),
|
|
128
|
-
};
|
|
129
|
-
for (const [service, rawCategories] of Object.entries(rawProvider)) {
|
|
130
|
-
if (!Array.isArray(rawCategories))
|
|
131
|
-
continue;
|
|
132
|
-
const normalizedCategories = rawCategories
|
|
133
|
-
.filter((entry) => typeof entry === 'string')
|
|
134
|
-
.map((entry) => entry.trim())
|
|
135
|
-
.filter((entry) => entry.length > 0);
|
|
136
|
-
if (normalizedCategories.length > 0) {
|
|
137
|
-
nextServices[service] = normalizedCategories;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (Object.keys(nextServices).length > 0) {
|
|
141
|
-
out[provider] = nextServices;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return Object.keys(out).length > 0 ? out : undefined;
|
|
145
|
-
}
|
|
146
|
-
function normalizeAgentDir(value, fallback) {
|
|
147
|
-
if (typeof value === 'string')
|
|
148
|
-
return { agentDir: value };
|
|
149
|
-
if (isRecord(value)) {
|
|
150
|
-
// Per-service map: { "service-id": "./path", ... }
|
|
151
|
-
const map = {};
|
|
152
|
-
for (const [key, val] of Object.entries(value)) {
|
|
153
|
-
if (typeof val === 'string')
|
|
154
|
-
map[key] = val;
|
|
155
|
-
}
|
|
156
|
-
if (Object.keys(map).length > 0)
|
|
157
|
-
return { agentDir: map };
|
|
158
|
-
}
|
|
159
|
-
return fallback ? { agentDir: fallback } : {};
|
|
160
|
-
}
|
|
161
|
-
function mergeSellerConfig(defaults, value) {
|
|
162
|
-
if (!isRecord(value)) {
|
|
163
|
-
return {
|
|
164
|
-
reserveFloor: defaults.reserveFloor,
|
|
165
|
-
maxConcurrentBuyers: defaults.maxConcurrentBuyers,
|
|
166
|
-
enabledProviders: [...defaults.enabledProviders],
|
|
167
|
-
pricing: mergeHierarchicalPricing(defaults.pricing, undefined),
|
|
168
|
-
publicAddress: defaults.publicAddress,
|
|
169
|
-
...(defaults.agentDir ? { agentDir: defaults.agentDir } : {}),
|
|
170
|
-
...(defaults.serviceCategories ? { serviceCategories: cloneSellerServiceCategories(defaults.serviceCategories) } : {}),
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
const mergedServiceCategories = mergeSellerServiceCategories(defaults.serviceCategories, value['serviceCategories']);
|
|
174
|
-
return {
|
|
175
|
-
reserveFloor: typeof value['reserveFloor'] === 'number'
|
|
176
|
-
? value['reserveFloor']
|
|
177
|
-
: defaults.reserveFloor,
|
|
178
|
-
maxConcurrentBuyers: typeof value['maxConcurrentBuyers'] === 'number'
|
|
179
|
-
? value['maxConcurrentBuyers']
|
|
180
|
-
: defaults.maxConcurrentBuyers,
|
|
181
|
-
enabledProviders: Array.isArray(value['enabledProviders'])
|
|
182
|
-
? value['enabledProviders'].filter((entry) => typeof entry === 'string')
|
|
183
|
-
: [...defaults.enabledProviders],
|
|
184
|
-
pricing: mergeHierarchicalPricing(defaults.pricing, value['pricing']),
|
|
185
|
-
publicAddress: typeof value['publicAddress'] === 'string'
|
|
186
|
-
? value['publicAddress']
|
|
187
|
-
: defaults.publicAddress,
|
|
188
|
-
...(normalizeAgentDir(value['agentDir'], defaults.agentDir)),
|
|
189
|
-
...(mergedServiceCategories ? { serviceCategories: mergedServiceCategories } : {}),
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
function mergeBuyerConfig(defaults, value) {
|
|
193
|
-
if (!isRecord(value)) {
|
|
194
|
-
return {
|
|
195
|
-
maxPricing: mergeHierarchicalPricing(defaults.maxPricing, undefined),
|
|
196
|
-
minPeerReputation: defaults.minPeerReputation,
|
|
197
|
-
proxyPort: defaults.proxyPort,
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
return {
|
|
201
|
-
maxPricing: mergeHierarchicalPricing(defaults.maxPricing, value['maxPricing']),
|
|
202
|
-
minPeerReputation: typeof value['minPeerReputation'] === 'number'
|
|
203
|
-
? value['minPeerReputation']
|
|
204
|
-
: defaults.minPeerReputation,
|
|
205
|
-
proxyPort: typeof value['proxyPort'] === 'number'
|
|
206
|
-
? value['proxyPort']
|
|
207
|
-
: defaults.proxyPort,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Load configuration from a JSON file.
|
|
212
|
-
* Returns default configuration if the file does not exist.
|
|
213
|
-
*/
|
|
214
|
-
export async function loadConfig(configPath) {
|
|
215
|
-
const resolved = resolveConfigPath(configPath);
|
|
216
|
-
let raw;
|
|
217
|
-
try {
|
|
218
|
-
raw = await readFile(resolved, 'utf-8');
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
if (err.code === 'ENOENT') {
|
|
222
|
-
return createDefaultConfig();
|
|
223
|
-
}
|
|
224
|
-
throw err;
|
|
225
|
-
}
|
|
226
|
-
let parsedRaw;
|
|
227
|
-
try {
|
|
228
|
-
parsedRaw = JSON.parse(raw);
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
console.warn(`Warning: Could not parse config at ${resolved}. Using defaults.`);
|
|
232
|
-
return createDefaultConfig();
|
|
233
|
-
}
|
|
234
|
-
const defaults = createDefaultConfig();
|
|
235
|
-
const parsed = isRecord(parsedRaw) ? parsedRaw : {};
|
|
236
|
-
const merged = {
|
|
237
|
-
...defaults,
|
|
238
|
-
...parsed,
|
|
239
|
-
identity: {
|
|
240
|
-
...defaults.identity,
|
|
241
|
-
...(isRecord(parsed['identity']) ? parsed['identity'] : {}),
|
|
242
|
-
},
|
|
243
|
-
seller: mergeSellerConfig(defaults.seller, parsed['seller']),
|
|
244
|
-
buyer: mergeBuyerConfig(defaults.buyer, parsed['buyer']),
|
|
245
|
-
payments: {
|
|
246
|
-
...defaults.payments,
|
|
247
|
-
...(isRecord(parsed['payments']) ? parsed['payments'] : {}),
|
|
248
|
-
},
|
|
249
|
-
network: {
|
|
250
|
-
...defaults.network,
|
|
251
|
-
...(isRecord(parsed['network']) ? parsed['network'] : {}),
|
|
252
|
-
},
|
|
253
|
-
providers: Array.isArray(parsed['providers'])
|
|
254
|
-
? parsed['providers']
|
|
255
|
-
: defaults.providers,
|
|
256
|
-
};
|
|
257
|
-
assertValidConfig(merged);
|
|
258
|
-
return merged;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Save configuration to a JSON file.
|
|
262
|
-
* Creates the directory if it doesn't exist.
|
|
263
|
-
*/
|
|
264
|
-
export async function saveConfig(configPath, config) {
|
|
265
|
-
const resolved = resolveConfigPath(configPath);
|
|
266
|
-
await mkdir(dirname(resolved), { recursive: true });
|
|
267
|
-
await writeFile(resolved, JSON.stringify(config, null, 2), 'utf-8');
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.d.ts","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import assert from 'node:assert/strict';
|
|
2
|
-
import test from 'node:test';
|
|
3
|
-
import { mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { tmpdir } from 'node:os';
|
|
6
|
-
import { loadConfig } from './loader.js';
|
|
7
|
-
async function withTempConfig(contents, fn) {
|
|
8
|
-
const dir = await mkdtemp(join(tmpdir(), 'antseed-cli-config-'));
|
|
9
|
-
const configPath = join(dir, 'config.json');
|
|
10
|
-
try {
|
|
11
|
-
await writeFile(configPath, contents, 'utf-8');
|
|
12
|
-
await fn(configPath);
|
|
13
|
-
}
|
|
14
|
-
finally {
|
|
15
|
-
await rm(dir, { recursive: true, force: true });
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
test('loadConfig deep-merges nested hierarchical pricing without dropping defaults', async () => {
|
|
19
|
-
await withTempConfig(JSON.stringify({
|
|
20
|
-
seller: {
|
|
21
|
-
pricing: {
|
|
22
|
-
providers: {
|
|
23
|
-
anthropic: {
|
|
24
|
-
services: {
|
|
25
|
-
'claude-sonnet-4-5-20250929': {
|
|
26
|
-
inputUsdPerMillion: 12,
|
|
27
|
-
outputUsdPerMillion: 18,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
buyer: {
|
|
35
|
-
maxPricing: {
|
|
36
|
-
providers: {
|
|
37
|
-
openai: {
|
|
38
|
-
defaults: {
|
|
39
|
-
inputUsdPerMillion: 55,
|
|
40
|
-
outputUsdPerMillion: 77,
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
}), async (configPath) => {
|
|
47
|
-
const config = await loadConfig(configPath);
|
|
48
|
-
assert.equal(config.seller.pricing.defaults.inputUsdPerMillion, 10);
|
|
49
|
-
assert.equal(config.seller.pricing.defaults.outputUsdPerMillion, 10);
|
|
50
|
-
assert.equal(config.seller.pricing.providers?.anthropic?.services?.['claude-sonnet-4-5-20250929']?.inputUsdPerMillion, 12);
|
|
51
|
-
assert.equal(config.seller.pricing.providers?.anthropic?.services?.['claude-sonnet-4-5-20250929']?.outputUsdPerMillion, 18);
|
|
52
|
-
assert.equal(config.buyer.maxPricing.defaults.inputUsdPerMillion, 100);
|
|
53
|
-
assert.equal(config.buyer.maxPricing.defaults.outputUsdPerMillion, 100);
|
|
54
|
-
assert.equal(config.buyer.maxPricing.providers?.openai?.defaults?.inputUsdPerMillion, 55);
|
|
55
|
-
assert.equal(config.buyer.maxPricing.providers?.openai?.defaults?.outputUsdPerMillion, 77);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
test('loadConfig throws explicit validation error for incomplete service pricing', async () => {
|
|
59
|
-
await withTempConfig(JSON.stringify({
|
|
60
|
-
seller: {
|
|
61
|
-
pricing: {
|
|
62
|
-
providers: {
|
|
63
|
-
anthropic: {
|
|
64
|
-
services: {
|
|
65
|
-
broken: {
|
|
66
|
-
inputUsdPerMillion: 12,
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
}), async (configPath) => {
|
|
74
|
-
await assert.rejects(async () => loadConfig(configPath), /seller\.pricing\.providers\.anthropic\.services\.broken\.outputUsdPerMillion/);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
test('loadConfig merges seller service categories per provider/service', async () => {
|
|
78
|
-
await withTempConfig(JSON.stringify({
|
|
79
|
-
seller: {
|
|
80
|
-
serviceCategories: {
|
|
81
|
-
anthropic: {
|
|
82
|
-
'claude-sonnet-4-5-20250929': ['coding', 'legal'],
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
}), async (configPath) => {
|
|
87
|
-
const config = await loadConfig(configPath);
|
|
88
|
-
assert.deepEqual(config.seller.serviceCategories?.anthropic?.['claude-sonnet-4-5-20250929'], ['coding', 'legal']);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
test('loadConfig rejects invalid seller service category values', async () => {
|
|
92
|
-
await withTempConfig(JSON.stringify({
|
|
93
|
-
seller: {
|
|
94
|
-
serviceCategories: {
|
|
95
|
-
anthropic: {
|
|
96
|
-
'claude-sonnet-4-5-20250929': ['Bad Value'],
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
}), async (configPath) => {
|
|
101
|
-
await assert.rejects(async () => loadConfig(configPath), /seller\.serviceCategories\.anthropic\.claude-sonnet-4-5-20250929/);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
test('loadConfig preserves seller publicAddress override', async () => {
|
|
105
|
-
await withTempConfig(JSON.stringify({
|
|
106
|
-
seller: {
|
|
107
|
-
publicAddress: 'peer.example.com:6882',
|
|
108
|
-
},
|
|
109
|
-
}), async (configPath) => {
|
|
110
|
-
const config = await loadConfig(configPath);
|
|
111
|
-
assert.equal(config.seller.publicAddress, 'peer.example.com:6882');
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
test('loadConfig preserves seller agentDir setting', async () => {
|
|
115
|
-
await withTempConfig(JSON.stringify({
|
|
116
|
-
seller: {
|
|
117
|
-
agentDir: '/etc/antseed/my-agent',
|
|
118
|
-
},
|
|
119
|
-
}), async (configPath) => {
|
|
120
|
-
const config = await loadConfig(configPath);
|
|
121
|
-
assert.equal(config.seller.agentDir, '/etc/antseed/my-agent');
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
//# sourceMappingURL=loader.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import type { ProviderType } from '@antseed/node';
|
|
2
|
-
/**
|
|
3
|
-
* Provider configuration for the Antseed config file.
|
|
4
|
-
* This is distinct from the provider.ts ProviderConfig used internally.
|
|
5
|
-
*/
|
|
6
|
-
export interface CLIProviderConfig {
|
|
7
|
-
/** Provider type identifier */
|
|
8
|
-
type: ProviderType;
|
|
9
|
-
/** API endpoint URL */
|
|
10
|
-
endpoint: string;
|
|
11
|
-
/** Name of the HTTP header used for authentication */
|
|
12
|
-
authHeaderName: string;
|
|
13
|
-
/** Auth token / API key value */
|
|
14
|
-
authValue: string;
|
|
15
|
-
/** Auth type: 'apikey' (default), 'oauth' (with refresh), or 'claude-code' (read from keychain) */
|
|
16
|
-
authType?: 'apikey' | 'oauth' | 'claude-code';
|
|
17
|
-
/** OAuth refresh token (required when authType is 'oauth') */
|
|
18
|
-
refreshToken?: string;
|
|
19
|
-
/** Token expiration timestamp in epoch ms (used with authType 'oauth') */
|
|
20
|
-
expiresAt?: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Re-export ProviderType for convenience in config commands.
|
|
24
|
-
*/
|
|
25
|
-
export type { ProviderType } from '@antseed/node';
|
|
26
|
-
/**
|
|
27
|
-
* Dual token pricing in USD per 1M tokens.
|
|
28
|
-
*/
|
|
29
|
-
export interface TokenPricingUsdPerMillion {
|
|
30
|
-
inputUsdPerMillion: number;
|
|
31
|
-
outputUsdPerMillion: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Provider-level optional defaults and per-service overrides.
|
|
35
|
-
*/
|
|
36
|
-
export interface ProviderPricingConfig {
|
|
37
|
-
defaults?: TokenPricingUsdPerMillion;
|
|
38
|
-
services?: Record<string, TokenPricingUsdPerMillion>;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Hierarchical pricing with global defaults and optional provider/service overrides.
|
|
42
|
-
*/
|
|
43
|
-
export interface HierarchicalPricingConfig {
|
|
44
|
-
defaults: TokenPricingUsdPerMillion;
|
|
45
|
-
providers?: Record<string, ProviderPricingConfig>;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Optional provider/service category tags for metadata discovery.
|
|
49
|
-
*/
|
|
50
|
-
export interface SellerServiceCategoryConfig {
|
|
51
|
-
[provider: string]: Record<string, string[]>;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Seller-specific configuration within the Antseed config.
|
|
55
|
-
*/
|
|
56
|
-
export interface SellerCLIConfig {
|
|
57
|
-
/** Reserve floor in messages per hour to keep for yourself */
|
|
58
|
-
reserveFloor: number;
|
|
59
|
-
/** Maximum number of concurrent buyer connections */
|
|
60
|
-
maxConcurrentBuyers: number;
|
|
61
|
-
/** Which provider types are enabled for selling */
|
|
62
|
-
enabledProviders: string[];
|
|
63
|
-
/** Seller offer pricing rules in USD per 1M tokens */
|
|
64
|
-
pricing: HierarchicalPricingConfig;
|
|
65
|
-
/** Optional provider/service category tags announced in peer metadata */
|
|
66
|
-
serviceCategories?: SellerServiceCategoryConfig;
|
|
67
|
-
/**
|
|
68
|
-
* Ant agent configuration. Can be:
|
|
69
|
-
* - A string path to a single agent directory (applies to all services)
|
|
70
|
-
* - A record mapping service IDs to agent directory paths (per-service agents).
|
|
71
|
-
* Use `"*"` key as a fallback for unmatched services.
|
|
72
|
-
*
|
|
73
|
-
* Each directory must contain an `agent.json` manifest.
|
|
74
|
-
* Relative paths are resolved from the config file's directory.
|
|
75
|
-
*/
|
|
76
|
-
agentDir?: string | Record<string, string>;
|
|
77
|
-
/** Publicly reachable seller address override announced in metadata, e.g. "peer.example.com:6882". */
|
|
78
|
-
publicAddress?: string;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Buyer-specific configuration within the Antseed config.
|
|
82
|
-
*/
|
|
83
|
-
export interface BuyerCLIConfig {
|
|
84
|
-
/** Buyer max willing-to-pay rules in USD per 1M tokens */
|
|
85
|
-
maxPricing: HierarchicalPricingConfig;
|
|
86
|
-
/** Minimum peer reputation score (0-100) */
|
|
87
|
-
minPeerReputation: number;
|
|
88
|
-
/** Local proxy listen port */
|
|
89
|
-
proxyPort: number;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Payment configuration within the Antseed config.
|
|
93
|
-
*/
|
|
94
|
-
export interface PaymentsCLIConfig {
|
|
95
|
-
/** Preferred payment method */
|
|
96
|
-
preferredMethod: 'crypto';
|
|
97
|
-
/** Platform fee rate (0-1) */
|
|
98
|
-
platformFeeRate: number;
|
|
99
|
-
/** Minimum USDC per request in base units (seller). Default: "10000" ($0.01). */
|
|
100
|
-
minBudgetPerRequest?: string;
|
|
101
|
-
/** Maximum USDC the buyer authorizes per single request in base units. Default: "100000" ($0.10). */
|
|
102
|
-
maxPerRequestUsdc?: string;
|
|
103
|
-
/** Maximum total USDC the buyer will reserve in a single SpendingAuth in base units. Default: "1000000" ($1.00). */
|
|
104
|
-
maxReserveAmountUsdc?: string;
|
|
105
|
-
/** Optional crypto settlement settings (Base network) */
|
|
106
|
-
crypto?: {
|
|
107
|
-
/** Chain identifier */
|
|
108
|
-
chainId: 'base-local' | 'base-sepolia' | 'base-mainnet';
|
|
109
|
-
/** Base JSON-RPC URL (e.g. http://127.0.0.1:8545 for local anvil) */
|
|
110
|
-
rpcUrl: string;
|
|
111
|
-
/** Deployed AntseedDeposits contract address */
|
|
112
|
-
depositsContractAddress: string;
|
|
113
|
-
/** Deployed AntseedChannels contract address */
|
|
114
|
-
channelsContractAddress: string;
|
|
115
|
-
/** Deployed AntseedStaking contract address */
|
|
116
|
-
stakingContractAddress?: string;
|
|
117
|
-
/** USDC token contract address */
|
|
118
|
-
usdcContractAddress: string;
|
|
119
|
-
/** Deployed AntseedIdentity (ERC-8004 registry) contract address */
|
|
120
|
-
identityRegistryAddress?: string;
|
|
121
|
-
/** Deployed AntseedEmissions contract address */
|
|
122
|
-
emissionsContractAddress?: string;
|
|
123
|
-
/** Deployed AntseedSubPool contract address */
|
|
124
|
-
subPoolContractAddress?: string;
|
|
125
|
-
/** Default lock amount per session in human-readable USDC (e.g. "1" = 1 USDC) */
|
|
126
|
-
defaultLockAmountUSDC?: string;
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Network configuration within the Antseed config.
|
|
131
|
-
*/
|
|
132
|
-
export interface NetworkCLIConfig {
|
|
133
|
-
/** Additional bootstrap nodes for DHT discovery (host:port pairs) */
|
|
134
|
-
bootstrapNodes: string[];
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Top-level Antseed configuration structure.
|
|
138
|
-
*/
|
|
139
|
-
export interface AntseedConfig {
|
|
140
|
-
/** Node identity information (peer ID, display name) */
|
|
141
|
-
identity: {
|
|
142
|
-
displayName: string;
|
|
143
|
-
walletAddress?: string;
|
|
144
|
-
};
|
|
145
|
-
/** Configured LLM provider credentials */
|
|
146
|
-
providers: CLIProviderConfig[];
|
|
147
|
-
/** Seller mode settings */
|
|
148
|
-
seller: SellerCLIConfig;
|
|
149
|
-
/** Buyer mode settings */
|
|
150
|
-
buyer: BuyerCLIConfig;
|
|
151
|
-
/** Payment settings */
|
|
152
|
-
payments: PaymentsCLIConfig;
|
|
153
|
-
/** Network / DHT settings */
|
|
154
|
-
network: NetworkCLIConfig;
|
|
155
|
-
/** Installed plugins */
|
|
156
|
-
plugins?: {
|
|
157
|
-
name: string;
|
|
158
|
-
package: string;
|
|
159
|
-
installedAt: string;
|
|
160
|
-
}[];
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* ProviderConfig alias for use in config commands.
|
|
164
|
-
* Maps to CLIProviderConfig.
|
|
165
|
-
*/
|
|
166
|
-
export type ProviderConfig = CLIProviderConfig;
|
|
167
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.js
DELETED
package/dist/config/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { AntseedConfig } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Validate the full config and return all issues.
|
|
4
|
-
*/
|
|
5
|
-
export declare function validateConfig(config: AntseedConfig): string[];
|
|
6
|
-
/**
|
|
7
|
-
* Assert that config is valid. Throws with all discovered violations.
|
|
8
|
-
*/
|
|
9
|
-
export declare function assertValidConfig(config: AntseedConfig): void;
|
|
10
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,YAAY,CAAC;AAwGpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAiD9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAK7D"}
|