@antseed/cli 0.1.59 → 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.
Files changed (214) hide show
  1. package/README.md +46 -37
  2. package/package.json +6 -6
  3. package/dist/cli/commands/agent.d.ts +0 -3
  4. package/dist/cli/commands/agent.d.ts.map +0 -1
  5. package/dist/cli/commands/agent.js +0 -165
  6. package/dist/cli/commands/agent.js.map +0 -1
  7. package/dist/cli/commands/balance.d.ts +0 -3
  8. package/dist/cli/commands/balance.d.ts.map +0 -1
  9. package/dist/cli/commands/balance.js +0 -62
  10. package/dist/cli/commands/balance.js.map +0 -1
  11. package/dist/cli/commands/bootstrap.d.ts +0 -3
  12. package/dist/cli/commands/bootstrap.d.ts.map +0 -1
  13. package/dist/cli/commands/bootstrap.js +0 -46
  14. package/dist/cli/commands/bootstrap.js.map +0 -1
  15. package/dist/cli/commands/browse.d.ts +0 -7
  16. package/dist/cli/commands/browse.d.ts.map +0 -1
  17. package/dist/cli/commands/browse.js +0 -103
  18. package/dist/cli/commands/browse.js.map +0 -1
  19. package/dist/cli/commands/channels.d.ts +0 -3
  20. package/dist/cli/commands/channels.d.ts.map +0 -1
  21. package/dist/cli/commands/channels.js +0 -79
  22. package/dist/cli/commands/channels.js.map +0 -1
  23. package/dist/cli/commands/claim.d.ts +0 -3
  24. package/dist/cli/commands/claim.d.ts.map +0 -1
  25. package/dist/cli/commands/claim.js +0 -35
  26. package/dist/cli/commands/claim.js.map +0 -1
  27. package/dist/cli/commands/config.d.ts +0 -20
  28. package/dist/cli/commands/config.d.ts.map +0 -1
  29. package/dist/cli/commands/config.js +0 -239
  30. package/dist/cli/commands/config.js.map +0 -1
  31. package/dist/cli/commands/connect.d.ts +0 -13
  32. package/dist/cli/commands/connect.d.ts.map +0 -1
  33. package/dist/cli/commands/connect.js +0 -402
  34. package/dist/cli/commands/connect.js.map +0 -1
  35. package/dist/cli/commands/connect.test.d.ts +0 -2
  36. package/dist/cli/commands/connect.test.d.ts.map +0 -1
  37. package/dist/cli/commands/connect.test.js +0 -52
  38. package/dist/cli/commands/connect.test.js.map +0 -1
  39. package/dist/cli/commands/connection.d.ts +0 -3
  40. package/dist/cli/commands/connection.d.ts.map +0 -1
  41. package/dist/cli/commands/connection.js +0 -128
  42. package/dist/cli/commands/connection.js.map +0 -1
  43. package/dist/cli/commands/dashboard.d.ts +0 -6
  44. package/dist/cli/commands/dashboard.d.ts.map +0 -1
  45. package/dist/cli/commands/dashboard.js +0 -48
  46. package/dist/cli/commands/dashboard.js.map +0 -1
  47. package/dist/cli/commands/deposit.d.ts +0 -3
  48. package/dist/cli/commands/deposit.d.ts.map +0 -1
  49. package/dist/cli/commands/deposit.js +0 -38
  50. package/dist/cli/commands/deposit.js.map +0 -1
  51. package/dist/cli/commands/dev.d.ts +0 -3
  52. package/dist/cli/commands/dev.d.ts.map +0 -1
  53. package/dist/cli/commands/dev.js +0 -94
  54. package/dist/cli/commands/dev.js.map +0 -1
  55. package/dist/cli/commands/emissions.d.ts +0 -3
  56. package/dist/cli/commands/emissions.d.ts.map +0 -1
  57. package/dist/cli/commands/emissions.js +0 -80
  58. package/dist/cli/commands/emissions.js.map +0 -1
  59. package/dist/cli/commands/init.d.ts +0 -3
  60. package/dist/cli/commands/init.d.ts.map +0 -1
  61. package/dist/cli/commands/init.js +0 -90
  62. package/dist/cli/commands/init.js.map +0 -1
  63. package/dist/cli/commands/payments.d.ts +0 -3
  64. package/dist/cli/commands/payments.d.ts.map +0 -1
  65. package/dist/cli/commands/payments.js +0 -26
  66. package/dist/cli/commands/payments.js.map +0 -1
  67. package/dist/cli/commands/plugin-create.d.ts +0 -11
  68. package/dist/cli/commands/plugin-create.d.ts.map +0 -1
  69. package/dist/cli/commands/plugin-create.js +0 -201
  70. package/dist/cli/commands/plugin-create.js.map +0 -1
  71. package/dist/cli/commands/plugin-create.test.d.ts +0 -2
  72. package/dist/cli/commands/plugin-create.test.d.ts.map +0 -1
  73. package/dist/cli/commands/plugin-create.test.js +0 -53
  74. package/dist/cli/commands/plugin-create.test.js.map +0 -1
  75. package/dist/cli/commands/plugin.d.ts +0 -3
  76. package/dist/cli/commands/plugin.d.ts.map +0 -1
  77. package/dist/cli/commands/plugin.js +0 -279
  78. package/dist/cli/commands/plugin.js.map +0 -1
  79. package/dist/cli/commands/plugin.test.d.ts +0 -2
  80. package/dist/cli/commands/plugin.test.d.ts.map +0 -1
  81. package/dist/cli/commands/plugin.test.js +0 -54
  82. package/dist/cli/commands/plugin.test.js.map +0 -1
  83. package/dist/cli/commands/profile.d.ts +0 -10
  84. package/dist/cli/commands/profile.d.ts.map +0 -1
  85. package/dist/cli/commands/profile.js +0 -89
  86. package/dist/cli/commands/profile.js.map +0 -1
  87. package/dist/cli/commands/register.d.ts +0 -3
  88. package/dist/cli/commands/register.d.ts.map +0 -1
  89. package/dist/cli/commands/register.js +0 -35
  90. package/dist/cli/commands/register.js.map +0 -1
  91. package/dist/cli/commands/seed.d.ts +0 -14
  92. package/dist/cli/commands/seed.d.ts.map +0 -1
  93. package/dist/cli/commands/seed.js +0 -500
  94. package/dist/cli/commands/seed.js.map +0 -1
  95. package/dist/cli/commands/seed.test.d.ts +0 -2
  96. package/dist/cli/commands/seed.test.d.ts.map +0 -1
  97. package/dist/cli/commands/seed.test.js +0 -92
  98. package/dist/cli/commands/seed.test.js.map +0 -1
  99. package/dist/cli/commands/setup.d.ts +0 -3
  100. package/dist/cli/commands/setup.d.ts.map +0 -1
  101. package/dist/cli/commands/setup.js +0 -84
  102. package/dist/cli/commands/setup.js.map +0 -1
  103. package/dist/cli/commands/stake.d.ts +0 -3
  104. package/dist/cli/commands/stake.d.ts.map +0 -1
  105. package/dist/cli/commands/stake.js +0 -83
  106. package/dist/cli/commands/stake.js.map +0 -1
  107. package/dist/cli/commands/status.d.ts +0 -8
  108. package/dist/cli/commands/status.d.ts.map +0 -1
  109. package/dist/cli/commands/status.js +0 -55
  110. package/dist/cli/commands/status.js.map +0 -1
  111. package/dist/cli/commands/subscribe.d.ts +0 -3
  112. package/dist/cli/commands/subscribe.d.ts.map +0 -1
  113. package/dist/cli/commands/subscribe.js +0 -96
  114. package/dist/cli/commands/subscribe.js.map +0 -1
  115. package/dist/cli/commands/types.d.ts +0 -14
  116. package/dist/cli/commands/types.d.ts.map +0 -1
  117. package/dist/cli/commands/types.js +0 -41
  118. package/dist/cli/commands/types.js.map +0 -1
  119. package/dist/cli/commands/withdraw.d.ts +0 -3
  120. package/dist/cli/commands/withdraw.d.ts.map +0 -1
  121. package/dist/cli/commands/withdraw.js +0 -48
  122. package/dist/cli/commands/withdraw.js.map +0 -1
  123. package/dist/cli/formatters.d.ts +0 -29
  124. package/dist/cli/formatters.d.ts.map +0 -1
  125. package/dist/cli/formatters.js +0 -67
  126. package/dist/cli/formatters.js.map +0 -1
  127. package/dist/cli/index.d.ts +0 -3
  128. package/dist/cli/index.d.ts.map +0 -1
  129. package/dist/cli/index.js +0 -65
  130. package/dist/cli/index.js.map +0 -1
  131. package/dist/cli/payment-utils.d.ts +0 -53
  132. package/dist/cli/payment-utils.d.ts.map +0 -1
  133. package/dist/cli/payment-utils.js +0 -137
  134. package/dist/cli/payment-utils.js.map +0 -1
  135. package/dist/cli/shutdown.d.ts +0 -11
  136. package/dist/cli/shutdown.d.ts.map +0 -1
  137. package/dist/cli/shutdown.js +0 -34
  138. package/dist/cli/shutdown.js.map +0 -1
  139. package/dist/config/defaults.d.ts +0 -6
  140. package/dist/config/defaults.d.ts.map +0 -1
  141. package/dist/config/defaults.js +0 -53
  142. package/dist/config/defaults.js.map +0 -1
  143. package/dist/config/effective.d.ts +0 -25
  144. package/dist/config/effective.d.ts.map +0 -1
  145. package/dist/config/effective.js +0 -67
  146. package/dist/config/effective.js.map +0 -1
  147. package/dist/config/effective.test.d.ts +0 -2
  148. package/dist/config/effective.test.d.ts.map +0 -1
  149. package/dist/config/effective.test.js +0 -62
  150. package/dist/config/effective.test.js.map +0 -1
  151. package/dist/config/loader.d.ts +0 -12
  152. package/dist/config/loader.d.ts.map +0 -1
  153. package/dist/config/loader.js +0 -269
  154. package/dist/config/loader.js.map +0 -1
  155. package/dist/config/loader.test.d.ts +0 -2
  156. package/dist/config/loader.test.d.ts.map +0 -1
  157. package/dist/config/loader.test.js +0 -124
  158. package/dist/config/loader.test.js.map +0 -1
  159. package/dist/config/types.d.ts +0 -167
  160. package/dist/config/types.d.ts.map +0 -1
  161. package/dist/config/types.js +0 -2
  162. package/dist/config/types.js.map +0 -1
  163. package/dist/config/validation.d.ts +0 -10
  164. package/dist/config/validation.d.ts.map +0 -1
  165. package/dist/config/validation.js +0 -130
  166. package/dist/config/validation.js.map +0 -1
  167. package/dist/env/load-env.d.ts +0 -6
  168. package/dist/env/load-env.d.ts.map +0 -1
  169. package/dist/env/load-env.js +0 -18
  170. package/dist/env/load-env.js.map +0 -1
  171. package/dist/plugins/loader.d.ts +0 -12
  172. package/dist/plugins/loader.d.ts.map +0 -1
  173. package/dist/plugins/loader.js +0 -111
  174. package/dist/plugins/loader.js.map +0 -1
  175. package/dist/plugins/manager.d.ts +0 -11
  176. package/dist/plugins/manager.d.ts.map +0 -1
  177. package/dist/plugins/manager.js +0 -52
  178. package/dist/plugins/manager.js.map +0 -1
  179. package/dist/plugins/registry.d.ts +0 -8
  180. package/dist/plugins/registry.d.ts.map +0 -1
  181. package/dist/plugins/registry.js +0 -45
  182. package/dist/plugins/registry.js.map +0 -1
  183. package/dist/proxy/buyer-proxy.d.ts +0 -82
  184. package/dist/proxy/buyer-proxy.d.ts.map +0 -1
  185. package/dist/proxy/buyer-proxy.js +0 -1056
  186. package/dist/proxy/buyer-proxy.js.map +0 -1
  187. package/dist/proxy/buyer-proxy.test.d.ts +0 -2
  188. package/dist/proxy/buyer-proxy.test.d.ts.map +0 -1
  189. package/dist/proxy/buyer-proxy.test.js +0 -124
  190. package/dist/proxy/buyer-proxy.test.js.map +0 -1
  191. package/dist/proxy/request-utils.d.ts +0 -21
  192. package/dist/proxy/request-utils.d.ts.map +0 -1
  193. package/dist/proxy/request-utils.js +0 -237
  194. package/dist/proxy/request-utils.js.map +0 -1
  195. package/dist/proxy/routing.d.ts +0 -17
  196. package/dist/proxy/routing.d.ts.map +0 -1
  197. package/dist/proxy/routing.js +0 -115
  198. package/dist/proxy/routing.js.map +0 -1
  199. package/dist/proxy/service-api-adapter.d.ts +0 -3
  200. package/dist/proxy/service-api-adapter.d.ts.map +0 -1
  201. package/dist/proxy/service-api-adapter.js +0 -2
  202. package/dist/proxy/service-api-adapter.js.map +0 -1
  203. package/dist/proxy/service-api-adapter.test.d.ts +0 -2
  204. package/dist/proxy/service-api-adapter.test.d.ts.map +0 -1
  205. package/dist/proxy/service-api-adapter.test.js +0 -121
  206. package/dist/proxy/service-api-adapter.test.js.map +0 -1
  207. package/dist/proxy/telemetry.d.ts +0 -23
  208. package/dist/proxy/telemetry.d.ts.map +0 -1
  209. package/dist/proxy/telemetry.js +0 -227
  210. package/dist/proxy/telemetry.js.map +0 -1
  211. package/dist/status/node-status.d.ts +0 -22
  212. package/dist/status/node-status.d.ts.map +0 -1
  213. package/dist/status/node-status.js +0 -83
  214. package/dist/status/node-status.js.map +0 -1
