@exagent/agent 0.1.26 → 0.1.28

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.js CHANGED
@@ -40,77 +40,192 @@ var import_accounts5 = require("viem/accounts");
40
40
  var import_viem = require("viem");
41
41
  var NATIVE_ETH = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
42
42
  var TOKEN_DECIMALS = {
43
- // Base Mainnet — Core tokens
44
- "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": 6,
45
- // USDC
46
- "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": 6,
47
- // USDbC
43
+ [NATIVE_ETH.toLowerCase()]: 18,
44
+ // Native ETH
45
+ // Core (0)
48
46
  "0x4200000000000000000000000000000000000006": 18,
49
47
  // WETH
50
- "0x50c5725949a6f0c72e6c4a641f24049a917db0cb": 18,
51
- // DAI
48
+ "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": 6,
49
+ // USDC
52
50
  "0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": 18,
53
51
  // cbETH
54
- [NATIVE_ETH.toLowerCase()]: 18,
55
- // Native ETH
56
- // Base Mainnet — Established tokens
52
+ "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": 8,
53
+ // cbBTC
54
+ "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": 18,
55
+ // wstETH
56
+ "0x50c5725949a6f0c72e6c4a641f24049a917db0cb": 18,
57
+ // DAI
58
+ "0xfde4c96c8593536e31f229ea8f37b2ada2699bb2": 6,
59
+ // USDT
60
+ "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": 6,
61
+ // USDbC
62
+ "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42": 6,
63
+ // EURC
64
+ "0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c": 18,
65
+ // rETH
66
+ "0x0555e30da8f98308edb960aa94c0db47230d2b9c": 8,
67
+ // WBTC
68
+ // Established (1)
57
69
  "0x940181a94a35a4569e4529a3cdfb74e38fd98631": 18,
58
- // AERO (Aerodrome)
59
- "0x532f27101965dd16442e59d40670faf5ebb142e4": 18,
60
- // BRETT
61
- "0x4ed4e862860bed51a9570b96d89af5e1b0efefed": 18,
62
- // DEGEN
70
+ // AERO
71
+ "0x04c0599ae5a44757c0af6f9ec3b93da8976c150a": 18,
72
+ // weETH
73
+ "0x2416092f143378750bb29b79ed961ab195cceea5": 18,
74
+ // ezETH
75
+ "0xa88594d404727625a9437c3f886c7643872296ae": 18,
76
+ // WELL
77
+ "0xbaa5cc21fd487b8fcc2f632f3f4e8d37262a0842": 18,
78
+ // MORPHO
79
+ "0x88fb150bdc53a65fe94dea0c9ba0a6daf8c6e196": 18,
80
+ // LINK
81
+ "0xc3de830ea07524a0761646a6a4e4be0e114a3c83": 18,
82
+ // UNI
83
+ "0x63706e401c06ac8513145b7687a14804d17f814b": 18,
84
+ // AAVE
85
+ "0x9e1028f5f1d5ede59748ffcee5532509976840e0": 18,
86
+ // COMP
87
+ "0x4158734d47fc9692176b5085e0f52ee0da5d47f1": 18,
88
+ // BAL
89
+ "0x8ee73c484a26e0a5df2ee2a4960b789967dd0415": 18,
90
+ // CRV
91
+ "0x22e6966b799c4d5b13be962e1d117b56327fda66": 18,
92
+ // SNX
93
+ // Derivatives (2)
63
94
  "0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b": 18,
64
95
  // VIRTUAL
96
+ "0x4f9fd6be4a90f2620860d680c0d4d5fb53d1a825": 18,
97
+ // AIXBT
98
+ "0x4ed4e862860bed51a9570b96d89af5e1b0efefed": 18,
99
+ // DEGEN
100
+ "0x0578d8a44db98b23bf096a382e016e29a5ce0ffe": 18,
101
+ // HIGHER
102
+ "0x1bc0c42215582d5a085795f4badbaac3ff36d1bcb": 18,
103
+ // CLANKER
104
+ // Emerging (3)
105
+ "0x532f27101965dd16442e59d40670faf5ebb142e4": 18,
106
+ // BRETT
65
107
  "0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4": 18,
66
108
  // TOSHI
67
- "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": 8,
68
- // cbBTC
69
- "0x2416092f143378750bb29b79ed961ab195cceea5": 18,
70
- // ezETH (Renzo)
71
- "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": 18
72
- // wstETH (Lido)
109
+ "0x6921b130d297cc43754afba22e5eac0fbf8db75b": 18,
110
+ // DOGINME
111
+ "0xb1a03eda10342529bbf8eb700a06c60441fef25d": 18,
112
+ // MIGGLES
113
+ "0x7f12d13b34f5f4f0a9449c16bcd42f0da47af200": 9,
114
+ // NORMIE
115
+ "0x27d2decb4bfc9c76f0309b8e88dec3a601fe25a8": 18,
116
+ // BALD
117
+ "0x768be13e1680b5ebe0024c42c896e3db59ec0149": 9
118
+ // SKI
73
119
  };
