keyring-agent-core 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -31,17 +31,12 @@ User Message
31
31
  ```
32
32
 
33
33
  ### Key patterns
34
+
34
35
  - **Plan → Task → Get Data → Answer**: The Planner creates a structured execution plan; the Executor runs tools and gathers data; the Synthesizer produces the answer.
35
36
  - **ReAct (Reason + Act)**: The Executor uses a Think → Act → Observe loop, allowing multi-step reasoning with tool calls.
36
37
  - **Multi-agent**: Planner, Executor, and Synthesizer are independent agents, each with specialised system prompts.
37
38
  - **Conversation memory**: Automatic chat history management with LLM-based summarisation when the conversation grows too long.
38
39
 
39
- ## Installation
40
-
41
- ```bash
42
- npm install keyring-agent-core @google/generative-ai
43
- ```
44
-
45
40
  ## Quick Start
46
41
 
47
42
  ```typescript
@@ -117,6 +112,7 @@ Each tool is **independent** — add or remove tools without affecting others.
117
112
  ## Chat History & Summarisation
118
113
 
119
114
  The agent automatically manages conversation history:
115
+
120
116
  - Messages are stored in a `ChatHistory` instance
121
117
  - When the history exceeds `maxHistoryMessages`, it is automatically summarised using the LLM and compacted
122
118
  - You can persist/restore history:
@@ -135,17 +131,17 @@ agent.restoreHistory(saved);
135
131
 
136
132
  ### `AgentCore`
137
133
 
138
- | Method | Description |
139
- |---|---|
140
- | `chat(message: string)` | Process a user message and get an answer |
141
- | `registerTool(tool)` | Register a tool |
142
- | `registerTools(tools)` | Register multiple tools |
143
- | `unregisterTool(name)` | Remove a tool |
144
- | `listTools()` | List registered tool names |
145
- | `getHistory()` | Get full conversation history |
146
- | `clearHistory()` | Clear conversation history |
147
- | `serialiseHistory()` | Serialise history for persistence |
148
- | `restoreHistory(messages)` | Restore history from saved data |
134
+ | Method | Description |
135
+ | -------------------------- | ---------------------------------------- |
136
+ | `chat(message: string)` | Process a user message and get an answer |
137
+ | `registerTool(tool)` | Register a tool |
138
+ | `registerTools(tools)` | Register multiple tools |
139
+ | `unregisterTool(name)` | Remove a tool |
140
+ | `listTools()` | List registered tool names |
141
+ | `getHistory()` | Get full conversation history |
142
+ | `clearHistory()` | Clear conversation history |
143
+ | `serialiseHistory()` | Serialise history for persistence |
144
+ | `restoreHistory(messages)` | Restore history from saved data |
149
145
 
150
146
  ### `AgentConfig`
151
147
 
package/dist/index.d.ts CHANGED
@@ -448,6 +448,43 @@ declare class PoolService {
448
448
  _keccak(hex: string): string;
449
449
  }
450
450
 
451
+ /**
452
+ * Canonical hex ids of every chain this core CAN support (EVM only). This is the
453
+ * immutable CATALOG; the ACTIVE set may be narrowed at runtime via
454
+ * {@link configureSupportedChains} and can only ever be a subset of this.
455
+ */
456
+ declare const SUPPORTED_CHAINS: readonly ["0x1", "0xa", "0x38", "0x89", "0x2105", "0xa4b1", "0xa86a", "0xe708"];
457
+ /** Canonical hex id of a built-in chain (the immutable catalog), e.g. "0x2105". */
458
+ type SupportedChainId = (typeof SUPPORTED_CHAINS)[number];
459
+ /** Human-readable name of a built-in chain — the other accepted selector form. */
460
+ type SupportedChainName = 'ethereum' | 'optimism' | 'bsc' | 'polygon' | 'base' | 'arbitrum' | 'avalanche' | 'linea';
461
+ /**
462
+ * Any identifier accepted where a built-in chain must be named (e.g.
463
+ * {@link configureSupportedChains} / `AgentConfig.excludeChains`): the canonical
464
+ * hex id OR its human name. Decimal ids ("10") still resolve at runtime but are
465
+ * intentionally left out of the type so editor autocomplete stays clean and
466
+ * typos are caught at compile time.
467
+ */
468
+ type ChainSelector = SupportedChainId | SupportedChainName;
469
+ /** Preferred default if still active, otherwise the first remaining active chain. */
470
+ declare let DEFAULT_CHAIN: string;
471
+ /** Human-readable list of ACTIVE supported chains, for user-facing messages. */
472
+ declare let SUPPORTED_CHAINS_LABEL: string;
473
+ /**
474
+ * Narrow the ACTIVE supported-chain set by REMOVING the given chains from the
475
+ * catalog. You can only ever remove — the active set is always a subset of
476
+ * {@link SUPPORTED_CHAINS}. Guards (per design):
477
+ * - entries that aren't a catalog chain (unknown id/name, non-EVM) are ignored;
478
+ * - an exclude list that would remove EVERY chain is ignored (the set is left
479
+ * at the full catalog) — we never produce an empty supported set;
480
+ * - if the preferred default (Ethereum) is removed, {@link DEFAULT_CHAIN} falls
481
+ * back to the first still-active chain.
482
+ *
483
+ * Call once at startup (AgentCore does this from `config.excludeChains`). Updates
484
+ * every resolver plus the exported `DEFAULT_CHAIN` / `SUPPORTED_CHAINS_LABEL`.
485
+ */
486
+ declare function configureSupportedChains(exclude?: Iterable<ChainSelector>): void;
487
+
451
488
  /** Role inside a conversation */
