keyring-agent-core 0.2.6 → 0.2.7

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
@@ -688,7 +688,7 @@ interface AddLiquidityFormProps {
688
688
  /** CoinPool gateway contract address on this chain */
689
689
  gatewayAddress: string;
690
690
  }
691
- type WalletActionType = 'send_native' | 'send_token' | 'approve_token' | 'wrap_native' | 'unwrap_native';
691
+ type WalletActionType = 'send_native' | 'send_token' | 'approve_token' | 'send_nft';
692
692
  /**
693
693
  * Common envelope every wallet-action tool returns as its UI payload `props`.
694
694
  * The FE renders the form keyed by `action`, pre-fills inputs from `parameters`,
@@ -1192,9 +1192,9 @@ interface AgentConfig {
1192
1192
  isProduction?: boolean;
1193
1193
  } | false;
1194
1194
  /**
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.
1195
+ * Website link for the NFT notice tools (`get-wallet-nfts`,
1196
+ * `get-nft-metadata`, `get-nft-contract-info`). Supplied at AgentCore
1197
+ * construction.
1198
1198
  *
1199
1199
  * Each tool emits a fixed message containing the phrase "this website". When
1200
1200
  * this URL is set, that phrase is rendered as a Markdown link to it; when
@@ -1692,7 +1692,7 @@ declare function createWalletAgent(llm: LLMProvider, registry: ToolRegistry, opt
1692
1692
  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
1693
  declare function createTokenAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
1694
1694
 
1695
- declare const NFT_AGENT_TOOL_NAMES: readonly ["get-wallet-nfts", "get-nft-metadata", "get-nft-contract-info", "send-nft", "gemini-search-ai"];
1695
+ 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
1696
  declare function createNftAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
1697
1697
 
1698
1698
  declare const AI_AGENT_TOOL_NAMES: readonly ["gemini-search-ai"];
@@ -3423,7 +3423,7 @@ declare class WalletTokenBalancesTool extends BaseTool {
3423
3423
  walletAddress: string;
3424
3424
  chain: string;
3425
3425
  tokenCount: number;
3426
- tokens: TokenBalance[];
3426
+ tokens: string[];
3427
3427
  totalUsdValue: number;
3428
3428
  error?: undefined;
3429
3429
  }>;
@@ -4115,8 +4115,8 @@ interface NftMessageToolConfig {
4115
4115
  url?: string;
4116
4116
  }
4117
4117
  /**
4118
- * Shared base for the canned-message NFT notice tools (`send-nft`,
4119
- * `get-wallet-nfts`, `get-nft-metadata`, `get-nft-contract-info`).
4118
+ * Shared base for the canned-message NFT notice tools (`get-wallet-nfts`,
4119
+ * `get-nft-metadata`, `get-nft-contract-info`).
4120
4120
  *
4121
4121
  * Each tool emits one fixed sentence that points the user at a website. The
4122
4122
  * phrase "this website" is rendered as a Markdown link to `config.url` when one
@@ -4139,19 +4139,6 @@ declare abstract class BaseNftMessageTool extends BaseTool {
4139
4139
  protected run(): Promise<unknown>;
4140
4140
  }
4141
4141
 
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
4142
  type WalletNFTsToolConfig = NftMessageToolConfig;
4156
4143
  /**
4157
4144
  * Tool: get-wallet-nfts
@@ -5421,7 +5408,6 @@ declare class SubgraphCoinPoolPairsTool extends BaseTool {
5421
5408
  * is `balance − gasReserve`, where `gasReserve = gasLimit × gasPrice`:
5422
5409
  *
5423
5410
  * - send native: gasLimit 30_000 (a plain value transfer).
5424
- * - wrap native: gasLimit 40_000 (a WETH deposit() call).
5425
5411
  * - buy / swap: gasLimit 1_000_000 (a router call + possible approval).
5426
5412
  *
5427
5413
  * The gas price is read live via `eth_gasPrice` against the chain's RPC (a
@@ -5434,8 +5420,6 @@ declare class SubgraphCoinPoolPairsTool extends BaseTool {
5434
5420
  /** Gas limits per native action kind (matches the FE's tx builders). */