package/README.md CHANGED
@@ -8,20 +8,35 @@ Command-line interface and web dashboard for the AntSeed Network — a P2P netwo
8
8
 
9
9
  | Command | Description |
10
10
  |---------|-------------|
11
+ | **Setup** | |
11
12
  | `antseed init` | Install trusted provider and router plugins |
12
- | `antseed seed` | Start providing AI services on the P2P network |
13
- | `antseed connect` | Start the buyer proxy and connect to sellers |
13
+ | `antseed setup --role <role>` | Check readiness for provider or buyer role |
14
+ | `antseed register` | Register peer identity on-chain (ERC-8004) |
15
+ | **Providing** | |
16
+ | `antseed seed --provider <name>` | Start providing AI services on the P2P network |
17
+ | `antseed stake <amount>` | Stake USDC as a provider (min $10) |
18
+ | `antseed unstake` | Withdraw staked USDC |
19
+ | `antseed claim` | Claim accumulated seller payouts |
20
+ | **Buying** | |
21
+ | `antseed connect --router <name>` | Start the buyer proxy and connect to sellers |
22
+ | `antseed deposit <amount>` | Deposit USDC for payments |
23
+ | `antseed withdraw <amount>` | Withdraw USDC from deposits |
24
+ | `antseed balance` | Check wallet and deposit balance |
25
+ | `antseed browse` | Browse available services and pricing |
26
+ | `antseed payments` | Launch the payments portal |
27
+ | **Session** | |
14
28
  | `antseed connection get` | Show current session state (pinned service, peer) |