452
489
  type ChatRole = 'user' | 'assistant' | 'system' | 'tool';
453
490
  /** A single message in the conversation */
@@ -688,7 +725,7 @@ interface AddLiquidityFormProps {
688
725
  /** CoinPool gateway contract address on this chain */
689
726
  gatewayAddress: string;
690
727
  }
691
- type WalletActionType = 'send_native' | 'send_token' | 'approve_token' | 'wrap_native' | 'unwrap_native';
728
+ type WalletActionType = 'send_native' | 'send_token' | 'approve_token' | 'send_nft';
692
729
  /**
693
730
  * Common envelope every wallet-action tool returns as its UI payload `props`.
694
731
  * The FE renders the form keyed by `action`, pre-fills inputs from `parameters`,
@@ -1064,6 +1101,15 @@ interface AgentConfig {
1064
1101
  * built-in public default for that chain.
1065
1102
  */
1066
1103
  rpcUrls?: Record<string, string>;
1104
+ /**
1105
+ * Restrict which of the built-in supported chains are active by REMOVING the
1106
+ * listed ones. Each entry is a {@link ChainSelector} — the chain's canonical
1107
+ * hex id ("0xa") or its human name ("optimism") — so typos are caught at
1108
+ * compile time. You can ONLY remove chains from the built-in set; a list
1109
+ * covering every chain is ignored (the full set is kept). Omit to keep all
1110
+ * built-in chains enabled.
1111
+ */
1112
+ excludeChains?: ChainSelector[];
1067
1113
  /** Maximum number of ReAct iterations before forcing an answer */
1068
1114
  maxIterations?: number;
1069
1115
  /** Maximum number of messages to keep in history before summarising */
@@ -1192,9 +1238,9 @@ interface AgentConfig {
1192
1238
  isProduction?: boolean;
1193
1239
  } | false;
1194
1240
  /**
1195
- * Website link for the NFT tools (`send-nft` and the nft-agent data tools:
1196
- * `get-wallet-nfts`, `get-nft-metadata`, `get-nft-contract-info`). Supplied
1197
- * at AgentCore construction.
1241
+ * Website link for the NFT notice tools (`get-wallet-nfts`,
1242
+ * `get-nft-metadata`, `get-nft-contract-info`). Supplied at AgentCore
1243
+ * construction.
1198
1244
  *
1199
1245
  * Each tool emits a fixed message containing the phrase "this website". When
1200
1246
  * this URL is set, that phrase is rendered as a Markdown link to it; when
@@ -1692,7 +1738,7 @@ declare function createWalletAgent(llm: LLMProvider, registry: ToolRegistry, opt
1692
1738
  declare const TOKEN_AGENT_TOOL_NAMES: readonly ["get-token-info", "get-token-holders", "get-token-analytics", "get-token-score", "get-trending-tokens", "get-top-gainers", "gemini-search-ai"];
1693
1739
  declare function createTokenAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
1694
1740
 
1695
- declare const NFT_AGENT_TOOL_NAMES: readonly ["get-wallet-nfts", "get-nft-metadata", "get-nft-contract-info", "send-nft", "gemini-search-ai"];
1741
+ declare const NFT_AGENT_TOOL_NAMES: readonly ["get-wallet-nfts", "get-nft-metadata", "get-nft-contract-info", "open-send-nft-form", "gemini-search-ai"];
1696
1742
  declare function createNftAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
1697
1743
 
1698
1744
  declare const AI_AGENT_TOOL_NAMES: readonly ["gemini-search-ai"];
@@ -3370,7 +3416,7 @@ type TopGainersToolConfig = MoralisServiceConfig;
3370
3416
  * Queries Pantograph's `GET /token-list/top-gainers/{chain}?duration=…` — the
3371
3417
  * tokens with the largest USD price increase over a chosen window. Single-chain
3372
3418
  * (Pantograph has no cross-chain feed); defaults to the connected chain, then
3373
- * Base. Returns the canonical trending-token shape: price, market cap, 24h
3419
+ * Ethereum. Returns the canonical trending-token shape: price, market cap, 24h
3374
3420
  * volume, and the price change over the selected window.
3375
3421
  */