5435
5421
  declare const NATIVE_GAS_LIMIT: {
5436
5422
  readonly send: 30000n;
5437
- /** wrap native → wrapped ERC-20 via the WETH-style `deposit()` payable call. */
5438
- readonly wrap: 40000n;
5439
5423
  /** buy and swap both go through a router call (+ possible approval). */
5440
5424
  readonly swap: 1000000n;
5441
5425
  };
@@ -5768,45 +5752,6 @@ declare class ApproveTokenTool extends BaseWalletActionTool {
5768
5752
  protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string>>;
5769
5753
  }
5770
5754
 
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
5755
  /**
5811
5756
  * Tool: open-buy-token-form
5812
5757
  *
@@ -6288,6 +6233,56 @@ declare class SwapTokenTool extends BaseTool {
6288
6233
  private formatPrice;
6289
6234
  }
6290
6235
 
6236
+ /** Optional NFT website link, shown when more than one owned NFT matches. */
6237
+ interface SendNftToolConfig {
6238
+ url?: string;
6239
+ }
6240
+ /**
6241
+ * Tool: open-send-nft-form
6242
+ *
6243
+ * Resolves a "send NFT" intent and asks the FE to render its `SendNftForm`.
6244
+ * Mirrors the chatbot SDK's `send_nft` schema:
6245
+ * { contract_address, token_id, to_address, token_standard, amount, maxAmount, nft_name }
6246
+ *
6247
+ * Resolution rules (in order):
6248
+ * - No identifier at all → emit a fixed "no NFT specified" notice.
6249
+ * - contract_address + token_id → confirm ownership; emit form (image + name +
6250
+ * token_standard + maxAmount come from the wallet row). Not held → error.
6251
+ * - contract_address only → list the user's holdings in that collection.
6252
+ * • 0 → error • 1 → form • >1 → website notice.
6253
+ * - token_id only → list all owned NFTs whose token_id matches.
6254
+ * • 0 → error • 1 → form • >1 → website notice.
6255
+ * - nft_name only → fuzzy-match against owned NFTs' names.
6256
+ * • 0 → error • 1 → form • >1 → website notice.
6257
+ *
6258
+ * When more than one owned NFT matches we cannot safely pick one for the user,
6259
+ * so we return a fixed notice pointing them to the NFT website (Markdown link
6260
+ * when `url` is configured, plain text otherwise) — matching the pattern used
6261
+ * by the other NFT notice tools.
6262
+ */
6263
+ declare class SendNftTool extends BaseWalletActionTool {
6264
+ name: string;
6265
+ protected readonly actionType: WalletActionType;
6266
+ protected readonly component = "SendNftForm";
6267
+ protected readonly userInputFields: readonly [{
6268
+ readonly key: "to_address";
6269
+ readonly label: "the recipient address";
6270
+ }];
6271
+ /** Resolved (trimmed) NFT website URL, used when >1 owned NFTs match. */
6272
+ private readonly url?;
6273
+ constructor(config?: MoralisServiceConfig, options?: SendNftToolConfig);
6274
+ description: string;
6275
+ parameters: ToolParameter[];
6276
+ protected buildParameters(args: Record<string, unknown>, userContext?: UserContext): Promise<Record<string, string>>;
6277
+ private normaliseString;
6278
+ private normaliseTokenId;
6279
+ private normaliseAmountInt;
6280
+ private nftDisplayName;
6281
+ private matchNfts;
6282
+ private paramsFromInputs;
6283
+ private paramsFromNft;
6284
+ }
6285
+
6291
6286
  /**
6292
6287
  * Shared JSON-RPC client + default public RPC endpoints.
6293
6288
  *
@@ -6689,4 +6684,4 @@ declare class Summarizer {
6689
6684
  summarize(messages: ChatMessage[]): Promise<string>;
6690
6685
  }
6691
6686
 
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 };
6687
+ 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, 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, 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 };