15
29
  | `antseed connection set` | Update service/peer overrides on a running proxy |
16
- | `antseed connection clear` | Clear service/peer overrides on a running proxy |
17
- | `antseed plugin add <pkg>` | Install a provider or router plugin from npm |
18
- | `antseed plugin remove <name>` | Remove an installed plugin |
19
- | `antseed plugin list` | List installed plugins |
30
+ | `antseed connection clear` | Clear service/peer overrides |
31
+ | **Management** | |
20
32
  | `antseed status` | Show current node status |
21
- | `antseed config` | Manage configuration (`show`, `set`, `seller show/set`, `buyer show/set`, `init`) |
22
- | `antseed dashboard` | Start the web dashboard for monitoring and configuration |
23
- | `antseed dev` | Run seller + buyer locally for development and testing |
24
- | `antseed browse` | Browse available services, prices, and reputation on the network |
33
+ | `antseed config` | Manage configuration |
34
+ | `antseed plugin add/remove/list` | Manage plugins |
35
+ | `antseed dashboard` | Start the web dashboard |
36
+ | `antseed channels` | List payment channels |
37
+ | `antseed emissions` | View ANTS emissions and epoch info |
38
+ | `antseed dev` | Run seller + buyer locally for testing |
39
+ | `antseed bootstrap` | Run a dedicated DHT bootstrap node |
25
40
 