120
+ var decimalsCache = {};
74
121
  function getTokenDecimals(address) {
75
- const decimals = TOKEN_DECIMALS[address.toLowerCase()];
76
- if (decimals === void 0) {
77
- console.warn(`Unknown token decimals for ${address}, defaulting to 18. THIS MAY BE WRONG.`);
122
+ const key = address.toLowerCase();
123
+ const known = TOKEN_DECIMALS[key];
124
+ if (known !== void 0) return known;
125
+ const cached = decimalsCache[key];
126
+ if (cached !== void 0) return cached;
127
+ console.warn(`Unknown token decimals for ${address}, defaulting to 18. Call fetchTokenDecimals() first for accuracy.`);
128
+ return 18;
129
+ }
130
+ async function fetchTokenDecimals(client, address) {
131
+ const key = address.toLowerCase();
132
+ const known = TOKEN_DECIMALS[key];
133
+ if (known !== void 0) return known;
134
+ const cached = decimalsCache[key];
135
+ if (cached !== void 0) return cached;
136
+ try {
137
+ const decimals = await client.readContract({
138
+ address,
139
+ abi: import_viem.erc20Abi,
140
+ functionName: "decimals"
141
+ });
142
+ const result = Number(decimals);
143
+ decimalsCache[key] = result;
144
+ return result;
145
+ } catch {
146
+ console.warn(`Failed to fetch decimals for ${address} on-chain, defaulting to 18`);
147
+ decimalsCache[key] = 18;
78
148
  return 18;
79
149
  }
80
- return decimals;
81
150
  }
82
151
  var TOKEN_TO_COINGECKO = {
83
- // Core
152
+ [NATIVE_ETH.toLowerCase()]: "ethereum",
153
+ // Core (0)
84
154
  "0x4200000000000000000000000000000000000006": "ethereum",
85
155
  // WETH
86
- [NATIVE_ETH.toLowerCase()]: "ethereum",
87
156
  "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": "usd-coin",
88
157
  // USDC
89
- "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": "usd-coin",
90
- // USDbC
91
158
  "0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22": "coinbase-wrapped-staked-eth",
92
159
  // cbETH
160
+ "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": "coinbase-wrapped-btc",
161
+ // cbBTC
162
+ "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": "wrapped-steth",
163
+ // wstETH
93
164
  "0x50c5725949a6f0c72e6c4a641f24049a917db0cb": "dai",
94
165
  // DAI
95
- // Established
166
+ "0xfde4c96c8593536e31f229ea8f37b2ada2699bb2": "tether",
167
+ // USDT
168
+ "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca": "usd-coin",
169
+ // USDbC
170
+ "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42": "euro-coin",
171
+ // EURC
172
+ "0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c": "rocket-pool-eth",
173
+ // rETH
174
+ "0x0555e30da8f98308edb960aa94c0db47230d2b9c": "wrapped-bitcoin",
175
+ // WBTC
176
+ // Established (1)
96
177
  "0x940181a94a35a4569e4529a3cdfb74e38fd98631": "aerodrome-finance",
97
178
  // AERO
98
- "0x532f27101965dd16442e59d40670faf5ebb142e4": "brett",
99
- // BRETT
100
- "0x4ed4e862860bed51a9570b96d89af5e1b0efefed": "degen-base",
101
- // DEGEN
179
+ "0x04c0599ae5a44757c0af6f9ec3b93da8976c150a": "wrapped-eeth",
180
+ // weETH
181
+ "0x2416092f143378750bb29b79ed961ab195cceea5": "renzo-restaked-eth",
182
+ // ezETH
183
+ "0xa88594d404727625a9437c3f886c7643872296ae": "moonwell",
184
+ // WELL
185
+ "0xbaa5cc21fd487b8fcc2f632f3f4e8d37262a0842": "morpho",
186
+ // MORPHO
187
+ "0x88fb150bdc53a65fe94dea0c9ba0a6daf8c6e196": "chainlink",
188
+ // LINK
189
+ "0xc3de830ea07524a0761646a6a4e4be0e114a3c83": "uniswap",
190
+ // UNI
191
+ "0x63706e401c06ac8513145b7687a14804d17f814b": "aave",
192
+ // AAVE
193
+ "0x9e1028f5f1d5ede59748ffcee5532509976840e0": "compound-governance-token",
194
+ // COMP
195
+ "0x4158734d47fc9692176b5085e0f52ee0da5d47f1": "balancer",
196
+ // BAL
197
+ "0x8ee73c484a26e0a5df2ee2a4960b789967dd0415": "curve-dao-token",
198
+ // CRV
199
+ "0x22e6966b799c4d5b13be962e1d117b56327fda66": "havven",
200
+ // SNX
201
+ // Derivatives (2)
102
202
  "0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b": "virtual-protocol",
103
203
  // VIRTUAL
204
+ "0x4f9fd6be4a90f2620860d680c0d4d5fb53d1a825": "aixbt",
205
+ // AIXBT
206
+ "0x4ed4e862860bed51a9570b96d89af5e1b0efefed": "degen-base",
207
+ // DEGEN
208
+ "0x0578d8a44db98b23bf096a382e016e29a5ce0ffe": "higher",
209
+ // HIGHER
210
+ "0x1bc0c42215582d5a085795f4badbaac3ff36d1bcb": "clanker",
211
+ // CLANKER
212
+ // Emerging (3)
213
+ "0x532f27101965dd16442e59d40670faf5ebb142e4": "based-brett",
214
+ // BRETT
104
215
  "0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4": "toshi",
105
216
  // TOSHI
106
- "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf": "coinbase-wrapped-btc",
107
- // cbBTC
108
- "0x2416092f143378750bb29b79ed961ab195cceea5": "renzo-restaked-eth",
109
- // ezETH
110
- "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452": "wrapped-steth"
111
- // wstETH
217
+ "0x6921b130d297cc43754afba22e5eac0fbf8db75b": "doginme",
218
+ // DOGINME
219
+ "0xb1a03eda10342529bbf8eb700a06c60441fef25d": "mister-miggles",
220
+ // MIGGLES
221
+ "0x7f12d13b34f5f4f0a9449c16bcd42f0da47af200": "normie-2",
222
+ // NORMIE
223
+ "0x27d2decb4bfc9c76f0309b8e88dec3a601fe25a8": "bald",
224
+ // BALD
225
+ "0x768be13e1680b5ebe0024c42c896e3db59ec0149": "ski-mask-dog"
226
+ // SKI
112
227
  };
113
- var STABLECOIN_IDS = /* @__PURE__ */ new Set(["usd-coin", "dai"]);
228
+ var STABLECOIN_IDS = /* @__PURE__ */ new Set(["usd-coin", "dai", "tether"]);
114
229
  var PRICE_STALENESS_MS = 6e4;
115
230
  var MarketDataService = class {
116
231
  rpcUrl;
@@ -266,6 +381,12 @@ var MarketDataService = class {
266
381
  const balances = {};
267
382
  const wallet = walletAddress;
268
383
  try {
384
+ const unknownTokens = tokenAddresses.filter(
385
+ (addr) => TOKEN_DECIMALS[addr.toLowerCase()] === void 0 && !decimalsCache[addr.toLowerCase()]
386
+ );
387
+ if (unknownTokens.length > 0) {
388
+ await Promise.all(unknownTokens.map((addr) => fetchTokenDecimals(this.client, addr)));
389
+ }
269
390
  const nativeBalance = await this.client.getBalance({ address: wallet });
270
391
  balances[NATIVE_ETH.toLowerCase()] = nativeBalance;
271
392
  const erc20Promises = tokenAddresses.map(async (tokenAddress) => {
@@ -1540,7 +1661,7 @@ function validateConfig(config) {
1540
1661
  throw new Error("Valid agent ID required");
1541
1662
  }
1542
1663
  }
1543
- var DEFAULT_RPC_URL = "https://base-rpc.publicnode.com";
1664
+ var DEFAULT_RPC_URL = "https://mainnet.base.org";
1544
1665
  function getRpcUrl() {
1545
1666
  return process.env.BASE_RPC_URL || process.env.EXAGENT_RPC_URL || DEFAULT_RPC_URL;
1546
1667
  }
@@ -3704,7 +3825,7 @@ function loadSecureEnv(basePath, passphrase) {
3704
3825
  }
3705
3826
 
3706
3827
  // src/index.ts
3707
- var AGENT_VERSION = "0.1.26";
3828
+ var AGENT_VERSION = "0.1.28";
3708
3829
 
3709
3830
  // src/relay.ts
3710
3831
  var RelayClient = class {
@@ -5437,6 +5558,33 @@ async function checkFirstRunSetup(configPath) {
5437
5558
  llmEnvVar = `${provider.envVar}=${llmApiKey}
5438
5559
  `;
5439
5560
  }
5561
+ console.log("");
5562
+ console.log("[RPC] Base network RPC endpoint.");
5563
+ console.log("");
5564
+ console.log(" Your agent sends transactions through an RPC provider.");
5565
+ console.log(" The default (mainnet.base.org) works but has rate limits.");
5566
+ console.log(" A dedicated RPC gives faster transactions and fewer timeouts.");
5567
+ console.log("");
5568
+ console.log(" Free RPC providers:");
5569
+ console.log(" dRPC https://drpc.org (10.5M req/month free)");
5570
+ console.log(" Alchemy https://alchemy.com (30M compute units free)");
5571
+ console.log(" Infura https://infura.io (100K req/day free)");
5572
+ console.log(" Ankr https://ankr.com (generous free tier)");
5573
+ console.log("");
5574
+ console.log(" Sign up, create a Base mainnet endpoint, and paste the URL.");
5575
+ console.log("");
5576
+ const rpcUrl = await prompt(" RPC URL (or Enter for default): ");
5577
+ let rpcEnvVar = "";
5578
+ if (rpcUrl && rpcUrl.trim()) {
5579
+ rpcEnvVar = `BASE_RPC_URL=${rpcUrl.trim()}
5580
+ `;
5581
+ console.log("");
5582
+ console.log(` Using custom RPC: ${rpcUrl.trim()}`);
5583
+ } else {
5584
+ console.log("");
5585
+ console.log(" Using default: https://mainnet.base.org");
5586
+ console.log(" You can change this later by adding BASE_RPC_URL to your .env");
5587
+ }
5440
5588
  const envContent = `# Exagent Agent Configuration
5441
5589
  # Agent: ${config.name}
5442
5590
  # Agent ID: ${config.agentId}
@@ -5448,7 +5596,7 @@ EXAGENT_PRIVATE_KEY=${privateKey}
5448
5596
 
5449
5597
  # Network
5450
5598
  EXAGENT_NETWORK=${config.network || "mainnet"}
5451
-
5599
+ ${rpcEnvVar}
5452
5600
  # LLM (${llmProvider})
5453
5601
  ${llmEnvVar}EXAGENT_LLM_MODEL=${config.llm?.model || ""}
5454
5602
  `;
package/dist/cli.mjs CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  loadConfig,
7
7
  loadSecureEnv,
8
8
  validateConfig
9
- } from "./chunk-AWBQDPZ6.mjs";
9
+ } from "./chunk-62GBXQNP.mjs";
10
10
 
11
11
  // src/cli.ts
12
12
  import { Command } from "commander";
@@ -206,6 +206,33 @@ async function checkFirstRunSetup(configPath) {
206
206
  llmEnvVar = `${provider.envVar}=${llmApiKey}
207
207
  `;
208
208
  }
209
+ console.log("");
210
+ console.log("[RPC] Base network RPC endpoint.");
211
+ console.log("");
212
+ console.log(" Your agent sends transactions through an RPC provider.");
213
+ console.log(" The default (mainnet.base.org) works but has rate limits.");
214
+ console.log(" A dedicated RPC gives faster transactions and fewer timeouts.");
215
+ console.log("");
216
+ console.log(" Free RPC providers:");
217
+ console.log(" dRPC https://drpc.org (10.5M req/month free)");
218
+ console.log(" Alchemy https://alchemy.com (30M compute units free)");
219
+ console.log(" Infura https://infura.io (100K req/day free)");
220
+ console.log(" Ankr https://ankr.com (generous free tier)");
221
+ console.log("");
222
+ console.log(" Sign up, create a Base mainnet endpoint, and paste the URL.");
223
+ console.log("");
224
+ const rpcUrl = await prompt(" RPC URL (or Enter for default): ");
225
+ let rpcEnvVar = "";
226
+ if (rpcUrl && rpcUrl.trim()) {
227
+ rpcEnvVar = `BASE_RPC_URL=${rpcUrl.trim()}
228
+ `;
229
+ console.log("");
230
+ console.log(` Using custom RPC: ${rpcUrl.trim()}`);
231
+ } else {
232
+ console.log("");
233
+ console.log(" Using default: https://mainnet.base.org");
234
+ console.log(" You can change this later by adding BASE_RPC_URL to your .env");
235
+ }
209
236
  const envContent = `# Exagent Agent Configuration
210
237
  # Agent: ${config.name}
211
238
  # Agent ID: ${config.agentId}
@@ -217,7 +244,7 @@ EXAGENT_PRIVATE_KEY=${privateKey}
217
244
 
218
245
  # Network
219
246
  EXAGENT_NETWORK=${config.network || "mainnet"}
220
-
247
+ ${rpcEnvVar}
221
248
  # LLM (${llmProvider})
222
249
  ${llmEnvVar}EXAGENT_LLM_MODEL=${config.llm?.model || ""}
223
250
  `;
package/dist/index.d.mts CHANGED
@@ -339,9 +339,9 @@ declare const AgentConfigSchema: z.ZodObject<{
339
339
  }>>;
340
340
  allowedTokens: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
341
341
  }, "strip", z.ZodTypeAny, {
342
- agentId: string | number;
343
342
  name: string;
344
343
  network: "mainnet";
344
+ agentId: string | number;
345
345
  llm: {
346
346
  provider: "custom" | "openai" | "anthropic" | "google" | "deepseek" | "mistral" | "groq" | "together" | "ollama";
347
347
  temperature: number;
@@ -388,8 +388,8 @@ declare const AgentConfigSchema: z.ZodObject<{
388
388
  } | undefined;
389
389
  allowedTokens?: string[] | undefined;
390
390
  }, {
391
- agentId: string | number;
392
391
  name: string;
392
+ agentId: string | number;
393
393
  llm: {
394
394
  provider: "custom" | "openai" | "anthropic" | "google" | "deepseek" | "mistral" | "groq" | "together" | "ollama";
395
395
  model?: string | undefined;
@@ -2107,6 +2107,6 @@ declare function decryptEnvFile(encPath: string, passphrase: string): Record<str
2107
2107
  declare function loadSecureEnv(basePath: string, passphrase?: string): boolean;
2108
2108
 
2109
2109
  /** @exagent/agent package version — update alongside package.json */
2110
- declare const AGENT_VERSION = "0.1.26";
2110
+ declare const AGENT_VERSION = "0.1.28";
2111
2111
 
2112
2112
  export { AGENT_VERSION, type AccountSummary, type AgentConfig, AgentConfigSchema, type AgentMode, AgentRuntime, type AgentStatusPayload, AnthropicAdapter, BaseLLMAdapter, type CommandType, DeepSeekAdapter, FileStore, type FillCallback, type FundingCallback, type FundingPayment, GoogleAdapter, GroqAdapter, HYPERLIQUID_DOMAIN, HyperliquidClient, HyperliquidSigner, HyperliquidWebSocket, type LLMAdapter, type LLMConfig, LLMConfigSchema, type LLMMessage, type LLMMetadata, type LLMProvider, LLMProviderSchema, type LLMResponse, type LiquidationCallback, type MarketData, MarketDataService, type MessageLevel, type MessageType, MistralAdapter, OllamaAdapter, type OnboardingStatus, OpenAIAdapter, OrderManager, type OrderResult, type PerpAction, type PerpConfig$1 as PerpConfig, PerpConfigSchema, type PerpFill, type PerpMarketData, PerpOnboarding, type PerpPosition, type PerpStrategyFunction, PerpTradeRecorder, type PerpTradeSignal, type PerpConfig as PerpTradingConfig, PositionManager, type PositionSummary, PositionTracker, type RecordPerpTradeParams, RelayClient, type RelayCommand, type RelayConfig$1 as RelayConfig, RelayConfigSchema, RiskManager, type RiskState, type RiskUniverse, RiskUniverseSchema, type RuntimeConfig, STRATEGY_TEMPLATES, type StrategyContext, type StrategyFunction, type StrategyStore, type StrategyTemplate, TogetherAdapter, type TrackedPosition, TradeExecutor, type TradeRecord, type TradeSignal, type TradingConfig, TradingConfigSchema, type VaultConfig, VaultConfigSchema, VaultManager, type VaultManagerConfig, type VaultPolicy, VaultPolicySchema, type VaultStatus, createLLMAdapter, createSampleConfig, decryptEnvFile, encryptEnvFile, fillHashToBytes32, fillOidToBytes32, getAllStrategyTemplates, getNextNonce, getStrategyTemplate, loadConfig, loadSecureEnv, loadStrategy, validateConfig, validateStrategy };
package/dist/index.d.ts CHANGED
@@ -339,9 +339,9 @@ declare const AgentConfigSchema: z.ZodObject<{
339
339
  }>>;
340
340
  allowedTokens: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
341
341
  }, "strip", z.ZodTypeAny, {
342
- agentId: string | number;
343
342
  name: string;
344
343
  network: "mainnet";
344
+ agentId: string | number;
345
345
  llm: {
346
346
  provider: "custom" | "openai" | "anthropic" | "google" | "deepseek" | "mistral" | "groq" | "together" | "ollama";
347
347
  temperature: number;
@@ -388,8 +388,8 @@ declare const AgentConfigSchema: z.ZodObject<{
388
388
  } | undefined;
389
389
  allowedTokens?: string[] | undefined;
390
390
  }, {
391
- agentId: string | number;
392
391
  name: string;
392
+ agentId: string | number;
393
393
  llm: {
394
394
  provider: "custom" | "openai" | "anthropic" | "google" | "deepseek" | "mistral" | "groq" | "together" | "ollama";
395
395
  model?: string | undefined;
@@ -2107,6 +2107,6 @@ declare function decryptEnvFile(encPath: string, passphrase: string): Record<str
2107
2107
  declare function loadSecureEnv(basePath: string, passphrase?: string): boolean;
2108
2108
 
2109
2109
  /** @exagent/agent package version — update alongside package.json */
2110
- declare const AGENT_VERSION = "0.1.26";
2110
+ declare const AGENT_VERSION = "0.1.28";
2111
2111
 
2112
2112
  export { AGENT_VERSION, type AccountSummary, type AgentConfig, AgentConfigSchema, type AgentMode, AgentRuntime, type AgentStatusPayload, AnthropicAdapter, BaseLLMAdapter, type CommandType, DeepSeekAdapter, FileStore, type FillCallback, type FundingCallback, type FundingPayment, GoogleAdapter, GroqAdapter, HYPERLIQUID_DOMAIN, HyperliquidClient, HyperliquidSigner, HyperliquidWebSocket, type LLMAdapter, type LLMConfig, LLMConfigSchema, type LLMMessage, type LLMMetadata, type LLMProvider, LLMProviderSchema, type LLMResponse, type LiquidationCallback, type MarketData, MarketDataService, type MessageLevel, type MessageType, MistralAdapter, OllamaAdapter, type OnboardingStatus, OpenAIAdapter, OrderManager, type OrderResult, type PerpAction, type PerpConfig$1 as PerpConfig, PerpConfigSchema, type PerpFill, type PerpMarketData, PerpOnboarding, type PerpPosition, type PerpStrategyFunction, PerpTradeRecorder, type PerpTradeSignal, type PerpConfig as PerpTradingConfig, PositionManager, type PositionSummary, PositionTracker, type RecordPerpTradeParams, RelayClient, type RelayCommand, type RelayConfig$1 as RelayConfig, RelayConfigSchema, RiskManager, type RiskState, type RiskUniverse, RiskUniverseSchema, type RuntimeConfig, STRATEGY_TEMPLATES, type StrategyContext, type StrategyFunction, type StrategyStore, type StrategyTemplate, TogetherAdapter, type TrackedPosition, TradeExecutor, type TradeRecord, type TradeSignal, type TradingConfig, TradingConfigSchema, type VaultConfig, VaultConfigSchema, VaultManager, type VaultManagerConfig, type VaultPolicy, VaultPolicySchema, type VaultStatus, createLLMAdapter, createSampleConfig, decryptEnvFile, encryptEnvFile, fillHashToBytes32, fillOidToBytes32, getAllStrategyTemplates, getNextNonce, getStrategyTemplate, loadConfig, loadSecureEnv, loadStrategy, validateConfig, validateStrategy };