keyring-agent-core 0.2.1 → 0.2.3
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/index.d.ts +6692 -27
- package/dist/index.js +877 -70
- package/package.json +6 -4
- package/dist/agent/AgentCore.d.ts +0 -256
- package/dist/agent/AgentCore.d.ts.map +0 -1
- package/dist/agent/AgentCore.js +0 -1093
- package/dist/agent/AgentCore.js.map +0 -1
- package/dist/agent/QueryRewriter.d.ts +0 -84
- package/dist/agent/QueryRewriter.d.ts.map +0 -1
- package/dist/agent/QueryRewriter.js +0 -306
- package/dist/agent/QueryRewriter.js.map +0 -1
- package/dist/agent/Router.d.ts +0 -33
- package/dist/agent/Router.d.ts.map +0 -1
- package/dist/agent/Router.js +0 -229
- package/dist/agent/Router.js.map +0 -1
- package/dist/agent/Subagent.d.ts +0 -80
- package/dist/agent/Subagent.d.ts.map +0 -1
- package/dist/agent/Subagent.js +0 -272
- package/dist/agent/Subagent.js.map +0 -1
- package/dist/agent/Synthesizer.d.ts +0 -11
- package/dist/agent/Synthesizer.d.ts.map +0 -1
- package/dist/agent/Synthesizer.js +0 -86
- package/dist/agent/Synthesizer.js.map +0 -1
- package/dist/agent/chatGraph.d.ts +0 -364
- package/dist/agent/chatGraph.d.ts.map +0 -1
- package/dist/agent/chatGraph.js +0 -184
- package/dist/agent/chatGraph.js.map +0 -1
- package/dist/agent/index.d.ts +0 -10
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -24
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/subagents/AiAgent.d.ts +0 -6
- package/dist/agent/subagents/AiAgent.d.ts.map +0 -1
- package/dist/agent/subagents/AiAgent.js +0 -52
- package/dist/agent/subagents/AiAgent.js.map +0 -1
- package/dist/agent/subagents/NftAgent.d.ts +0 -6
- package/dist/agent/subagents/NftAgent.d.ts.map +0 -1
- package/dist/agent/subagents/NftAgent.js +0 -79
- package/dist/agent/subagents/NftAgent.js.map +0 -1
- package/dist/agent/subagents/PoolAgent.d.ts +0 -6
- package/dist/agent/subagents/PoolAgent.d.ts.map +0 -1
- package/dist/agent/subagents/PoolAgent.js +0 -184
- package/dist/agent/subagents/PoolAgent.js.map +0 -1
- package/dist/agent/subagents/PoolSubgraphAgent.d.ts +0 -6
- package/dist/agent/subagents/PoolSubgraphAgent.d.ts.map +0 -1
- package/dist/agent/subagents/PoolSubgraphAgent.js +0 -117
- package/dist/agent/subagents/PoolSubgraphAgent.js.map +0 -1
- package/dist/agent/subagents/TokenAgent.d.ts +0 -6
- package/dist/agent/subagents/TokenAgent.d.ts.map +0 -1
- package/dist/agent/subagents/TokenAgent.js +0 -76
- package/dist/agent/subagents/TokenAgent.js.map +0 -1
- package/dist/agent/subagents/WalletActionAgent.d.ts +0 -6
- package/dist/agent/subagents/WalletActionAgent.d.ts.map +0 -1
- package/dist/agent/subagents/WalletActionAgent.js +0 -55
- package/dist/agent/subagents/WalletActionAgent.js.map +0 -1
- package/dist/agent/subagents/WalletAgent.d.ts +0 -6
- package/dist/agent/subagents/WalletAgent.d.ts.map +0 -1
- package/dist/agent/subagents/WalletAgent.js +0 -93
- package/dist/agent/subagents/WalletAgent.js.map +0 -1
- package/dist/agent/subagents/index.d.ts +0 -34
- package/dist/agent/subagents/index.d.ts.map +0 -1
- package/dist/agent/subagents/index.js +0 -69
- package/dist/agent/subagents/index.js.map +0 -1
- package/dist/constants/abi.d.ts +0 -551
- package/dist/constants/abi.d.ts.map +0 -1
- package/dist/constants/abi.js +0 -690
- package/dist/constants/abi.js.map +0 -1
- package/dist/functions/pool.d.ts +0 -25
- package/dist/functions/pool.d.ts.map +0 -1
- package/dist/functions/pool.js +0 -151
- package/dist/functions/pool.js.map +0 -1
- package/dist/functions/web3.d.ts +0 -31
- package/dist/functions/web3.d.ts.map +0 -1
- package/dist/functions/web3.js +0 -232
- package/dist/functions/web3.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/llm/GeminiProvider.d.ts +0 -16
- package/dist/llm/GeminiProvider.d.ts.map +0 -1
- package/dist/llm/GeminiProvider.js +0 -329
- package/dist/llm/GeminiProvider.js.map +0 -1
- package/dist/llm/index.d.ts +0 -2
- package/dist/llm/index.d.ts.map +0 -1
- package/dist/llm/index.js +0 -6
- package/dist/llm/index.js.map +0 -1
- package/dist/memory/ChatHistory.d.ts +0 -83
- package/dist/memory/ChatHistory.d.ts.map +0 -1
- package/dist/memory/ChatHistory.js +0 -143
- package/dist/memory/ChatHistory.js.map +0 -1
- package/dist/memory/KnowledgeBase.d.ts +0 -38
- package/dist/memory/KnowledgeBase.d.ts.map +0 -1
- package/dist/memory/KnowledgeBase.js +0 -139
- package/dist/memory/KnowledgeBase.js.map +0 -1
- package/dist/memory/Summarizer.d.ts +0 -12
- package/dist/memory/Summarizer.d.ts.map +0 -1
- package/dist/memory/Summarizer.js +0 -39
- package/dist/memory/Summarizer.js.map +0 -1
- package/dist/memory/UpstashKnowledgeBase.d.ts +0 -124
- package/dist/memory/UpstashKnowledgeBase.d.ts.map +0 -1
- package/dist/memory/UpstashKnowledgeBase.js +0 -152
- package/dist/memory/UpstashKnowledgeBase.js.map +0 -1
- package/dist/memory/historyUtils.d.ts +0 -58
- package/dist/memory/historyUtils.d.ts.map +0 -1
- package/dist/memory/historyUtils.js +0 -190
- package/dist/memory/historyUtils.js.map +0 -1
- package/dist/memory/index.d.ts +0 -7
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -12
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/ingestKnowledgeBase.d.ts +0 -17
- package/dist/memory/ingestKnowledgeBase.d.ts.map +0 -1
- package/dist/memory/ingestKnowledgeBase.js +0 -35
- package/dist/memory/ingestKnowledgeBase.js.map +0 -1
- package/dist/services/MoralisService.d.ts +0 -1328
- package/dist/services/MoralisService.d.ts.map +0 -1
- package/dist/services/MoralisService.js +0 -1239
- package/dist/services/MoralisService.js.map +0 -1
- package/dist/services/PantographService.d.ts +0 -98
- package/dist/services/PantographService.d.ts.map +0 -1
- package/dist/services/PantographService.js +0 -451
- package/dist/services/PantographService.js.map +0 -1
- package/dist/services/PoolService.d.ts +0 -238
- package/dist/services/PoolService.d.ts.map +0 -1
- package/dist/services/PoolService.js +0 -485
- package/dist/services/PoolService.js.map +0 -1
- package/dist/services/UniswapService.d.ts +0 -289
- package/dist/services/UniswapService.d.ts.map +0 -1
- package/dist/services/UniswapService.js +0 -585
- package/dist/services/UniswapService.js.map +0 -1
- package/dist/services/UniswapSubgraphService.d.ts +0 -144
- package/dist/services/UniswapSubgraphService.d.ts.map +0 -1
- package/dist/services/UniswapSubgraphService.js +0 -606
- package/dist/services/UniswapSubgraphService.js.map +0 -1
- package/dist/services/rpc.d.ts +0 -35
- package/dist/services/rpc.d.ts.map +0 -1
- package/dist/services/rpc.js +0 -110
- package/dist/services/rpc.js.map +0 -1
- package/dist/services/swap/BaseSwapService.d.ts +0 -17
- package/dist/services/swap/BaseSwapService.d.ts.map +0 -1
- package/dist/services/swap/BaseSwapService.js +0 -19
- package/dist/services/swap/BaseSwapService.js.map +0 -1
- package/dist/services/swap/DebridgeAdapter.d.ts +0 -37
- package/dist/services/swap/DebridgeAdapter.d.ts.map +0 -1
- package/dist/services/swap/DebridgeAdapter.js +0 -243
- package/dist/services/swap/DebridgeAdapter.js.map +0 -1
- package/dist/services/swap/RelayAdapter.d.ts +0 -19
- package/dist/services/swap/RelayAdapter.d.ts.map +0 -1
- package/dist/services/swap/RelayAdapter.js +0 -189
- package/dist/services/swap/RelayAdapter.js.map +0 -1
- package/dist/services/swap/SwapServiceFactory.d.ts +0 -25
- package/dist/services/swap/SwapServiceFactory.d.ts.map +0 -1
- package/dist/services/swap/SwapServiceFactory.js +0 -79
- package/dist/services/swap/SwapServiceFactory.js.map +0 -1
- package/dist/services/swap/addresses.d.ts +0 -3
- package/dist/services/swap/addresses.d.ts.map +0 -1
- package/dist/services/swap/addresses.js +0 -68
- package/dist/services/swap/addresses.js.map +0 -1
- package/dist/services/swap/affiliate.d.ts +0 -17
- package/dist/services/swap/affiliate.d.ts.map +0 -1
- package/dist/services/swap/affiliate.js +0 -126
- package/dist/services/swap/affiliate.js.map +0 -1
- package/dist/services/swap/config.d.ts +0 -9
- package/dist/services/swap/config.d.ts.map +0 -1
- package/dist/services/swap/config.js +0 -19
- package/dist/services/swap/config.js.map +0 -1
- package/dist/services/swap/index.d.ts +0 -10
- package/dist/services/swap/index.d.ts.map +0 -1
- package/dist/services/swap/index.js +0 -22
- package/dist/services/swap/index.js.map +0 -1
- package/dist/services/swap/types.d.ts +0 -89
- package/dist/services/swap/types.d.ts.map +0 -1
- package/dist/services/swap/types.js +0 -6
- package/dist/services/swap/types.js.map +0 -1
- package/dist/tools/BaseTool.d.ts +0 -15
- package/dist/tools/BaseTool.d.ts.map +0 -1
- package/dist/tools/BaseTool.js +0 -35
- package/dist/tools/BaseTool.js.map +0 -1
- package/dist/tools/ToolRegistry.d.ts +0 -27
- package/dist/tools/ToolRegistry.d.ts.map +0 -1
- package/dist/tools/ToolRegistry.js +0 -80
- package/dist/tools/ToolRegistry.js.map +0 -1
- package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts +0 -36
- package/dist/tools/builtin/ai/GeminiSearchAiTool.d.ts.map +0 -1
- package/dist/tools/builtin/ai/GeminiSearchAiTool.js +0 -91
- package/dist/tools/builtin/ai/GeminiSearchAiTool.js.map +0 -1
- package/dist/tools/builtin/ai/index.d.ts +0 -3
- package/dist/tools/builtin/ai/index.d.ts.map +0 -1
- package/dist/tools/builtin/ai/index.js +0 -6
- package/dist/tools/builtin/ai/index.js.map +0 -1
- package/dist/tools/builtin/index.d.ts +0 -8
- package/dist/tools/builtin/index.d.ts.map +0 -1
- package/dist/tools/builtin/index.js +0 -24
- package/dist/tools/builtin/index.js.map +0 -1
- package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts +0 -35
- package/dist/tools/builtin/nft/BaseNftMessageTool.d.ts.map +0 -1
- package/dist/tools/builtin/nft/BaseNftMessageTool.js +0 -45
- package/dist/tools/builtin/nft/BaseNftMessageTool.js.map +0 -1
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +0 -15
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +0 -1
- package/dist/tools/builtin/nft/NFTContractInfoTool.js +0 -19
- package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +0 -1
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +0 -15
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +0 -1
- package/dist/tools/builtin/nft/NFTMetadataTool.js +0 -20
- package/dist/tools/builtin/nft/NFTMetadataTool.js.map +0 -1
- package/dist/tools/builtin/nft/SendNftTool.d.ts +0 -14
- package/dist/tools/builtin/nft/SendNftTool.d.ts.map +0 -1
- package/dist/tools/builtin/nft/SendNftTool.js +0 -20
- package/dist/tools/builtin/nft/SendNftTool.js.map +0 -1
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +0 -15
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +0 -1
- package/dist/tools/builtin/nft/WalletNFTsTool.js +0 -20
- package/dist/tools/builtin/nft/WalletNFTsTool.js.map +0 -1
- package/dist/tools/builtin/nft/index.d.ts +0 -7
- package/dist/tools/builtin/nft/index.d.ts.map +0 -1
- package/dist/tools/builtin/nft/index.js +0 -10
- package/dist/tools/builtin/nft/index.js.map +0 -1
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts +0 -124
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +0 -236
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +0 -1
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +0 -128
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +0 -520
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +0 -1
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts +0 -127
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/PoolByAddressTool.js +0 -238
- package/dist/tools/builtin/pool/PoolByAddressTool.js.map +0 -1
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts +0 -127
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/PoolDetailTool.js +0 -273
- package/dist/tools/builtin/pool/PoolDetailTool.js.map +0 -1
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts +0 -50
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/PoolSearchTool.js +0 -160
- package/dist/tools/builtin/pool/PoolSearchTool.js.map +0 -1
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +0 -124
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +0 -382
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +0 -1
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts +0 -68
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool/TopPoolsTool.js +0 -159
- package/dist/tools/builtin/pool/TopPoolsTool.js.map +0 -1
- package/dist/tools/builtin/pool/index.d.ts +0 -15
- package/dist/tools/builtin/pool/index.d.ts.map +0 -1
- package/dist/tools/builtin/pool/index.js +0 -18
- package/dist/tools/builtin/pool/index.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts +0 -54
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js +0 -98
- package/dist/tools/builtin/pool-subgraph/SubgraphCoinPoolPairsTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts +0 -63
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js +0 -82
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByAddressTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts +0 -79
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js +0 -97
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolByPositionIdTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts +0 -77
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js +0 -190
- package/dist/tools/builtin/pool-subgraph/SubgraphPoolSearchTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts +0 -107
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js +0 -92
- package/dist/tools/builtin/pool-subgraph/SubgraphPositionDetailTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts +0 -56
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js +0 -94
- package/dist/tools/builtin/pool-subgraph/SubgraphTrendingPoolsTool.js.map +0 -1
- package/dist/tools/builtin/pool-subgraph/index.d.ts +0 -13
- package/dist/tools/builtin/pool-subgraph/index.d.ts.map +0 -1
- package/dist/tools/builtin/pool-subgraph/index.js +0 -18
- package/dist/tools/builtin/pool-subgraph/index.js.map +0 -1
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts +0 -71
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TokenAnalyticsTool.js +0 -147
- package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +0 -1
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts +0 -81
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TokenHoldersTool.js +0 -139
- package/dist/tools/builtin/token/TokenHoldersTool.js.map +0 -1
- package/dist/tools/builtin/token/TokenInfoTool.d.ts +0 -40
- package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TokenInfoTool.js +0 -221
- package/dist/tools/builtin/token/TokenInfoTool.js.map +0 -1
- package/dist/tools/builtin/token/TokenScoreTool.d.ts +0 -63
- package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TokenScoreTool.js +0 -148
- package/dist/tools/builtin/token/TokenScoreTool.js.map +0 -1
- package/dist/tools/builtin/token/TopGainersTool.d.ts +0 -37
- package/dist/tools/builtin/token/TopGainersTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TopGainersTool.js +0 -100
- package/dist/tools/builtin/token/TopGainersTool.js.map +0 -1
- package/dist/tools/builtin/token/TopLosersTool.d.ts +0 -66
- package/dist/tools/builtin/token/TopLosersTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TopLosersTool.js +0 -129
- package/dist/tools/builtin/token/TopLosersTool.js.map +0 -1
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts +0 -39
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +0 -1
- package/dist/tools/builtin/token/TrendingTokensTool.js +0 -83
- package/dist/tools/builtin/token/TrendingTokensTool.js.map +0 -1
- package/dist/tools/builtin/token/index.d.ts +0 -13
- package/dist/tools/builtin/token/index.d.ts.map +0 -1
- package/dist/tools/builtin/token/index.js +0 -16
- package/dist/tools/builtin/token/index.js.map +0 -1
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts +0 -70
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/TransactionByHashTool.js +0 -111
- package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts +0 -107
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js +0 -164
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts +0 -61
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +0 -100
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts +0 -68
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +0 -115
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts +0 -50
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +0 -80
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts +0 -31
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletHistoryTool.js +0 -154
- package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts +0 -44
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js +0 -122
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts +0 -86
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +0 -265
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts +0 -43
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +0 -89
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts +0 -43
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletPnlTool.js +0 -175
- package/dist/tools/builtin/wallet/WalletPnlTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts +0 -35
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +0 -68
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +0 -1
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts +0 -109
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +0 -354
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +0 -1
- package/dist/tools/builtin/wallet/index.d.ts +0 -28
- package/dist/tools/builtin/wallet/index.d.ts.map +0 -1
- package/dist/tools/builtin/wallet/index.js +0 -32
- package/dist/tools/builtin/wallet/index.js.map +0 -1
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts +0 -25
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.js +0 -98
- package/dist/tools/builtin/wallet-action/ApproveTokenTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts +0 -211
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js +0 -499
- package/dist/tools/builtin/wallet-action/BaseWalletActionTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts +0 -240
- package/dist/tools/builtin/wallet-action/BuyTokenTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/BuyTokenTool.js +0 -1257
- package/dist/tools/builtin/wallet-action/BuyTokenTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts +0 -41
- package/dist/tools/builtin/wallet-action/SendNativeTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/SendNativeTool.js +0 -127
- package/dist/tools/builtin/wallet-action/SendNativeTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts +0 -63
- package/dist/tools/builtin/wallet-action/SendTokenTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/SendTokenTool.js +0 -294
- package/dist/tools/builtin/wallet-action/SendTokenTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts +0 -247
- package/dist/tools/builtin/wallet-action/SwapTokenTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/SwapTokenTool.js +0 -1258
- package/dist/tools/builtin/wallet-action/SwapTokenTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts +0 -20
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js +0 -36
- package/dist/tools/builtin/wallet-action/UnwrapNativeTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts +0 -23
- package/dist/tools/builtin/wallet-action/WrapNativeTool.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/WrapNativeTool.js +0 -54
- package/dist/tools/builtin/wallet-action/WrapNativeTool.js.map +0 -1
- package/dist/tools/builtin/wallet-action/amountSpec.d.ts +0 -62
- package/dist/tools/builtin/wallet-action/amountSpec.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/amountSpec.js +0 -93
- package/dist/tools/builtin/wallet-action/amountSpec.js.map +0 -1
- package/dist/tools/builtin/wallet-action/gasReserve.d.ts +0 -42
- package/dist/tools/builtin/wallet-action/gasReserve.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/gasReserve.js +0 -103
- package/dist/tools/builtin/wallet-action/gasReserve.js.map +0 -1
- package/dist/tools/builtin/wallet-action/index.d.ts +0 -9
- package/dist/tools/builtin/wallet-action/index.d.ts.map +0 -1
- package/dist/tools/builtin/wallet-action/index.js +0 -20
- package/dist/tools/builtin/wallet-action/index.js.map +0 -1
- package/dist/tools/chainResolver.d.ts +0 -98
- package/dist/tools/chainResolver.d.ts.map +0 -1
- package/dist/tools/chainResolver.js +0 -302
- package/dist/tools/chainResolver.js.map +0 -1
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -23
- package/dist/tools/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -777
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
package/dist/agent/Router.js
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Router = void 0;
|
|
4
|
-
const historyUtils_1 = require("../memory/historyUtils");
|
|
5
|
-
const ROUTER_SYSTEM_PROMPT = `You are a ROUTER.
|
|
6
|
-
|
|
7
|
-
The incoming user query has ALREADY been contextualized upstream — it is a
|
|
8
|
-
self-contained, standalone question. Your ONLY job: decide which subagent(s)
|
|
9
|
-
to call. You MUST NOT answer the user — output JSON only.
|
|
10
|
-
|
|
11
|
-
## OUTPUT FORMAT
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
"analysis": "<one-line intent summary in user's language>",
|
|
15
|
-
"assignments": [
|
|
16
|
-
{
|
|
17
|
-
"subagent": "<exact subagent name>",
|
|
18
|
-
"query": "<focused sub-query for that subagent, user's language>",
|
|
19
|
-
"reasoning": "<one-line reason>"
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
## HOW TO DECIDE
|
|
25
|
-
|
|
26
|
-
Read each subagent's description carefully — they fully define what each agent handles and what it does NOT handle.
|
|
27
|
-
Apply this priority order:
|
|
28
|
-
|
|
29
|
-
1. Does the query match a specific subagent's described scope? → assign it.
|
|
30
|
-
2. Does it span multiple subagent scopes? → emit MULTIPLE assignments (they run in PARALLEL).
|
|
31
|
-
3. No specific subagent matches BUT the query is about blockchain / crypto / token / NFT / wallet / DeFi / on-chain data / smart contracts / any supported EVM chain → assign "ai-agent" with the user's original query.
|
|
32
|
-
4. Only return "assignments": [] for pure general knowledge, small-talk, or clearly non-crypto queries.
|
|
33
|
-
|
|
34
|
-
NOTE: wallet-agent / token-agent / nft-agent each have an internal AI Cortex fallback,
|
|
35
|
-
so it is safe to route a wallet/token/NFT-shaped query to its matching domain agent even
|
|
36
|
-
if no specific structured tool obviously fits — the agent will fall back to Cortex on its own.
|
|
37
|
-
|
|
38
|
-
## HARD RULES
|
|
39
|
-
|
|
40
|
-
- ONLY use subagent names from the provided list. NEVER invent names.
|
|
41
|
-
- Keep each "query" focused and concise — do not copy the full user message if only part belongs to that subagent.
|
|
42
|
-
- Do NOT include tool names, chain ids, or implementation details in the query field.
|
|
43
|
-
- Match the user's language in all fields.`;
|
|
44
|
-
/**
|
|
45
|
-
* Router — top-level orchestrator in the Router → Subagent → Tool architecture.
|
|
46
|
-
*
|
|
47
|
-
* The router's LLM sees only subagent "cards" (name + one-liner), which keeps
|
|
48
|
-
* the planning prompt small and predictable regardless of how many tools
|
|
49
|
-
* each subagent owns.
|
|
50
|
-
*/
|
|
51
|
-
class Router {
|
|
52
|
-
llm;
|
|
53
|
-
historyMessages;
|
|
54
|
-
debug;
|
|
55
|
-
constructor(llm, options) {
|
|
56
|
-
this.llm = llm;
|
|
57
|
-
// Wider default window so follow-ups ("the first one", "yes") can still
|
|
58
|
-
// see the previous assistant reply even after a couple of short turns.
|
|
59
|
-
this.historyMessages = options?.historyMessages ?? 10;
|
|
60
|
-
this.debug = options?.debug ?? false;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Ask the LLM to decide which subagent(s) should handle the query.
|
|
64
|
-
* Returns `{ assignments: [] }` when no subagent is needed.
|
|
65
|
-
*
|
|
66
|
-
* @param lastSubagents Subagent(s) that handled the previous assistant
|
|
67
|
-
* turn. Passed as a "sticky" hint — useful for short follow-ups.
|
|
68
|
-
*/
|
|
69
|
-
async route(userQuery, conversationHistory, cards, userContext, lastSubagents = []) {
|
|
70
|
-
const cardsText = cards.map((c) => `### ${c.name} (domain: ${c.domain})\n${c.description}`).join('\n\n');
|
|
71
|
-
const contextParts = [];
|
|
72
|
-
if (userContext?.walletAddress)
|
|
73
|
-
contextParts.push(`Connected wallet: ${userContext.walletAddress}`);
|
|
74
|
-
if (userContext?.chain)
|
|
75
|
-
contextParts.push(`Current chain: ${userContext.chain}`);
|
|
76
|
-
const contextSection = contextParts.length > 0 ? `\n\nUser context:\n${contextParts.join('\n')}` : '';
|
|
77
|
-
// Sticky-routing hint: if the previous turn was handled by subagent X,
|
|
78
|
-
// a follow-up very likely belongs to X too. The router is free to
|
|
79
|
-
// override when the query clearly belongs elsewhere.
|
|
80
|
-
const stickyHint = lastSubagents.length > 0
|
|
81
|
-
? `\n\nPrevious turn handled by: ${lastSubagents.join(', ')}. ` +
|
|
82
|
-
`If this query is a natural continuation (same topic), prefer the same subagent(s). ` +
|
|
83
|
-
`Override only if the query clearly belongs to a different domain.`
|
|
84
|
-
: '';
|
|
85
|
-
// Router has NO tools declared, so strip tool messages (otherwise Gemini
|
|
86
|
-
// sees orphan functionResponse parts). Then keep the recent window
|
|
87
|
-
// without splitting any remaining tool-call group.
|
|
88
|
-
const cleanHistory = (0, historyUtils_1.stripToolMessages)(conversationHistory);
|
|
89
|
-
const windowed = (0, historyUtils_1.sliceRecentKeepingToolPairs)(cleanHistory, this.historyMessages);
|
|
90
|
-
if (this.debug) {
|
|
91
|
-
console.log(`\n[Router] history window (${windowed.length} msg${windowed.length === 1 ? '' : 's'}):`);
|
|
92
|
-
console.log(`[Router] user query: "${userQuery}"`);
|
|
93
|
-
}
|
|
94
|
-
const messages = [
|
|
95
|
-
{ role: 'system', content: ROUTER_SYSTEM_PROMPT, timestamp: 0 },
|
|
96
|
-
...windowed,
|
|
97
|
-
{
|
|
98
|
-
role: 'user',
|
|
99
|
-
content: `Available subagents:\n${cardsText}${contextSection}${stickyHint}\n\nUser query: ${userQuery}`,
|
|
100
|
-
timestamp: Date.now(),
|
|
101
|
-
},
|
|
102
|
-
];
|
|
103
|
-
const t0 = Date.now();
|
|
104
|
-
// The router LLM occasionally answers in prose ("I can help you send USDC…")
|
|
105
|
-
// instead of the required JSON. Retry once, re-prompting it to emit ONLY
|
|
106
|
-
// JSON, before giving up and falling back to a direct answer.
|
|
107
|
-
let parsed = null;
|
|
108
|
-
let lastRaw = '';
|
|
109
|
-
let lastErr = null;
|
|
110
|
-
for (let attempt = 1; attempt <= 2; attempt++) {
|
|
111
|
-
const response = await this.llm.chat(messages);
|
|
112
|
-
lastRaw = response.text;
|
|
113
|
-
try {
|
|
114
|
-
parsed = this.parseJSON(response.text);
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
catch (err) {
|
|
118
|
-
lastErr = err;
|
|
119
|
-
if (attempt < 2) {
|
|
120
|
-
if (this.debug)
|
|
121
|
-
console.log(`[Router] JSON parse failed (attempt ${attempt}) — re-prompting for JSON`);
|
|
122
|
-
messages.push({ role: 'assistant', content: response.text || '', timestamp: Date.now() });
|
|
123
|
-
messages.push({
|
|
124
|
-
role: 'user',
|
|
125
|
-
content: 'That response was not valid JSON. Do NOT answer the user and do NOT ask any questions. ' +
|
|
126
|
-
'Reply with ONLY the routing JSON object ' +
|
|
127
|
-
'({"analysis": "...", "assignments": [...]}) and nothing else.',
|
|
128
|
-
timestamp: Date.now(),
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
const routerMs = Date.now() - t0;
|
|
134
|
-
if (!parsed) {
|
|
135
|
-
if (this.debug) {
|
|
136
|
-
console.log(`[Router] JSON parse failed after retry: ${lastErr}`);
|
|
137
|
-
console.log(`[Router] raw response: ${lastRaw.slice(0, 300)}`);
|
|
138
|
-
}
|
|
139
|
-
return { analysis: 'Router could not parse response.', assignments: [] };
|
|
140
|
-
}
|
|
141
|
-
const validNames = new Set(cards.map((c) => c.name));
|
|
142
|
-
const assignments = Array.isArray(parsed.assignments)
|
|
143
|
-
? parsed.assignments
|
|
144
|
-
.filter((a) => !!a && typeof a.subagent === 'string')
|
|
145
|
-
.filter((a) => validNames.has(a.subagent))
|
|
146
|
-
.map((a) => ({
|
|
147
|
-
subagent: a.subagent,
|
|
148
|
-
query: typeof a.query === 'string' && a.query ? a.query : userQuery,
|
|
149
|
-
reasoning: typeof a.reasoning === 'string' ? a.reasoning : '',
|
|
150
|
-
}))
|
|
151
|
-
: [];
|
|
152
|
-
if (this.debug) {
|
|
153
|
-
const label = assignments.length > 0 ? assignments.map((a) => a.subagent).join(', ') : '(none — direct answer)';
|
|
154
|
-
console.log(`\n[Router] (${routerMs}ms)`);
|
|
155
|
-
console.log(` analysis : ${parsed.analysis ?? ''}`);
|
|
156
|
-
console.log(` dispatch : ${label}`);
|
|
157
|
-
if (assignments.length > 0) {
|
|
158
|
-
for (const a of assignments) {
|
|
159
|
-
console.log(` → ${a.subagent}: "${a.query}"`);
|
|
160
|
-
console.log(` reason: ${a.reasoning}`);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
analysis: typeof parsed.analysis === 'string' ? parsed.analysis : '',
|
|
166
|
-
assignments,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Dispatch assignments to the matching subagents in parallel.
|
|
171
|
-
* Each subagent runs its own ReAct loop and returns a SubagentResult.
|
|
172
|
-
*/
|
|
173
|
-
async dispatch(decision, subagents, conversationHistory, userContext) {
|
|
174
|
-
if (decision.assignments.length === 0)
|
|
175
|
-
return [];
|
|
176
|
-
if (this.debug) {
|
|
177
|
-
console.log(`\n[Router] dispatching ${decision.assignments.length} subagent(s) in parallel…`);
|
|
178
|
-
}
|
|
179
|
-
const t0 = Date.now();
|
|
180
|
-
const runs = decision.assignments.map(async (a) => {
|
|
181
|
-
const agent = subagents.get(a.subagent);
|
|
182
|
-
if (!agent) {
|
|
183
|
-
if (this.debug)
|
|
184
|
-
console.log(`[Router] WARN: subagent "${a.subagent}" not registered`);
|
|
185
|
-
return {
|
|
186
|
-
subagentName: a.subagent,
|
|
187
|
-
steps: [],
|
|
188
|
-
finalAnswer: `Subagent "${a.subagent}" is not registered.`,
|
|
189
|
-
toolResults: [],
|
|
190
|
-
toolMessages: [],
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
const t1 = Date.now();
|
|
194
|
-
const result = await agent.run({ query: a.query, reasoning: a.reasoning }, conversationHistory, userContext);
|
|
195
|
-
if (this.debug) {
|
|
196
|
-
const toolNames = result.toolResults.map((r) => r.toolName).join(', ') || '—';
|
|
197
|
-
console.log(`[Router] ${a.subagent} done in ${Date.now() - t1}ms | tools: ${toolNames}`);
|
|
198
|
-
}
|
|
199
|
-
return result;
|
|
200
|
-
});
|
|
201
|
-
const results = await Promise.all(runs);
|
|
202
|
-
if (this.debug) {
|
|
203
|
-
console.log(`[Router] all subagents done in ${Date.now() - t0}ms total`);
|
|
204
|
-
}
|
|
205
|
-
return results;
|
|
206
|
-
}
|
|
207
|
-
parseJSON(text) {
|
|
208
|
-
let clean = text.trim();
|
|
209
|
-
if (clean.startsWith('```')) {
|
|
210
|
-
clean = clean
|
|
211
|
-
.replace(/^```(?:json)?\s*/, '')
|
|
212
|
-
.replace(/```\s*$/, '')
|
|
213
|
-
.trim();
|
|
214
|
-
}
|
|
215
|
-
try {
|
|
216
|
-
return JSON.parse(clean);
|
|
217
|
-
}
|
|
218
|
-
catch (err) {
|
|
219
|
-
// Salvage a JSON object embedded in prose (model prepended a sentence
|
|
220
|
-
// before the object). Grab from the first "{" to the last "}".
|
|
221
|
-
const match = clean.match(/\{[\s\S]*\}/);
|
|
222
|
-
if (match)
|
|
223
|
-
return JSON.parse(match[0]);
|
|
224
|
-
throw err;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
exports.Router = Router;
|
|
229
|
-
//# sourceMappingURL=Router.js.map
|
package/dist/agent/Router.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/agent/Router.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/Subagent.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { ChatMessage, LLMProvider, SubagentCard, SubagentResult, SubagentTask, UserContext } from '../types';
|
|
2
|
-
import type { ToolRegistry } from '../tools/ToolRegistry';
|
|
3
|
-
export interface SubagentOptions {
|
|
4
|
-
/** Max number of tool calls inside one run (budget). Default: 5 */
|
|
5
|
-
maxToolCalls?: number;
|
|
6
|
-
/** Max tokens of recent conversation history to include. Default: 6 messages */
|
|
7
|
-
historyMessages?: number;
|
|
8
|
-
/** Enable debug logging */
|
|
9
|
-
debug?: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Website link for adding liquidity / creating a pool, sourced from
|
|
12
|
-
* `AgentConfig.subgraph.linkAddLiquidity`. Only the `pool-subgraph` subagent
|
|
13
|
-
* uses it: when set, its prompt is told to append this URL whenever the user
|
|
14
|
-
* asks to add liquidity. Ignored by every other subagent.
|
|
15
|
-
*/
|
|
16
|
-
linkAddLiquidity?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface SubagentParams {
|
|
19
|
-
/** Unique id, e.g. "wallet-agent" */
|
|
20
|
-
name: string;
|
|
21
|
-
/** Capability description shown to the router LLM (dense, one-liner) */
|
|
22
|
-
description: string;
|
|
23
|
-
/** Domain tag, e.g. "wallet" */
|
|
24
|
-
domain: string;
|
|
25
|
-
/** Tool names this subagent is allowed to invoke. */
|
|
26
|
-
toolNames: string[];
|
|
27
|
-
/** Domain-expert system prompt */
|
|
28
|
-
systemPrompt: string;
|
|
29
|
-
/**
|
|
30
|
-
* Optional Cortex AI fallback tool name. When set, if the first LLM turn
|
|
31
|
-
* returns no tool calls, the subagent re-prompts the LLM and forces it to
|
|
32
|
-
* call this tool — guaranteeing the user's query goes to Cortex instead of
|
|
33
|
-
* being answered by the LLM's own knowledge with no on-chain data.
|
|
34
|
-
*/
|
|
35
|
-
cortexFallbackTool?: string;
|
|
36
|
-
/**
|
|
37
|
-
* When true, this subagent must act via a tool on every routed query — it
|
|
38
|
-
* may never answer with plain text on the first turn. If the LLM tries to
|
|
39
|
-
* (e.g. asks "which token?" instead of opening the form), the subagent
|
|
40
|
-
* re-prompts once forcing it to pick the matching tool. Used by the
|
|
41
|
-
* wallet-action agent, whose whole job is to emit a form. Ignored when
|
|
42
|
-
* `cortexFallbackTool` is set (that path already forces a tool).
|
|
43
|
-
*/
|
|
44
|
-
mustCallTool?: boolean;
|
|
45
|
-
llm: LLMProvider;
|
|
46
|
-
registry: ToolRegistry;
|
|
47
|
-
options?: SubagentOptions;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Domain-specialised worker in the Router → Subagent → Tool architecture.
|
|
51
|
-
*
|
|
52
|
-
* Each subagent:
|
|
53
|
-
* - owns a narrow subset of tools (by name)
|
|
54
|
-
* - runs its own ReAct loop via native function calling
|
|
55
|
-
* - produces a domain-scoped summary + the raw tool results
|
|
56
|
-
*
|
|
57
|
-
* Keeping each subagent's tool surface small is the main token-cost win:
|
|
58
|
-
* the LLM receives only ~5 tool schemas instead of ~23.
|
|
59
|
-
*/
|
|
60
|
-
export declare class Subagent {
|
|
61
|
-
readonly name: string;
|
|
62
|
-
readonly description: string;
|
|
63
|
-
readonly domain: string;
|
|
64
|
-
private readonly toolNames;
|
|
65
|
-
private readonly systemPrompt;
|
|
66
|
-
private readonly cortexFallbackTool?;
|
|
67
|
-
private readonly mustCallTool;
|
|
68
|
-
private readonly llm;
|
|
69
|
-
private readonly registry;
|
|
70
|
-
private readonly maxToolCalls;
|
|
71
|
-
private readonly historyMessages;
|
|
72
|
-
private readonly debug;
|
|
73
|
-
constructor(params: SubagentParams);
|
|
74
|
-
/** Card shown to the router for selection. */
|
|
75
|
-
getCard(): SubagentCard;
|
|
76
|
-
/** Only the tools this subagent owns, resolved from the shared registry. */
|
|
77
|
-
private getTools;
|
|
78
|
-
run(task: SubagentTask, conversationHistory: ChatMessage[], userContext?: UserContext): Promise<SubagentResult>;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=Subagent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Subagent.d.ts","sourceRoot":"","sources":["../../src/agent/Subagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAEX,YAAY,EACZ,cAAc,EACd,YAAY,EAGZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEpB,MAAM,EAAE,cAAc;IAsBlC,8CAA8C;IAC9C,OAAO,IAAI,YAAY;IAIvB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ;IAIV,GAAG,CACP,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,WAAW,EAAE,EAClC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,cAAc,CAAC;CAgP3B"}
|
package/dist/agent/Subagent.js
DELETED
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Subagent = void 0;
|
|
4
|
-
const historyUtils_1 = require("../memory/historyUtils");
|
|
5
|
-
/**
|
|
6
|
-
* Domain-specialised worker in the Router → Subagent → Tool architecture.
|
|
7
|
-
*
|
|
8
|
-
* Each subagent:
|
|
9
|
-
* - owns a narrow subset of tools (by name)
|
|
10
|
-
* - runs its own ReAct loop via native function calling
|
|
11
|
-
* - produces a domain-scoped summary + the raw tool results
|
|
12
|
-
*
|
|
13
|
-
* Keeping each subagent's tool surface small is the main token-cost win:
|
|
14
|
-
* the LLM receives only ~5 tool schemas instead of ~23.
|
|
15
|
-
*/
|
|
16
|
-
class Subagent {
|
|
17
|
-
name;
|
|
18
|
-
description;
|
|
19
|
-
domain;
|
|
20
|
-
toolNames;
|
|
21
|
-
systemPrompt;
|
|
22
|
-
cortexFallbackTool;
|
|
23
|
-
mustCallTool;
|
|
24
|
-
llm;
|
|
25
|
-
registry;
|
|
26
|
-
maxToolCalls;
|
|
27
|
-
historyMessages;
|
|
28
|
-
debug;
|
|
29
|
-
constructor(params) {
|
|
30
|
-
this.name = params.name;
|
|
31
|
-
this.description = params.description;
|
|
32
|
-
this.domain = params.domain;
|
|
33
|
-
this.toolNames = new Set(params.toolNames);
|
|
34
|
-
this.systemPrompt = params.systemPrompt;
|
|
35
|
-
this.cortexFallbackTool = params.cortexFallbackTool;
|
|
36
|
-
this.mustCallTool = params.mustCallTool ?? false;
|
|
37
|
-
if (this.cortexFallbackTool && !this.toolNames.has(this.cortexFallbackTool)) {
|
|
38
|
-
throw new Error(`Subagent "${params.name}": cortexFallbackTool "${this.cortexFallbackTool}" must be in toolNames.`);
|
|
39
|
-
}
|
|
40
|
-
this.llm = params.llm;
|
|
41
|
-
this.registry = params.registry;
|
|
42
|
-
this.maxToolCalls = params.options?.maxToolCalls ?? 5;
|
|
43
|
-
// Wider default window so follow-up turns ("detail the first one", "more")
|
|
44
|
-
// can still see the previous assistant reply + tool results they reference.
|
|
45
|
-
this.historyMessages = params.options?.historyMessages ?? 10;
|
|
46
|
-
this.debug = params.options?.debug ?? false;
|
|
47
|
-
}
|
|
48
|
-
/** Card shown to the router for selection. */
|
|
49
|
-
getCard() {
|
|
50
|
-
return { name: this.name, description: this.description, domain: this.domain };
|
|
51
|
-
}
|
|
52
|
-
/** Only the tools this subagent owns, resolved from the shared registry. */
|
|
53
|
-
getTools() {
|
|
54
|
-
return this.registry.getDefinitions().filter((t) => this.toolNames.has(t.name));
|
|
55
|
-
}
|
|
56
|
-
async run(task, conversationHistory, userContext) {
|
|
57
|
-
const tools = this.getTools();
|
|
58
|
-
if (this.debug) {
|
|
59
|
-
console.log(`\n [${this.name}] query: "${task.query}"`);
|
|
60
|
-
console.log(` [${this.name}] tools available: ${tools.map((t) => t.name).join(', ')}`);
|
|
61
|
-
}
|
|
62
|
-
if (tools.length === 0) {
|
|
63
|
-
return {
|
|
64
|
-
subagentName: this.name,
|
|
65
|
-
steps: [],
|
|
66
|
-
finalAnswer: `Subagent "${this.name}" has no registered tools available.`,
|
|
67
|
-
toolResults: [],
|
|
68
|
-
toolMessages: [],
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
const trace = [];
|
|
72
|
-
const toolResults = [];
|
|
73
|
-
// Interleaved assistant+toolCalls / role:'tool' messages for ChatHistory
|
|
74
|
-
const toolMessages = [];
|
|
75
|
-
const calledKeys = new Set();
|
|
76
|
-
let toolCallCount = 0;
|
|
77
|
-
// Guards the one-shot "you must call a tool" re-prompt (see mustCallTool).
|
|
78
|
-
let forcedToolRetry = false;
|
|
79
|
-
const contextParts = [];
|
|
80
|
-
if (userContext?.walletAddress)
|
|
81
|
-
contextParts.push(`Connected wallet: ${userContext.walletAddress}`);
|
|
82
|
-
if (userContext?.chain)
|
|
83
|
-
contextParts.push(`Current chain: ${userContext.chain}`);
|
|
84
|
-
const contextSection = contextParts.length > 0 ? `User context:\n${contextParts.join('\n')}` : '';
|
|
85
|
-
// Tell the LLM the exact language of the current turn. The Routed query is
|
|
86
|
-
// already in the user's language, but short/normalized queries can read as
|
|
87
|
-
// English and make the model default any generated strings (e.g. localized
|
|
88
|
-
// tool arguments like action-button prompts) to English. Stating the tag
|
|
89
|
-
// explicitly removes that ambiguity.
|
|
90
|
-
const languageLine = task.language
|
|
91
|
-
? `The user's current language is "${task.language}" (BCP-47). Write every user-facing string ` +
|
|
92
|
-
`you produce — replies AND any localized tool arguments — in this language.`
|
|
93
|
-
: '';
|
|
94
|
-
const userContent = [
|
|
95
|
-
contextSection,
|
|
96
|
-
languageLine,
|
|
97
|
-
`Routed query: ${task.query}`,
|
|
98
|
-
task.reasoning ? `Router reasoning: ${task.reasoning}` : '',
|
|
99
|
-
"Use only the tools you own. If you already have enough information, respond directly in the user's language.",
|
|
100
|
-
]
|
|
101
|
-
.filter(Boolean)
|
|
102
|
-
.join('\n\n');
|
|
103
|
-
// Filter history so only tool messages this subagent owns survive (orphan
|
|
104
|
-
// functionResponse parts would confuse Gemini since its tool schema only
|
|
105
|
-
// contains this subagent's tools). Then keep a recent window without
|
|
106
|
-
// splitting any remaining tool-call group.
|
|
107
|
-
const filteredHistory = (0, historyUtils_1.filterToolMessagesForSubagent)(conversationHistory, this.toolNames);
|
|
108
|
-
const windowed = (0, historyUtils_1.sliceRecentKeepingToolPairs)(filteredHistory, this.historyMessages);
|
|
109
|
-
const messages = [
|
|
110
|
-
{ role: 'system', content: this.systemPrompt, timestamp: 0 },
|
|
111
|
-
...windowed,
|
|
112
|
-
{ role: 'user', content: userContent, timestamp: Date.now() },
|
|
113
|
-
];
|
|
114
|
-
// Max chars stored per tool result in history.
|
|
115
|
-
// Must be large enough to preserve: transaction hashes (66 chars each),
|
|
116
|
-
// pagination cursors (100–300 chars), and enough transactions for
|
|
117
|
-
// follow-up lookups ("details of this tx"). 6000 chars ≈ 5–6 transactions
|
|
118
|
-
// with full ERC-20 transfer data while keeping context cost acceptable.
|
|
119
|
-
const TOOL_RESULT_MAX_CHARS = 6000;
|
|
120
|
-
const maxIterations = this.maxToolCalls + 2;
|
|
121
|
-
for (let i = 0; i < maxIterations; i++) {
|
|
122
|
-
const budgetLeft = toolCallCount < this.maxToolCalls;
|
|
123
|
-
const toolsThisTurn = budgetLeft ? tools : undefined;
|
|
124
|
-
const response = await this.llm.chat(messages, toolsThisTurn);
|
|
125
|
-
if (response.toolCalls.length === 0) {
|
|
126
|
-
// First-turn safety net: the subagent owns tools but the LLM tried to
|
|
127
|
-
// answer from its own knowledge. If a Cortex fallback is declared,
|
|
128
|
-
// re-prompt the LLM and force it to call Cortex with the user's query.
|
|
129
|
-
// This guarantees on-chain-shaped questions never get a hallucinated
|
|
130
|
-
// answer with zero tool calls.
|
|
131
|
-
if (toolCallCount === 0 && this.cortexFallbackTool && budgetLeft) {
|
|
132
|
-
if (this.debug) {
|
|
133
|
-
console.log(` [${this.name}] no tool called — forcing fallback to ${this.cortexFallbackTool}`);
|
|
134
|
-
}
|
|
135
|
-
messages.push({
|
|
136
|
-
role: 'user',
|
|
137
|
-
content: `You answered without calling any tool. This is not allowed for on-chain queries. ` +
|
|
138
|
-
`Call "${this.cortexFallbackTool}" now with a clear, well-formed English prompt that captures the user's intent. ` +
|
|
139
|
-
`Resolve ambiguity with sensible defaults (chain: Ethereum unless specified; result count: top 10; ` +
|
|
140
|
-
`time window: last 24h; sort key: 24h volume for "top/best/trending" queries). ` +
|
|
141
|
-
`Do NOT answer in text — call the tool.`,
|
|
142
|
-
timestamp: Date.now(),
|
|
143
|
-
});
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
// Action subagents (mustCallTool) must open a form via a tool — they may
|
|
147
|
-
// never stop to ask the user for missing fields. Force one retry where
|
|
148
|
-
// the LLM picks the matching tool itself.
|
|
149
|
-
if (toolCallCount === 0 && this.mustCallTool && budgetLeft && !forcedToolRetry) {
|
|
150
|
-
forcedToolRetry = true;
|
|
151
|
-
if (this.debug) {
|
|
152
|
-
console.log(` [${this.name}] no tool called — forcing the LLM to pick a tool`);
|
|
153
|
-
}
|
|
154
|
-
messages.push({
|
|
155
|
-
role: 'user',
|
|
156
|
-
content: `You answered in text without calling any tool. That is not allowed here: this request needs you to open a form. ` +
|
|
157
|
-
`Call exactly ONE of your tools that matches the user's intent now. Pass only the fields the user actually gave; ` +
|
|
158
|
-
`leave everything else blank — the tool/form collects the rest (including a token/amount picker when needed). ` +
|
|
159
|
-
`Do NOT ask the user for missing fields. Do NOT answer in text — call the tool.`,
|
|
160
|
-
timestamp: Date.now(),
|
|
161
|
-
});
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
if (this.debug) {
|
|
165
|
-
console.log(` [${this.name}] done — ${toolCallCount} tool call(s), answer: "${response.text.slice(0, 80)}…"`);
|
|
166
|
-
}
|
|
167
|
-
return { subagentName: this.name, steps: trace, finalAnswer: response.text, toolResults, toolMessages };
|
|
168
|
-
}
|
|
169
|
-
// The assistant message sent to Gemini for this iteration.
|
|
170
|
-
// We push it to `messages` now and will push to `toolMessages` only if
|
|
171
|
-
// at least one valid tool call succeeds in this iteration.
|
|
172
|
-
const assistantMsg = {
|
|
173
|
-
role: 'assistant',
|
|
174
|
-
content: response.text || '',
|
|
175
|
-
toolCalls: response.toolCalls,
|
|
176
|
-
timestamp: Date.now(),
|
|
177
|
-
};
|
|
178
|
-
messages.push(assistantMsg);
|
|
179
|
-
// Collect per-iteration valid tool results before deciding what to store.
|
|
180
|
-
const iterationToolMsgs = [];
|
|
181
|
-
for (const tc of response.toolCalls) {
|
|
182
|
-
if (!this.toolNames.has(tc.toolName)) {
|
|
183
|
-
const err = `Tool "${tc.toolName}" is not owned by ${this.name}`;
|
|
184
|
-
if (this.debug)
|
|
185
|
-
console.log(` [${this.name}] WARN: ${err}`);
|
|
186
|
-
trace.push({ phase: 'observe', content: err, timestamp: Date.now() });
|
|
187
|
-
messages.push({
|
|
188
|
-
role: 'tool',
|
|
189
|
-
content: err,
|
|
190
|
-
toolName: tc.toolName,
|
|
191
|
-
toolCallId: tc.callId,
|
|
192
|
-
timestamp: Date.now(),
|
|
193
|
-
});
|
|
194
|
-
continue;
|
|
195
|
-
}
|
|
196
|
-
const key = `${tc.toolName}::${JSON.stringify(tc.args)}`;
|
|
197
|
-
if (calledKeys.has(key)) {
|
|
198
|
-
const skip = `Skipped duplicate call: ${tc.toolName}`;
|
|
199
|
-
if (this.debug)
|
|
200
|
-
console.log(` [${this.name}] SKIP duplicate: ${tc.toolName}`);
|
|
201
|
-
trace.push({ phase: 'observe', content: skip, timestamp: Date.now() });
|
|
202
|
-
messages.push({
|
|
203
|
-
role: 'tool',
|
|
204
|
-
content: skip,
|
|
205
|
-
toolName: tc.toolName,
|
|
206
|
-
toolCallId: tc.callId,
|
|
207
|
-
timestamp: Date.now(),
|
|
208
|
-
});
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
calledKeys.add(key);
|
|
212
|
-
toolCallCount++;
|
|
213
|
-
if (this.debug) {
|
|
214
|
-
console.log(` [${this.name}] call #${toolCallCount}: ${tc.toolName} ${JSON.stringify(tc.args)}`);
|
|
215
|
-
}
|
|
216
|
-
trace.push({ phase: 'think', content: response.text || `Calling ${tc.toolName}`, timestamp: Date.now() });
|
|
217
|
-
trace.push({
|
|
218
|
-
phase: 'act',
|
|
219
|
-
content: `Calling tool: ${tc.toolName}`,
|
|
220
|
-
toolCall: { toolName: tc.toolName, args: tc.args },
|
|
221
|
-
timestamp: Date.now(),
|
|
222
|
-
});
|
|
223
|
-
const t0 = Date.now();
|
|
224
|
-
const result = await this.registry.execute(tc.toolName, tc.args, userContext);
|
|
225
|
-
toolResults.push(result);
|
|
226
|
-
const observation = result.success ? JSON.stringify(result.data) : `Error: ${result.error}`;
|
|
227
|
-
if (this.debug) {
|
|
228
|
-
const status = result.success ? 'OK' : 'ERR';
|
|
229
|
-
const preview = result.success
|
|
230
|
-
? `${observation.slice(0, 120)}${observation.length > 120 ? '…' : ''}`
|
|
231
|
-
: result.error;
|
|
232
|
-
console.log(` [${this.name}] ${status} (${Date.now() - t0}ms): ${preview}`);
|
|
233
|
-
}
|
|
234
|
-
trace.push({ phase: 'observe', content: observation, toolResult: result, timestamp: Date.now() });
|
|
235
|
-
const toolMsg = {
|
|
236
|
-
role: 'tool',
|
|
237
|
-
content: observation,
|
|
238
|
-
toolName: tc.toolName,
|
|
239
|
-
toolCallId: tc.callId,
|
|
240
|
-
timestamp: Date.now(),
|
|
241
|
-
};
|
|
242
|
-
messages.push(toolMsg);
|
|
243
|
-
// Store a size-capped version in history so cursors + key data survive
|
|
244
|
-
// across turns without ballooning the context window.
|
|
245
|
-
iterationToolMsgs.push({
|
|
246
|
-
...toolMsg,
|
|
247
|
-
content: observation.length > TOOL_RESULT_MAX_CHARS
|
|
248
|
-
? observation.slice(0, TOOL_RESULT_MAX_CHARS) + '…[truncated]'
|
|
249
|
-
: observation,
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
// If any valid tool was called this iteration, persist the assistant
|
|
253
|
-
// function-call message + truncated results into toolMessages.
|
|
254
|
-
if (iterationToolMsgs.length > 0) {
|
|
255
|
-
toolMessages.push(assistantMsg);
|
|
256
|
-
toolMessages.push(...iterationToolMsgs);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
if (this.debug) {
|
|
260
|
-
console.log(` [${this.name}] budget exhausted after ${toolCallCount} calls, forcing final answer`);
|
|
261
|
-
}
|
|
262
|
-
messages.push({
|
|
263
|
-
role: 'user',
|
|
264
|
-
content: 'Tool budget reached. Give your best answer now based on the data gathered.',
|
|
265
|
-
timestamp: Date.now(),
|
|
266
|
-
});
|
|
267
|
-
const final = await this.llm.chat(messages);
|
|
268
|
-
return { subagentName: this.name, steps: trace, finalAnswer: final.text, toolResults, toolMessages };
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
exports.Subagent = Subagent;
|
|
272
|
-
//# sourceMappingURL=Subagent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Subagent.js","sourceRoot":"","sources":["../../src/agent/Subagent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ChatMessage, LLMProvider, ReActTrace } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Takes the ReAct execution trace and produces a polished
|
|
4
|
-
* final response suitable for the end user.
|
|
5
|
-
*/
|
|
6
|
-
export declare class Synthesizer {
|
|
7
|
-
private llm;
|
|
8
|
-
constructor(llm: LLMProvider);
|
|
9
|
-
synthesise(userQuery: string, trace: ReActTrace, conversationHistory: ChatMessage[], language?: string): Promise<string>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=Synthesizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Synthesizer.d.ts","sourceRoot":"","sources":["../../src/agent/Synthesizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAcrE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAc;gBAEb,GAAG,EAAE,WAAW;IAItB,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EACjB,mBAAmB,EAAE,WAAW,EAAE,EAClC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;CAoDnB"}
|