26
41
  ## Plugins
27
42
 
@@ -195,33 +210,27 @@ Session overrides are stored in `~/.antseed/buyer.state.json` and picked up by t
195
210
 
196
211
  The service override rewrites the `model` field in the request body **before routing**, so peer selection, pricing, and the forwarded request all reflect the overridden service — regardless of what the tool (e.g. Claude Code) originally requested.
197
212
 
198
- ## Settlement Runtime (Seeder)
199
-
200
- `antseed seed` can enable automatic session settlement when payment config is present.
201
- `antseed connect` can also enable buyer-side deposits/session locking with the same payment config.
202
-
203
- Common runtime env controls:
204
- - `ANTSEED_ENABLE_SETTLEMENT=true|false`
205
- - `ANTSEED_SETTLEMENT_IDLE_MS=30000`
206
- - `ANTSEED_DEFAULT_ESCROW_USDC=1`
207
- - `ANTSEED_AUTO_FUND_ESCROW=true|false`
208
- - `ANTSEED_SELLER_WALLET_ADDRESS=0x...`
209
-
210
- Crypto settlement also requires `config.payments.crypto` values in your config file:
211
- - `chainId` (`base` or `arbitrum`)
212
- - `rpcUrl`
213
- - `depositsContractAddress`
214
- - `channelsContractAddress`
215
- - `usdcContractAddress`
216
-
217
- If `ANTSEED_ENABLE_SETTLEMENT` is not explicitly set and the RPC endpoint is unreachable,
218
- the CLI now auto-disables settlement for that run and logs a warning instead of looping RPC network-detection errors.
219
- Set `ANTSEED_ENABLE_SETTLEMENT=true` to force-enable settlement checks.
220
-
221
- Runtime behavior:
222
- - session opens -> optional deposit into deposits contract
223
- - session finalizes -> exact on-chain split settlement via sessions contract (`seller payout + platform fee + buyer refund remainder`)
224
- - no receipts -> deposit refund path
213
+ ## Payments
214
+
215
+ Payment channels are automatic when `payments.crypto.chainId` is set in config. Set it to `base-mainnet` for production or `base-sepolia` for testing. Contract addresses are resolved automatically from the chain ID.
216
+
217
+ ```json
218
+ {
219
+ "payments": {
220
+ "preferredMethod": "crypto",
221
+ "crypto": {
222
+ "chainId": "base-mainnet"
223
+ }
224
+ }
225
+ }
226
+ ```
227
+
228
+ The node's identity is a secp256k1 private key that doubles as the EVM wallet. Set it via `ANTSEED_IDENTITY_HEX` env var (recommended) or let the CLI generate one at `~/.antseed/identity.key` (not recommended for production — use env var with a secrets manager instead). Providers must register on-chain (`antseed register`) and stake USDC (`antseed stake 10`) before seeding. Buyers must deposit USDC (`antseed deposit 10`) before connecting.
229
+
230
+ Runtime env controls:
231
+ - `ANTSEED_SETTLEMENT_IDLE_MS=600000` — idle time before settling a session (default: 10 minutes)
232
+ - `ANTSEED_DEFAULT_DEPOSIT_USDC=1` default lock amount per session
233
+ - `ANTSEED_IDENTITY_HEX=<hex>` inject identity via env (supports 0x prefix)
225
234
 