3376
3422
  declare class TopGainersTool extends BaseTool {
@@ -3423,7 +3469,7 @@ declare class WalletTokenBalancesTool extends BaseTool {
3423
3469
  walletAddress: string;
3424
3470
  chain: string;
3425
3471
  tokenCount: number;
3426
- tokens: TokenBalance[];
3472
+ tokens: string[];
3427
3473
  totalUsdValue: number;
3428
3474
  error?: undefined;
3429
3475
  }>;
@@ -4115,8 +4161,8 @@ interface NftMessageToolConfig {
4115
4161
  url?: string;
4116
4162
  }
4117
4163
  /**
4118
- * Shared base for the canned-message NFT notice tools (`send-nft`,
4119
- * `get-wallet-nfts`, `get-nft-metadata`, `get-nft-contract-info`).
4164
+ * Shared base for the canned-message NFT notice tools (`get-wallet-nfts`,
4165
+ * `get-nft-metadata`, `get-nft-contract-info`).
4120
4166
  *
4121
4167
  * Each tool emits one fixed sentence that points the user at a website. The
4122
4168
  * phrase "this website" is rendered as a Markdown link to `config.url` when one
@@ -4139,19 +4185,6 @@ declare abstract class BaseNftMessageTool extends BaseTool {
4139
4185
  protected run(): Promise<unknown>;
4140
4186
  }
4141
4187
 
4142
- /**
4143
- * Tool: send-nft
4144
- *
4145
- * Points the user to the website to send/transfer an NFT. Emits a fixed
4146
- * message; "this website" links to the configured `nftLink` URL when one is
4147
- * set, otherwise it stays plain text.
4148
- */
4149
- declare class SendNftTool extends BaseNftMessageTool {
4150
- name: string;
4151
- description: string;
4152
- protected readonly template = "Please select the NFT you would like to send from the list and proceed via {link}.";
4153
- }
4154
-
4155
4188
  type WalletNFTsToolConfig = NftMessageToolConfig;
4156
4189
  /**
4157
4190
  * Tool: get-wallet-nfts
@@ -5421,7 +5454,6 @@ declare class SubgraphCoinPoolPairsTool extends BaseTool {
5421
5454
  * is `balance − gasReserve`, where `gasReserve = gasLimit × gasPrice`:
5422
5455
  *
5423
5456
  * - send native: gasLimit 30_000 (a plain value transfer).
5424
- * - wrap native: gasLimit 40_000 (a WETH deposit() call).
5425
5457
  * - buy / swap: gasLimit 1_000_000 (a router call + possible approval).
5426
5458
  *
5427
5459
  * The gas price is read live via `eth_gasPrice` against the chain's RPC (a
@@ -5434,8 +5466,6 @@ declare class SubgraphCoinPoolPairsTool extends BaseTool {
5434
5466
  /** Gas limits per native action kind (matches the FE's tx builders). */
5435
5467
  declare const NATIVE_GAS_LIMIT: {
5436
5468
  readonly send: 30000n;
5437
- /** wrap native → wrapped ERC-20 via the WETH-style `deposit()` payable call. */
5438
- readonly wrap: 40000n;
5439
5469
  /** buy and swap both go through a router call (+ possible approval). */
5440
5470
  readonly swap: 1000000n;
5441
5471
  };
@@ -5768,45 +5798,6 @@ declare class ApproveTokenTool extends BaseWalletActionTool {
5768
5798
  protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string>>;
5769
5799
  }
5770
5800
 
5771
- /**
5772
- * Tool: open-wrap-native-form
5773
- *
5774
- * Opens the WRAP NATIVE form (e.g. ETH → WETH, BNB → WBNB).
5775
- */
5776
- declare class WrapNativeTool extends BaseWalletActionTool {
5777
- name: string;
5778
- protected readonly actionType: WalletActionType;
5779
- protected readonly component = "WrapNativeForm";
5780
- protected readonly userInputFields: readonly [{
5781
- readonly key: "amount";
5782
- readonly label: "the amount to wrap";
5783
- }];
5784
- description: string;
5785
- parameters: ToolParameter[];
5786
- protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string> | {
5787
- error: string;
5788
- _instructions: string;
5789
- }>;
5790
- }
5791
-
5792
- /**
5793
- * Tool: open-unwrap-native-form
5794
- *
5795
- * Opens the UNWRAP NATIVE form (WETH → ETH, WBNB → BNB, …).
5796
- */
5797
- declare class UnwrapNativeTool extends BaseWalletActionTool {
5798
- name: string;
5799
- protected readonly actionType: WalletActionType;
5800
- protected readonly component = "UnwrapNativeForm";
5801
- protected readonly userInputFields: readonly [{
5802
- readonly key: "amount";
5803
- readonly label: "the amount to unwrap";
5804
- }];
5805
- description: string;
5806
- parameters: ToolParameter[];
5807
- protected buildParameters(args: Record<string, unknown>, _userContext?: UserContext): Promise<Record<string, string>>;
5808
- }
5809
-
5810
5801
  /**
5811
5802
  * Tool: open-buy-token-form
5812
5803
  *
@@ -6288,11 +6279,61 @@ declare class SwapTokenTool extends BaseTool {
6288
6279
  private formatPrice;
6289
6280
  }
6290
6281
 
6282
+ /** Optional NFT website link, shown when more than one owned NFT matches. */
6283
+ interface SendNftToolConfig {
6284
+ url?: string;
6285
+ }
6286
+ /**
6287
+ * Tool: open-send-nft-form
6288
+ *
6289
+ * Resolves a "send NFT" intent and asks the FE to render its `SendNftForm`.
6290
+ * Mirrors the chatbot SDK's `send_nft` schema:
6291
+ * { contract_address, token_id, to_address, token_standard, amount, maxAmount, nft_name }
6292
+ *
6293
+ * Resolution rules (in order):
6294
+ * - No identifier at all → emit a fixed "no NFT specified" notice.
6295
+ * - contract_address + token_id → confirm ownership; emit form (image + name +
6296
+ * token_standard + maxAmount come from the wallet row). Not held → error.
6297
+ * - contract_address only → list the user's holdings in that collection.
6298
+ * • 0 → error • 1 → form • >1 → website notice.
6299
+ * - token_id only → list all owned NFTs whose token_id matches.
6300
+ * • 0 → error • 1 → form • >1 → website notice.
6301
+ * - nft_name only → fuzzy-match against owned NFTs' names.
6302
+ * • 0 → error • 1 → form • >1 → website notice.
6303
+ *
6304
+ * When more than one owned NFT matches we cannot safely pick one for the user,
6305
+ * so we return a fixed notice pointing them to the NFT website (Markdown link
6306
+ * when `url` is configured, plain text otherwise) — matching the pattern used
6307
+ * by the other NFT notice tools.
6308
+ */
6309
+ declare class SendNftTool extends BaseWalletActionTool {
6310
+ name: string;
6311
+ protected readonly actionType: WalletActionType;
6312
+ protected readonly component = "SendNftForm";
6313
+ protected readonly userInputFields: readonly [{
6314
+ readonly key: "to_address";
6315
+ readonly label: "the recipient address";
6316
+ }];
6317
+ /** Resolved (trimmed) NFT website URL, used when >1 owned NFTs match. */
6318
+ private readonly url?;
6319
+ constructor(config?: MoralisServiceConfig, options?: SendNftToolConfig);
6320
+ description: string;
6321
+ parameters: ToolParameter[];
6322
+ protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string>>;
6323
+ private normaliseString;
6324
+ private normaliseTokenId;
6325
+ private normaliseAmountInt;
6326
+ private nftDisplayName;
6327
+ private matchNfts;
6328
+ private paramsFromInputs;
6329
+ private paramsFromNft;
6330
+ }
6331
+
6291
6332
  /**
6292
6333
  * Shared JSON-RPC client + default public RPC endpoints.
6293
6334
  *
6294
- * Kept dependency-free (no imports from PoolService / swap) so both
6295
- * `PoolService` and the swap adapters can use it without a circular import.
6335
+ * Kept free of PoolService / swap imports so both `PoolService` and the swap
6336
+ * adapters can use it without a circular import.
6296
6337
  */
6297
6338
  /** Default public RPC endpoint per hex chain id. Single source of truth. */
6298
6339
  declare const DEFAULT_RPC_BY_CHAIN: Record<string, string>;
@@ -6386,7 +6427,7 @@ declare class PantographService {
6386
6427
  * `tokenAddress` work unchanged.
6387
6428
  *
6388
6429
  * Pantograph scopes results to a single chain (it has no cross-chain feed),
6389
- * so when no `chain` is given we fall back to Base ("0x2105").
6430
+ * so when no `chain` is given we fall back to {@link DEFAULT_CHAIN} (Ethereum).
6390
6431
  */
6391
6432
  getTrendingTokens(params?: {
6392
6433
  chain?: string;
@@ -6410,7 +6451,7 @@ declare class PantographService {
6410
6451
  * returned in the canonical {@link TrendingToken} shape.
6411
6452
  *
6412
6453
  * Pantograph scopes results to a single chain (no cross-chain feed), so when
6413
- * no `chain` is given we fall back to Base ("0x2105").
6454
+ * no `chain` is given we fall back to {@link DEFAULT_CHAIN} (Ethereum).
6414
6455
  *
6415
6456
  * `duration` accepts Pantograph windows: "1h", "24h", "7d", "30d".
6416
6457
  */
@@ -6689,4 +6730,4 @@ declare class Summarizer {
6689
6730
  summarize(messages: ChatMessage[]): Promise<string>;
6690
6731
  }
6691
6732
 
6692
- export { AI_AGENT_TOOL_NAMES, type AddLiquidityFormProps, type AddLiquiditySummary, type AffiliateFee, type AgentConfig, AgentCore, type AgentResponse, ApproveTokenTool, BaseNftMessageTool, BaseSwapService, BaseTool, BaseWalletActionTool, type BuyTokenConfirmTxProps, type BuyTokenSide, BuyTokenTool, type ChainMeta, type ChainRef, ChatHistory, type ChatMessage, type ChatOptions, type ChatRole, type CheckApprovalParams, type CheckApprovalResult, type ConfirmAddLiquidityTxProps, type CortexResponse, DEFAULT_PROVIDER, DEFAULT_RPC_BY_CHAIN, DebridgeAdapter, type DecodedCall, type DecodedEvent, type DecodedParam, type DefaultSubagentName, type DefiPosition, type DefiPositionDetails, type DefiPositionToken, type DefiProtocolSummary, EstimatePoolYieldTool, type EstimatePoolYieldToolConfig, type ExchangeProviderConfig, type ExecuteSwapParams, type ExecuteSwapResult, GeminiProvider, GeminiSearchAiTool, type GeminiSearchAiToolConfig, HEX_TO_PANTOGRAPH, type HolderChangePeriod, type HolderSupplyTier, type IngestKnowledgeBaseInput, type IngestKnowledgeBaseResult, type InputTokenInfo, type KBSearchResult, KnowledgeBase, type KnowledgeBaseEntry, type KnowledgeBaseProvider, type LLMProvider, type LLMProviderConfig, type LLMResponse, type LLMToolCall, type MoralisApiResponse, MoralisService, type MoralisServiceConfig, NFTContractInfoTool, type NFTContractInfoToolConfig, type NFTContractMetadata, type NFTItem, type NFTLastSale, type NFTMetadata, NFTMetadataTool, type NFTMetadataToolConfig, NFT_AGENT_TOOL_NAMES, type NativeTokenInfo, type NftMessageToolConfig, type NftTransferLastSale, OpenAddLiquidityFormTool, type OpenAddLiquidityFormToolConfig, POOL_AGENT_TOOL_NAMES, PantographService, type PantographServiceConfig, type PaymentToken, PoolByAddressTool, type PoolByAddressToolConfig, PoolDetailTool, type PoolDetailToolConfig, type PoolDisplayInfo, type PoolOnchainInfo, PoolSearchTool, type PoolSearchToolConfig, PoolService, type PoolServiceConfig, type PresetInputs, PreviewAddLiquidityTool, type PreviewAddLiquidityToolConfig, type PriceBounds, type PriceRangePrefill, type ProviderName, type QuickRate, type RangePreset, type ReActPhase, type ReActStep, type ReActTrace, RelayAdapter, type ResolvedRange, Router, type RouterAssignment, type RouterDecision, SWAP_PROVIDER_CONFIG, SendNativeTool, SendNftTool, SendTokenTool, type StorageProvider, Subagent, type SubagentCard, type SubagentOptions, type SubagentParams, type SubagentResult, type SubagentTask, type SubagentToggles, SubgraphCoinPoolPairsTool, type SubgraphCoinPoolPairsToolConfig, SubgraphPoolByAddressTool, type SubgraphPoolByAddressToolConfig, SubgraphPoolByPositionIdTool, type SubgraphPoolByPositionIdToolConfig, SubgraphPoolSearchTool, type SubgraphPoolSearchToolConfig, SubgraphPositionDetailTool, type SubgraphPositionDetailToolConfig, SubgraphTrendingPoolsTool, type SubgraphTrendingPoolsToolConfig, type SuggestedAction, Summarizer, type SwapQuoteParams, type SwapQuoteResult, type SwapServiceConfig, SwapServiceFactory, type SwapTokenConfirmTxProps, SwapTokenTool, type SwapTxData, Synthesizer, TOKEN_AGENT_TOOL_NAMES, TRANSFER_TOPIC, TRENDING_DEFAULT_BY_HEX_CHAIN, type TokenAnalyticsResponse, type TokenAnalyticsTimeframeBuckets, TokenAnalyticsTool, type TokenAnalyticsToolConfig, type TokenApproval, type TokenApprovalSpender, type TokenApprovalToken, type TokenBalance, type TokenDisplay, type TokenHoldersResponse, TokenHoldersTool, type TokenHoldersToolConfig, TokenInfoTool, type TokenInfoToolConfig, type TokenMetadata, type TokenScoreMetrics, type TokenScoreResponse, type TokenScoreSupply, type TokenScoreTimeframeBuckets, TokenScoreTool, type TokenScoreToolConfig, type Tool, type ToolDefinition, type ToolKind, type ToolParameter, ToolRegistry, type ToolResult, type TopGainerTimeFrames, type TopGainerToken, type TopGainersTimeFrame, TopGainersTool, type TopGainersToolConfig, TopPoolsTool, type TopPoolsToolConfig, type TrackStatus, type TrackTransactionParams, type TrackTransactionResult, type TransactionByHashResponse, TransactionByHashTool, type TransactionByHashToolConfig, type TransactionLog, type TransactionReceipt, type TransactionReceiptLog, type TrendingToken, type TrendingTokenTimeframeBuckets, TrendingTokensTool, type TrendingTokensToolConfig, type UIPayload, UNISWAP_CHAIN_SLUG, type UnsignedTx, UnwrapNativeTool, type UpstashEmbedStrategy, type UpstashFusionAlgorithm, type UpstashKBUpsertEntry, UpstashKnowledgeBase, type UpstashKnowledgeBaseConfig, type UserContext, type VectorKBConfig, WALLET_ACTION_AGENT_TOOL_NAMES, WALLET_AGENT_TOOL_NAMES, type WalletActionProps, type WalletActionType, type WalletApprovalsResponse, WalletApprovalsTool, type WalletApprovalsToolConfig, type WalletDefiPositionSummary, WalletDefiPositionsTool, type WalletDefiPositionsToolConfig, type WalletDefiPositionsV1Response, type WalletDefiProtocolPositionsResponse, WalletDefiProtocolPositionsTool, type WalletDefiProtocolPositionsToolConfig, type WalletDefiProtocolPositionsV1Response, type WalletDefiSummaryResponse, WalletDefiSummaryTool, type WalletDefiSummaryToolConfig, type WalletHistoryCategory, type WalletHistoryContractInteraction, type WalletHistoryErc20Transfer, type WalletHistoryItem, type WalletHistoryNativeTransfer, type WalletHistoryNftTransfer, type WalletHistoryResponse, WalletHistoryTool, type WalletHistoryToolConfig, WalletNFTsTool, type WalletNFTsToolConfig, type WalletNetWorthChainBreakdown, type WalletNetWorthResponse, WalletNetWorthTool, type WalletNetWorthToolConfig, type WalletNetWorthUnavailableChain, type WalletNftTransferItem, type WalletNftTransfersResponse, WalletNftTransfersTool, type WalletNftTransfersToolConfig, type WalletPnlDaysWindow, type WalletPnlResponse, type WalletPnlSummaryResponse, WalletPnlSummaryTool, type WalletPnlSummaryToolConfig, type WalletPnlTokenItem, WalletPnlTool, type WalletPnlToolConfig, WalletTokenBalancesTool, type WalletTokenBalancesToolConfig, type WalletTokenTransferItem, type WalletTokenTransfersResponse, WalletTokenTransfersTool, type WalletTokenTransfersToolConfig, WrapNativeTool, ZERO_ADDRESS, buildRangePresets, buildUniswapPoolUrl, clampTick, createAiAgent, createDefaultSubagents, createNftAgent, createPoolAgent, createTokenAgent, createWalletActionAgent, createWalletAgent, ethCallAt, ethCallByChain, getAffiliateFee, getChainMeta, getDefaultRpcUrl, getGatewayAddress, getNativeTokenInfo, getPositionManagerAddress, getProviderByChain, ingestKnowledgeBase, priceToTick, resolveRpcUrl, roundTickToSpacing, rpcCall, setRpcOverrides, swapServiceFactory, tickToPrice, toPantographChain };
6733
+ export { AI_AGENT_TOOL_NAMES, type AddLiquidityFormProps, type AddLiquiditySummary, type AffiliateFee, type AgentConfig, AgentCore, type AgentResponse, ApproveTokenTool, BaseNftMessageTool, BaseSwapService, BaseTool, BaseWalletActionTool, type BuyTokenConfirmTxProps, type BuyTokenSide, BuyTokenTool, type ChainMeta, type ChainRef, type ChainSelector, ChatHistory, type ChatMessage, type ChatOptions, type ChatRole, type CheckApprovalParams, type CheckApprovalResult, type ConfirmAddLiquidityTxProps, type CortexResponse, DEFAULT_CHAIN, DEFAULT_PROVIDER, DEFAULT_RPC_BY_CHAIN, DebridgeAdapter, type DecodedCall, type DecodedEvent, type DecodedParam, type DefaultSubagentName, type DefiPosition, type DefiPositionDetails, type DefiPositionToken, type DefiProtocolSummary, EstimatePoolYieldTool, type EstimatePoolYieldToolConfig, type ExchangeProviderConfig, type ExecuteSwapParams, type ExecuteSwapResult, GeminiProvider, GeminiSearchAiTool, type GeminiSearchAiToolConfig, HEX_TO_PANTOGRAPH, type HolderChangePeriod, type HolderSupplyTier, type IngestKnowledgeBaseInput, type IngestKnowledgeBaseResult, type InputTokenInfo, type KBSearchResult, KnowledgeBase, type KnowledgeBaseEntry, type KnowledgeBaseProvider, type LLMProvider, type LLMProviderConfig, type LLMResponse, type LLMToolCall, type MoralisApiResponse, MoralisService, type MoralisServiceConfig, NFTContractInfoTool, type NFTContractInfoToolConfig, type NFTContractMetadata, type NFTItem, type NFTLastSale, type NFTMetadata, NFTMetadataTool, type NFTMetadataToolConfig, NFT_AGENT_TOOL_NAMES, type NativeTokenInfo, type NftMessageToolConfig, type NftTransferLastSale, OpenAddLiquidityFormTool, type OpenAddLiquidityFormToolConfig, POOL_AGENT_TOOL_NAMES, PantographService, type PantographServiceConfig, type PaymentToken, PoolByAddressTool, type PoolByAddressToolConfig, PoolDetailTool, type PoolDetailToolConfig, type PoolDisplayInfo, type PoolOnchainInfo, PoolSearchTool, type PoolSearchToolConfig, PoolService, type PoolServiceConfig, type PresetInputs, PreviewAddLiquidityTool, type PreviewAddLiquidityToolConfig, type PriceBounds, type PriceRangePrefill, type ProviderName, type QuickRate, type RangePreset, type ReActPhase, type ReActStep, type ReActTrace, RelayAdapter, type ResolvedRange, Router, type RouterAssignment, type RouterDecision, SUPPORTED_CHAINS, SUPPORTED_CHAINS_LABEL, SWAP_PROVIDER_CONFIG, SendNativeTool, SendNftTool, SendTokenTool, type StorageProvider, Subagent, type SubagentCard, type SubagentOptions, type SubagentParams, type SubagentResult, type SubagentTask, type SubagentToggles, SubgraphCoinPoolPairsTool, type SubgraphCoinPoolPairsToolConfig, SubgraphPoolByAddressTool, type SubgraphPoolByAddressToolConfig, SubgraphPoolByPositionIdTool, type SubgraphPoolByPositionIdToolConfig, SubgraphPoolSearchTool, type SubgraphPoolSearchToolConfig, SubgraphPositionDetailTool, type SubgraphPositionDetailToolConfig, SubgraphTrendingPoolsTool, type SubgraphTrendingPoolsToolConfig, type SuggestedAction, Summarizer, type SupportedChainId, type SupportedChainName, type SwapQuoteParams, type SwapQuoteResult, type SwapServiceConfig, SwapServiceFactory, type SwapTokenConfirmTxProps, SwapTokenTool, type SwapTxData, Synthesizer, TOKEN_AGENT_TOOL_NAMES, TRANSFER_TOPIC, TRENDING_DEFAULT_BY_HEX_CHAIN, type TokenAnalyticsResponse, type TokenAnalyticsTimeframeBuckets, TokenAnalyticsTool, type TokenAnalyticsToolConfig, type TokenApproval, type TokenApprovalSpender, type TokenApprovalToken, type TokenBalance, type TokenDisplay, type TokenHoldersResponse, TokenHoldersTool, type TokenHoldersToolConfig, TokenInfoTool, type TokenInfoToolConfig, type TokenMetadata, type TokenScoreMetrics, type TokenScoreResponse, type TokenScoreSupply, type TokenScoreTimeframeBuckets, TokenScoreTool, type TokenScoreToolConfig, type Tool, type ToolDefinition, type ToolKind, type ToolParameter, ToolRegistry, type ToolResult, type TopGainerTimeFrames, type TopGainerToken, type TopGainersTimeFrame, TopGainersTool, type TopGainersToolConfig, TopPoolsTool, type TopPoolsToolConfig, type TrackStatus, type TrackTransactionParams, type TrackTransactionResult, type TransactionByHashResponse, TransactionByHashTool, type TransactionByHashToolConfig, type TransactionLog, type TransactionReceipt, type TransactionReceiptLog, type TrendingToken, type TrendingTokenTimeframeBuckets, TrendingTokensTool, type TrendingTokensToolConfig, type UIPayload, UNISWAP_CHAIN_SLUG, type UnsignedTx, type UpstashEmbedStrategy, type UpstashFusionAlgorithm, type UpstashKBUpsertEntry, UpstashKnowledgeBase, type UpstashKnowledgeBaseConfig, type UserContext, type VectorKBConfig, WALLET_ACTION_AGENT_TOOL_NAMES, WALLET_AGENT_TOOL_NAMES, type WalletActionProps, type WalletActionType, type WalletApprovalsResponse, WalletApprovalsTool, type WalletApprovalsToolConfig, type WalletDefiPositionSummary, WalletDefiPositionsTool, type WalletDefiPositionsToolConfig, type WalletDefiPositionsV1Response, type WalletDefiProtocolPositionsResponse, WalletDefiProtocolPositionsTool, type WalletDefiProtocolPositionsToolConfig, type WalletDefiProtocolPositionsV1Response, type WalletDefiSummaryResponse, WalletDefiSummaryTool, type WalletDefiSummaryToolConfig, type WalletHistoryCategory, type WalletHistoryContractInteraction, type WalletHistoryErc20Transfer, type WalletHistoryItem, type WalletHistoryNativeTransfer, type WalletHistoryNftTransfer, type WalletHistoryResponse, WalletHistoryTool, type WalletHistoryToolConfig, WalletNFTsTool, type WalletNFTsToolConfig, type WalletNetWorthChainBreakdown, type WalletNetWorthResponse, WalletNetWorthTool, type WalletNetWorthToolConfig, type WalletNetWorthUnavailableChain, type WalletNftTransferItem, type WalletNftTransfersResponse, WalletNftTransfersTool, type WalletNftTransfersToolConfig, type WalletPnlDaysWindow, type WalletPnlResponse, type WalletPnlSummaryResponse, WalletPnlSummaryTool, type WalletPnlSummaryToolConfig, type WalletPnlTokenItem, WalletPnlTool, type WalletPnlToolConfig, WalletTokenBalancesTool, type WalletTokenBalancesToolConfig, type WalletTokenTransferItem, type WalletTokenTransfersResponse, WalletTokenTransfersTool, type WalletTokenTransfersToolConfig, ZERO_ADDRESS, buildRangePresets, buildUniswapPoolUrl, clampTick, configureSupportedChains, createAiAgent, createDefaultSubagents, createNftAgent, createPoolAgent, createTokenAgent, createWalletActionAgent, createWalletAgent, ethCallAt, ethCallByChain, getAffiliateFee, getChainMeta, getDefaultRpcUrl, getGatewayAddress, getNativeTokenInfo, getPositionManagerAddress, getProviderByChain, ingestKnowledgeBase, priceToTick, resolveRpcUrl, roundTickToSpacing, rpcCall, setRpcOverrides, swapServiceFactory, tickToPrice, toPantographChain };