226
235
  Provider-specific options are configured via each plugin's config schema (see `antseed plugin add --help`).
227
236
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antseed/cli",
3
- "version": "0.1.59",
3
+ "version": "0.1.61",
4
4
  "description": "Antseed Network CLI and Web Dashboard",
5
5
  "type": "module",
6
6
  "files": [
@@ -19,12 +19,12 @@
19
19
  "dotenv": "^16.6.1",
20
20
  "open": "^11.0.0",
21
21
  "ora": "^9.3.0",
22
- "@antseed/api-adapter": "0.1.15",
23
- "@antseed/ant-agent": "0.1.14",
22
+ "@antseed/api-adapter": "0.1.16",
23
+ "@antseed/ant-agent": "0.1.15",
24
24
  "@antseed/payments": "0.1.3",
25
- "@antseed/provider-core": "0.2.27",
26
- "@antseed/dashboard": "0.1.23",
27
- "@antseed/node": "0.2.33"
25
+ "@antseed/node": "0.2.35",
26
+ "@antseed/provider-core": "0.2.28",
27
+ "@antseed/dashboard": "0.1.24"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "^20.11.0",
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerAgentCommand(program: Command): void;
3
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgI3D"}
@@ -1,165 +0,0 @@
1
- import chalk from 'chalk';
2
- import { createInterface } from 'node:readline';
3
- import { resolve, isAbsolute } from 'node:path';
4
- import { loadAntAgent, AntAgentProvider } from '@antseed/ant-agent';
5
- import { BaseProvider, StaticTokenProvider } from '@antseed/provider-core';
6
- const encoder = new TextEncoder();
7
- const decoder = new TextDecoder();
8
- function resolveLLMConfig(options) {
9
- const endpoint = options['endpoint']
10
- ?? process.env['OPENAI_BASE_URL']
11
- ?? process.env['ANTHROPIC_BASE_URL']
12
- ?? 'https://api.anthropic.com';
13
- const apiKey = options['apiKey']
14
- ?? process.env['ANTHROPIC_API_KEY']
15
- ?? process.env['OPENAI_API_KEY']
16
- ?? '';
17
- const model = options['model']
18
- ?? process.env['ANTSEED_MODEL']
19
- ?? 'claude-sonnet-4-5-20250929';
20
- if (!apiKey) {
21
- console.error(chalk.red('No API key found. Set ANTHROPIC_API_KEY, OPENAI_API_KEY, or pass --api-key'));
22
- process.exit(1);
23
- }
24
- // Detect auth header from endpoint — use lowercase to match relay convention
25
- const isAnthropic = endpoint.includes('anthropic.com');
26
- const authHeader = isAnthropic ? 'x-api-key' : 'authorization';
27
- return { endpoint, apiKey, model, authHeader };
28
- }
29
- function createProvider(config) {
30
- return new BaseProvider({
31
- name: 'agent-dev',
32
- services: [config.model],
33
- pricing: { defaults: { inputUsdPerMillion: 0, outputUsdPerMillion: 0 } },
34
- relay: {
35
- baseUrl: config.endpoint,
36
- authHeaderName: config.authHeader,
37
- authHeaderValue: '',
38
- tokenProvider: new StaticTokenProvider(config.apiKey),
39
- maxConcurrency: 1,
40
- allowedServices: [config.model],
41
- },
42
- });
43
- }
44
- export function registerAgentCommand(program) {
45
- const agentCmd = program
46
- .command('agent')
47
- .description('Ant agent development tools');
48
- agentCmd
49
- .command('dev <agentDir>')
50
- .description('Test an ant agent locally with an interactive chat')
51
- .option('--endpoint <url>', 'LLM API endpoint (or set OPENAI_BASE_URL / ANTHROPIC_BASE_URL)')
52
- .option('--api-key <key>', 'API key (or set ANTHROPIC_API_KEY / OPENAI_API_KEY)')
53
- .option('--model <model>', 'model to use (default: claude-sonnet-4-5-20250929)')
54
- .action(async (agentDir, options) => {
55
- const agentPath = isAbsolute(agentDir) ? agentDir : resolve(process.cwd(), agentDir);
56
- // Load agent
57
- let agentDef;
58
- try {
59
- agentDef = await loadAntAgent(agentPath);
60
- }
61
- catch (err) {
62
- console.error(chalk.red(`Failed to load agent from ${agentDir}: ${err.message}`));
63
- process.exit(1);
64
- }
65
- const knowledgeCount = agentDef.knowledge.length;
66
- const toolCount = agentDef.tools?.length ?? 0;
67
- console.log(chalk.green(`Loaded agent "${agentDef.name}"`));
68
- console.log(chalk.dim(` knowledge: ${knowledgeCount} module${knowledgeCount !== 1 ? 's' : ''}`));
69
- console.log(chalk.dim(` tools: ${toolCount} custom tool${toolCount !== 1 ? 's' : ''}`));
70
- if (agentDef.persona)
71
- console.log(chalk.dim(` persona: ${agentDef.persona.slice(0, 80)}...`));
72
- console.log();
73
- // Setup LLM
74
- const llmConfig = resolveLLMConfig(options);
75
- console.log(chalk.dim(` endpoint: ${llmConfig.endpoint}`));
76
- console.log(chalk.dim(` model: ${llmConfig.model}`));
77
- console.log();
78
- const innerProvider = createProvider(llmConfig);
79
- const provider = new AntAgentProvider(innerProvider, agentDef);
80
- // Detect API format from endpoint
81
- const isOpenAI = !llmConfig.endpoint.includes('anthropic.com');
82
- const apiPath = isOpenAI ? '/v1/chat/completions' : '/v1/messages';
83
- const messages = [];
84
- console.log(chalk.cyan('Chat with your ant agent. Type "exit" to quit, "clear" to reset.'));
85
- console.log();
86
- const rl = createInterface({
87
- input: process.stdin,
88
- output: process.stdout,
89
- });
90
- const prompt = () => {
91
- rl.question(chalk.bold('You: '), (input) => {
92
- const trimmed = input.trim();
93
- if (!trimmed) {
94
- prompt();
95
- return;
96
- }
97
- if (trimmed === 'exit' || trimmed === 'quit') {
98
- rl.close();
99
- return;
100
- }
101
- if (trimmed === 'clear') {
102
- messages.length = 0;
103
- console.log(chalk.dim('Conversation cleared.\n'));
104
- prompt();
105
- return;
106
- }
107
- messages.push({ role: 'user', content: trimmed });
108
- void (async () => {
109
- // Build request
110
- let body;
111
- if (isOpenAI) {
112
- body = {
113
- model: llmConfig.model,
114
- messages: [...messages],
115
- stream: false,
116
- };
117
- }
118
- else {
119
- body = {
120
- model: llmConfig.model,
121
- messages: [...messages],
122
- max_tokens: 4096,
123
- stream: false,
124
- };
125
- }
126
- const req = {
127
- requestId: crypto.randomUUID(),
128
- method: 'POST',
129
- path: apiPath,
130
- headers: { 'content-type': 'application/json' },
131
- body: encoder.encode(JSON.stringify(body)),
132
- };
133
- try {
134
- const res = await provider.handleRequest(req);
135
- const resBody = JSON.parse(decoder.decode(res.body));
136
- let text;
137
- if (isOpenAI) {
138
- const choices = resBody.choices;
139
- text = choices?.[0]?.message?.content ?? '(no response)';
140
- }
141
- else {
142
- const content = resBody.content;
143
- text = content?.find(b => b.type === 'text')?.text ?? '(no response)';
144
- }
145
- messages.push({ role: 'assistant', content: text });
146
- console.log(chalk.green('\nAssistant: ') + text + '\n');
147
- }
148
- catch (err) {
149
- console.error(chalk.red(`\nError: ${err.message}\n`));
150
- }
151
- prompt();
152
- })().catch((err) => {
153
- console.error(chalk.red(`\nError: ${err.message}\n`));
154
- prompt();
155
- });
156
- });
157
- };
158
- prompt();
159
- rl.on('close', () => {
160
- console.log(chalk.dim('\nGoodbye!'));
161
- process.exit(0);
162
- });
163
- });
164
- }
165
- //# sourceMappingURL=agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerBalanceCommand(program: Command): void;
3
- //# sourceMappingURL=balance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD7D"}
@@ -1,62 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import { getGlobalOptions } from './types.js';
4
- import { loadConfig } from '../../config/loader.js';
5
- import { loadOrCreateIdentity, DepositsClient, } from '@antseed/node';
6
- /** Format USDC base units (6 decimals) to human-readable string. */
7
- function formatUsdc(baseUnits) {
8
- const whole = baseUnits / 1000000n;
9
- const frac = baseUnits % 1000000n;
10
- const fracStr = frac.toString().padStart(6, '0').replace(/0+$/, '') || '0';
11
- return `${whole}.${fracStr}`;
12
- }
13
- export function registerBalanceCommand(program) {
14
- program
15
- .command('balance')
16
- .description('Show deposits balance for your wallet')
17
- .option('--json', 'output as JSON', false)
18
- .action(async (options) => {
19
- const globalOpts = getGlobalOptions(program);
20
- const config = await loadConfig(globalOpts.config);
21
- const payments = config.payments;
22
- if (!payments?.crypto) {
23
- console.error(chalk.red('Error: No crypto payment configuration found.'));
24
- console.error(chalk.dim('Configure payments.crypto in your config file or run: antseed init'));
25
- process.exit(1);
26
- }
27
- const identity = await loadOrCreateIdentity(globalOpts.dataDir);
28
- const address = identity.wallet.address;
29
- const depositsClient = new DepositsClient({
30
- rpcUrl: payments.crypto.rpcUrl,
31
- contractAddress: payments.crypto.depositsContractAddress,
32
- usdcAddress: payments.crypto.usdcContractAddress,
33
- });
34
- const spinner = ora('Fetching balance...').start();
35
- try {
36
- const account = await depositsClient.getBuyerBalance(address);
37
- const usdcBalance = await depositsClient.getUSDCBalance(address);
38
- spinner.stop();
39
- if (options.json) {
40
- console.log(JSON.stringify({
41
- address,
42
- walletUSDC: formatUsdc(usdcBalance),
43
- depositsAvailable: formatUsdc(account.available),
44
- depositsReserved: formatUsdc(account.reserved),
45
- }, null, 2));
46
- return;
47
- }
48
- console.log(chalk.bold('Wallet: ') + chalk.cyan(address));
49
- console.log('');
50
- console.log(chalk.bold('USDC Balance (wallet): ') + chalk.green(formatUsdc(usdcBalance) + ' USDC'));
51
- console.log('');
52
- console.log(chalk.bold('Deposits Account:'));
53
- console.log(` Available: ${chalk.green(formatUsdc(account.available) + ' USDC')}`);
54
- console.log(` Reserved: ${chalk.yellow(formatUsdc(account.reserved) + ' USDC')}`);
55
- }
56
- catch (err) {
57
- spinner.fail(chalk.red(`Failed to fetch balance: ${err.message}`));
58
- process.exit(1);
59
- }
60
- });
61
- }
62
- //# sourceMappingURL=balance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerBootstrapCommand(program: Command): void;
3
- //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD/D"}
@@ -1,46 +0,0 @@
1
- import chalk from 'chalk';
2
- import { getGlobalOptions } from './types.js';
3
- import { loadOrCreateIdentity } from '@antseed/node';
4
- import { DHTNode, parseBootstrapList } from '@antseed/node/discovery';
5
- import { setupShutdownHandler } from '../shutdown.js';
6
- export function registerBootstrapCommand(program) {
7
- program
8
- .command('bootstrap')
9
- .description('Run a dedicated DHT bootstrap node (no provider, no payments)')
10
- .option('-p, --port <port>', 'UDP port to listen on', '6881')
11
- .option('-b, --bootstrap <nodes>', 'comma-separated host:port list of peer bootstrap nodes (e.g. to cross-connect two bootstrap nodes)')
12
- .action(async (options) => {
13
- const globalOptions = getGlobalOptions(program);
14
- const port = parseInt(options.port, 10);
15
- if (!Number.isFinite(port) || port < 1 || port > 65535) {
16
- console.error(chalk.red(`Invalid port: ${options.port}`));
17
- process.exit(1);
18
- }
19
- const bootstrapNodes = options.bootstrap
20
- ? parseBootstrapList(options.bootstrap.split(',').map((s) => s.trim()))
21
- : [];
22
- const identity = await loadOrCreateIdentity(globalOptions.dataDir);
23
- console.log(chalk.bold('AntSeed bootstrap node'));
24
- console.log(chalk.gray(` Peer ID : ${identity.peerId.slice(0, 20)}...`));
25
- console.log(chalk.gray(` DHT port: ${port}`));
26
- if (bootstrapNodes.length > 0) {
27
- console.log(chalk.gray(` Peers : ${bootstrapNodes.map((n) => `${n.host}:${n.port}`).join(', ')}`));
28
- }
29
- const dht = new DHTNode({
30
- peerId: identity.peerId,
31
- port,
32
- bootstrapNodes,
33
- reannounceIntervalMs: 15 * 60 * 1000,
34
- operationTimeoutMs: 10_000,
35
- });
36
- await dht.start();
37
- const actualPort = dht.getPort();
38
- console.log(chalk.green(`\nListening on UDP port ${actualPort} — ready to accept bootstrap connections.`));
39
- setupShutdownHandler(async () => {
40
- process.stdout.write('\nShutting down bootstrap node...');
41
- await dht.stop();
42
- console.log(' done.');
43
- });
44
- });
45
- }
46
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { Command } from 'commander';
2
- /**
3
- * Register the `antseed browse` command on the Commander program.
4
- * Discovers peers on the network and displays available services, prices, and reputation.
5
- */
6
- export declare function registerBrowseCommand(program: Command): void;
7
- //# sourceMappingURL=browse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/browse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4F5D"}
@@ -1,103 +0,0 @@
1
- import chalk from 'chalk';
2
- import ora from 'ora';
3
- import Table from 'cli-table3';
4
- import { getGlobalOptions } from './types.js';
5
- import { loadConfig } from '../../config/loader.js';
6
- import { AntseedNode } from '@antseed/node';
7
- import { parseBootstrapList, toBootstrapConfig } from '@antseed/node/discovery';
8
- function getReputationColor(reputation) {
9
- if (reputation >= 80) {
10
- return chalk.green;
11
- }
12
- if (reputation >= 50) {
13
- return chalk.yellow;
14
- }
15
- return chalk.red;
16
- }
17
- /**
18
- * Register the `antseed browse` command on the Commander program.
19
- * Discovers peers on the network and displays available services, prices, and reputation.
20
- */
21
- export function registerBrowseCommand(program) {
22
- program
23
- .command('browse')
24
- .description('Browse available services, prices, and reputation on the P2P network')
25
- .option('-s, --service <service>', 'filter by service name')
26
- .option('--json', 'output as JSON', false)
27
- .action(async (options) => {
28
- const globalOpts = getGlobalOptions(program);
29
- const config = await loadConfig(globalOpts.config);
30
- const bootstrapNodes = config.network.bootstrapNodes.length > 0
31
- ? toBootstrapConfig(parseBootstrapList(config.network.bootstrapNodes))
32
- : undefined;
33
- const spinner = ora('Discovering peers on the network...').start();
34
- const node = new AntseedNode({
35
- role: 'buyer',
36
- bootstrapNodes,
37
- dhtOperationTimeoutMs: 30_000,
38
- });
39
- try {
40
- await node.start();
41
- }
42
- catch (err) {
43
- spinner.fail(chalk.red(`Failed to connect to network: ${err.message}`));
44
- process.exit(1);
45
- }
46
- try {
47
- const peers = await node.discoverPeers(options.service);
48
- spinner.succeed(chalk.green(`Found ${peers.length} peer(s)`));
49
- if (peers.length === 0) {
50
- console.log(chalk.dim('No peers found. Try again later or check your bootstrap nodes.'));
51
- await node.stop();
52
- return;
53
- }
54
- if (options.json) {
55
- console.log(JSON.stringify(peers, null, 2));
56
- await node.stop();
57
- return;
58
- }
59
- // Display peers in a table
60
- const table = new Table({
61
- head: [
62
- chalk.bold('Name'),
63
- chalk.bold('Peer ID'),
64
- chalk.bold('Providers'),
65
- chalk.bold('Input $/1M'),
66
- chalk.bold('Output $/1M'),
67
- chalk.bold('Reputation'),
68
- chalk.bold('Load'),
69
- ],
70
- colWidths: [18, 16, 18, 14, 14, 12, 10],
71
- });
72
- for (const peer of peers) {
73
- const reputation = peer.reputationScore ?? 0;
74
- const repLabel = `${reputation}%`;
75
- const repColor = getReputationColor(reputation);
76
- const load = peer.currentLoad !== undefined && peer.maxConcurrency !== undefined
77
- ? `${peer.currentLoad}/${peer.maxConcurrency}`
78
- : chalk.dim('n/a');
79
- table.push([
80
- peer.displayName ?? chalk.dim('n/a'),
81
- chalk.dim(peer.peerId.slice(0, 12) + '...'),
82
- peer.providers.join(', '),
83
- peer.defaultInputUsdPerMillion !== undefined
84
- ? `$${peer.defaultInputUsdPerMillion.toFixed(2)}`
85
- : chalk.dim('n/a'),
86
- peer.defaultOutputUsdPerMillion !== undefined
87
- ? `$${peer.defaultOutputUsdPerMillion.toFixed(2)}`
88
- : chalk.dim('n/a'),
89
- repColor(repLabel),
90
- load,
91
- ]);
92
- }
93
- console.log('');
94
- console.log(table.toString());
95
- console.log('');
96
- }
97
- catch (err) {
98
- spinner.fail(chalk.red(`Discovery failed: ${err.message}`));
99
- }
100
- await node.stop();
101
- });
102
- }
103
- //# sourceMappingURL=browse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../src/cli/commands/browse.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerChannelsCommand(program: Command): void;
3
- //# sourceMappingURL=channels.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/channels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoE9D"}