keyring-agent-core 0.1.0
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 +169 -0
- package/dist/agent/AgentCore.d.ts +220 -0
- package/dist/agent/AgentCore.d.ts.map +1 -0
- package/dist/agent/AgentCore.js +950 -0
- package/dist/agent/AgentCore.js.map +1 -0
- package/dist/agent/QueryRewriter.d.ts +67 -0
- package/dist/agent/QueryRewriter.d.ts.map +1 -0
- package/dist/agent/QueryRewriter.js +262 -0
- package/dist/agent/QueryRewriter.js.map +1 -0
- package/dist/agent/Router.d.ts +33 -0
- package/dist/agent/Router.d.ts.map +1 -0
- package/dist/agent/Router.js +191 -0
- package/dist/agent/Router.js.map +1 -0
- package/dist/agent/Subagent.d.ts +63 -0
- package/dist/agent/Subagent.d.ts.map +1 -0
- package/dist/agent/Subagent.js +240 -0
- package/dist/agent/Subagent.js.map +1 -0
- package/dist/agent/Synthesizer.d.ts +11 -0
- package/dist/agent/Synthesizer.d.ts.map +1 -0
- package/dist/agent/Synthesizer.js +86 -0
- package/dist/agent/Synthesizer.js.map +1 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +24 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/subagents/AiAgent.d.ts +6 -0
- package/dist/agent/subagents/AiAgent.d.ts.map +1 -0
- package/dist/agent/subagents/AiAgent.js +48 -0
- package/dist/agent/subagents/AiAgent.js.map +1 -0
- package/dist/agent/subagents/NftAgent.d.ts +6 -0
- package/dist/agent/subagents/NftAgent.d.ts.map +1 -0
- package/dist/agent/subagents/NftAgent.js +69 -0
- package/dist/agent/subagents/NftAgent.js.map +1 -0
- package/dist/agent/subagents/PoolAgent.d.ts +6 -0
- package/dist/agent/subagents/PoolAgent.d.ts.map +1 -0
- package/dist/agent/subagents/PoolAgent.js +184 -0
- package/dist/agent/subagents/PoolAgent.js.map +1 -0
- package/dist/agent/subagents/TokenAgent.d.ts +6 -0
- package/dist/agent/subagents/TokenAgent.d.ts.map +1 -0
- package/dist/agent/subagents/TokenAgent.js +75 -0
- package/dist/agent/subagents/TokenAgent.js.map +1 -0
- package/dist/agent/subagents/WalletAgent.d.ts +6 -0
- package/dist/agent/subagents/WalletAgent.d.ts.map +1 -0
- package/dist/agent/subagents/WalletAgent.js +92 -0
- package/dist/agent/subagents/WalletAgent.js.map +1 -0
- package/dist/agent/subagents/index.d.ts +14 -0
- package/dist/agent/subagents/index.d.ts.map +1 -0
- package/dist/agent/subagents/index.js +38 -0
- package/dist/agent/subagents/index.js.map +1 -0
- package/dist/constants/abi.d.ts +520 -0
- package/dist/constants/abi.d.ts.map +1 -0
- package/dist/constants/abi.js +667 -0
- package/dist/constants/abi.js.map +1 -0
- package/dist/functions/pool.d.ts +25 -0
- package/dist/functions/pool.d.ts.map +1 -0
- package/dist/functions/pool.js +151 -0
- package/dist/functions/pool.js.map +1 -0
- package/dist/functions/web3.d.ts +32 -0
- package/dist/functions/web3.d.ts.map +1 -0
- package/dist/functions/web3.js +277 -0
- package/dist/functions/web3.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/GeminiProvider.d.ts +16 -0
- package/dist/llm/GeminiProvider.d.ts.map +1 -0
- package/dist/llm/GeminiProvider.js +248 -0
- package/dist/llm/GeminiProvider.js.map +1 -0
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +6 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/memory/ChatHistory.d.ts +83 -0
- package/dist/memory/ChatHistory.d.ts.map +1 -0
- package/dist/memory/ChatHistory.js +143 -0
- package/dist/memory/ChatHistory.js.map +1 -0
- package/dist/memory/KnowledgeBase.d.ts +38 -0
- package/dist/memory/KnowledgeBase.d.ts.map +1 -0
- package/dist/memory/KnowledgeBase.js +139 -0
- package/dist/memory/KnowledgeBase.js.map +1 -0
- package/dist/memory/Summarizer.d.ts +12 -0
- package/dist/memory/Summarizer.d.ts.map +1 -0
- package/dist/memory/Summarizer.js +39 -0
- package/dist/memory/Summarizer.js.map +1 -0
- package/dist/memory/UpstashKnowledgeBase.d.ts +124 -0
- package/dist/memory/UpstashKnowledgeBase.d.ts.map +1 -0
- package/dist/memory/UpstashKnowledgeBase.js +152 -0
- package/dist/memory/UpstashKnowledgeBase.js.map +1 -0
- package/dist/memory/historyUtils.d.ts +58 -0
- package/dist/memory/historyUtils.d.ts.map +1 -0
- package/dist/memory/historyUtils.js +190 -0
- package/dist/memory/historyUtils.js.map +1 -0
- package/dist/memory/index.d.ts +7 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/ingestKnowledgeBase.d.ts +17 -0
- package/dist/memory/ingestKnowledgeBase.d.ts.map +1 -0
- package/dist/memory/ingestKnowledgeBase.js +35 -0
- package/dist/memory/ingestKnowledgeBase.js.map +1 -0
- package/dist/services/MoralisService.d.ts +1350 -0
- package/dist/services/MoralisService.d.ts.map +1 -0
- package/dist/services/MoralisService.js +1364 -0
- package/dist/services/MoralisService.js.map +1 -0
- package/dist/services/PantographService.d.ts +38 -0
- package/dist/services/PantographService.d.ts.map +1 -0
- package/dist/services/PantographService.js +199 -0
- package/dist/services/PantographService.js.map +1 -0
- package/dist/services/PoolService.d.ts +241 -0
- package/dist/services/PoolService.d.ts.map +1 -0
- package/dist/services/PoolService.js +507 -0
- package/dist/services/PoolService.js.map +1 -0
- package/dist/services/UniswapService.d.ts +289 -0
- package/dist/services/UniswapService.d.ts.map +1 -0
- package/dist/services/UniswapService.js +585 -0
- package/dist/services/UniswapService.js.map +1 -0
- package/dist/services/swap/BaseSwapService.d.ts +17 -0
- package/dist/services/swap/BaseSwapService.d.ts.map +1 -0
- package/dist/services/swap/BaseSwapService.js +19 -0
- package/dist/services/swap/BaseSwapService.js.map +1 -0
- package/dist/services/swap/DebridgeAdapter.d.ts +20 -0
- package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -0
- package/dist/services/swap/DebridgeAdapter.js +175 -0
- package/dist/services/swap/DebridgeAdapter.js.map +1 -0
- package/dist/services/swap/RelayAdapter.d.ts +19 -0
- package/dist/services/swap/RelayAdapter.d.ts.map +1 -0
- package/dist/services/swap/RelayAdapter.js +189 -0
- package/dist/services/swap/RelayAdapter.js.map +1 -0
- package/dist/services/swap/SwapServiceFactory.d.ts +24 -0
- package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -0
- package/dist/services/swap/SwapServiceFactory.js +74 -0
- package/dist/services/swap/SwapServiceFactory.js.map +1 -0
- package/dist/services/swap/addresses.d.ts +3 -0
- package/dist/services/swap/addresses.d.ts.map +1 -0
- package/dist/services/swap/addresses.js +68 -0
- package/dist/services/swap/addresses.js.map +1 -0
- package/dist/services/swap/affiliate.d.ts +17 -0
- package/dist/services/swap/affiliate.d.ts.map +1 -0
- package/dist/services/swap/affiliate.js +126 -0
- package/dist/services/swap/affiliate.js.map +1 -0
- package/dist/services/swap/config.d.ts +9 -0
- package/dist/services/swap/config.d.ts.map +1 -0
- package/dist/services/swap/config.js +19 -0
- package/dist/services/swap/config.js.map +1 -0
- package/dist/services/swap/index.d.ts +10 -0
- package/dist/services/swap/index.d.ts.map +1 -0
- package/dist/services/swap/index.js +22 -0
- package/dist/services/swap/index.js.map +1 -0
- package/dist/services/swap/types.d.ts +89 -0
- package/dist/services/swap/types.d.ts.map +1 -0
- package/dist/services/swap/types.js +6 -0
- package/dist/services/swap/types.js.map +1 -0
- package/dist/tools/BaseTool.d.ts +15 -0
- package/dist/tools/BaseTool.d.ts.map +1 -0
- package/dist/tools/BaseTool.js +35 -0
- package/dist/tools/BaseTool.js.map +1 -0
- package/dist/tools/ToolRegistry.d.ts +27 -0
- package/dist/tools/ToolRegistry.d.ts.map +1 -0
- package/dist/tools/ToolRegistry.js +80 -0
- package/dist/tools/ToolRegistry.js.map +1 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +33 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +1 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.js +76 -0
- package/dist/tools/builtin/ai/MoralisCortexTool.js.map +1 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +22 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +1 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.js +80 -0
- package/dist/tools/builtin/ai/SolanaCortexTool.js.map +1 -0
- package/dist/tools/builtin/ai/index.d.ts +5 -0
- package/dist/tools/builtin/ai/index.d.ts.map +1 -0
- package/dist/tools/builtin/ai/index.js +8 -0
- package/dist/tools/builtin/ai/index.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +6 -0
- package/dist/tools/builtin/index.d.ts.map +1 -0
- package/dist/tools/builtin/index.js +22 -0
- package/dist/tools/builtin/index.js.map +1 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +21 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.js +54 -0
- package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +121 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.js +159 -0
- package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +82 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.js +172 -0
- package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -0
- package/dist/tools/builtin/nft/index.d.ts +7 -0
- package/dist/tools/builtin/nft/index.d.ts.map +1 -0
- package/dist/tools/builtin/nft/index.js +10 -0
- package/dist/tools/builtin/nft/index.js.map +1 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts +124 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +235 -0
- package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +127 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +517 -0
- package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts +127 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.js +237 -0
- package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts +127 -0
- package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolDetailTool.js +272 -0
- package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -0
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts +50 -0
- package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PoolSearchTool.js +159 -0
- package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +123 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +380 -0
- package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -0
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts +68 -0
- package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -0
- package/dist/tools/builtin/pool/TopPoolsTool.js +158 -0
- package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -0
- package/dist/tools/builtin/pool/index.d.ts +15 -0
- package/dist/tools/builtin/pool/index.d.ts.map +1 -0
- package/dist/tools/builtin/pool/index.js +18 -0
- package/dist/tools/builtin/pool/index.js.map +1 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts +71 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.js +146 -0
- package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts +81 -0
- package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenHoldersTool.js +138 -0
- package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenInfoTool.d.ts +36 -0
- package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenInfoTool.js +163 -0
- package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -0
- package/dist/tools/builtin/token/TokenScoreTool.d.ts +63 -0
- package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TokenScoreTool.js +147 -0
- package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -0
- package/dist/tools/builtin/token/TopGainersTool.d.ts +46 -0
- package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TopGainersTool.js +110 -0
- package/dist/tools/builtin/token/TopGainersTool.js.map +1 -0
- package/dist/tools/builtin/token/TopLosersTool.d.ts +66 -0
- package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TopLosersTool.js +128 -0
- package/dist/tools/builtin/token/TopLosersTool.js.map +1 -0
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts +39 -0
- package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -0
- package/dist/tools/builtin/token/TrendingTokensTool.js +75 -0
- package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -0
- package/dist/tools/builtin/token/index.d.ts +15 -0
- package/dist/tools/builtin/token/index.d.ts.map +1 -0
- package/dist/tools/builtin/token/index.js +18 -0
- package/dist/tools/builtin/token/index.js.map +1 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts +70 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.js +110 -0
- package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts +107 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js +163 -0
- package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts +61 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +99 -0
- package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts +68 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +114 -0
- package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts +50 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +79 -0
- package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts +31 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.js +153 -0
- package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts +44 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js +122 -0
- package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts +86 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +264 -0
- package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts +43 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +88 -0
- package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts +43 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.js +174 -0
- package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts +35 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +67 -0
- package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts +109 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +353 -0
- package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -0
- package/dist/tools/builtin/wallet/index.d.ts +25 -0
- package/dist/tools/builtin/wallet/index.d.ts.map +1 -0
- package/dist/tools/builtin/wallet/index.js +28 -0
- package/dist/tools/builtin/wallet/index.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +23 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +566 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const Q96: bigint;
|
|
2
|
+
/** sqrtPriceX96 → price of token0 in terms of token1, scaled for decimals */
|
|
3
|
+
export declare function sqrtPriceX96ToPrice(sqrtPriceX96: bigint, token0Decimals: number, token1Decimals: number): number;
|
|
4
|
+
export declare function tickToSqrtPrice(tick: number, decimals0: number, decimals1: number): number;
|
|
5
|
+
/** tick → price of token0 in terms of token1, decimal-adjusted */
|
|
6
|
+
export declare function tickToPrice(tick: number, token0Decimals: number, token1Decimals: number): number;
|
|
7
|
+
/** price (token1 per token0, decimal-adjusted) → tick */
|
|
8
|
+
export declare function priceToTick(price: number, token0Decimals: number, token1Decimals: number): number;
|
|
9
|
+
/** Round a tick to the nearest valid tick respecting tickSpacing */
|
|
10
|
+
export declare function roundTickToSpacing(tick: number, tickSpacing: number, direction?: 'down' | 'up' | 'nearest'): number;
|
|
11
|
+
export declare const MIN_TICK = -887272;
|
|
12
|
+
export declare const MAX_TICK = 887272;
|
|
13
|
+
export declare function clampTick(tick: number): number;
|
|
14
|
+
export declare const HEX_RE: RegExp;
|
|
15
|
+
export declare function strip0x(hex: string): string;
|
|
16
|
+
export declare function pad32(hex: string): string;
|
|
17
|
+
export declare function encodeAddress(addr: string): string;
|
|
18
|
+
export declare function encodeUint(value: bigint | number | string, bits?: number): string;
|
|
19
|
+
export declare function encodeInt24(value: number | bigint): string;
|
|
20
|
+
export declare function keccakHex(hex: string): string;
|
|
21
|
+
export declare function functionSelector(signature: string): string;
|
|
22
|
+
export declare function decodeUint256(hex: string, offset: number): bigint;
|
|
23
|
+
export declare function decodeInt24(hex: string, offset: number): number;
|
|
24
|
+
export declare function decodeAddress(hex: string, offset: number): string;
|
|
25
|
+
//# sourceMappingURL=pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/functions/pool.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,GAAG,QAAY,CAAC;AAE7B,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAMhH;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAEhG;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CASjG;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAM,GAAG,IAAI,GAAG,SAAqB,GAC/C,MAAM,CAUR;AAGD,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9C;AAID,eAAO,MAAM,MAAM,QAAmB,CAAC;AAEvC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,SAAM,GAAG,MAAM,CAM9E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAO1D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AASD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG1D;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgB/D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HEX_RE = exports.MAX_TICK = exports.MIN_TICK = exports.Q96 = void 0;
|
|
4
|
+
exports.sqrtPriceX96ToPrice = sqrtPriceX96ToPrice;
|
|
5
|
+
exports.tickToSqrtPrice = tickToSqrtPrice;
|
|
6
|
+
exports.tickToPrice = tickToPrice;
|
|
7
|
+
exports.priceToTick = priceToTick;
|
|
8
|
+
exports.roundTickToSpacing = roundTickToSpacing;
|
|
9
|
+
exports.clampTick = clampTick;
|
|
10
|
+
exports.strip0x = strip0x;
|
|
11
|
+
exports.pad32 = pad32;
|
|
12
|
+
exports.encodeAddress = encodeAddress;
|
|
13
|
+
exports.encodeUint = encodeUint;
|
|
14
|
+
exports.encodeInt24 = encodeInt24;
|
|
15
|
+
exports.keccakHex = keccakHex;
|
|
16
|
+
exports.functionSelector = functionSelector;
|
|
17
|
+
exports.decodeUint256 = decodeUint256;
|
|
18
|
+
exports.decodeInt24 = decodeInt24;
|
|
19
|
+
exports.decodeAddress = decodeAddress;
|
|
20
|
+
const js_sha3_1 = require("js-sha3");
|
|
21
|
+
// ---- Tick math ----
|
|
22
|
+
exports.Q96 = 2n ** 96n;
|
|
23
|
+
/** sqrtPriceX96 → price of token0 in terms of token1, scaled for decimals */
|
|
24
|
+
function sqrtPriceX96ToPrice(sqrtPriceX96, token0Decimals, token1Decimals) {
|
|
25
|
+
const numerator = sqrtPriceX96 * sqrtPriceX96;
|
|
26
|
+
const denominator = exports.Q96 * exports.Q96;
|
|
27
|
+
const priceX18 = (numerator * 10n ** 18n) / denominator;
|
|
28
|
+
const price = Number(priceX18) / 1e18;
|
|
29
|
+
return price * Math.pow(10, token0Decimals - token1Decimals);
|
|
30
|
+
}
|
|
31
|
+
function tickToSqrtPrice(tick, decimals0, decimals1) {
|
|
32
|
+
return Math.sqrt(tickToPrice(tick, decimals0, decimals1));
|
|
33
|
+
}
|
|
34
|
+
/** tick → price of token0 in terms of token1, decimal-adjusted */
|
|
35
|
+
function tickToPrice(tick, token0Decimals, token1Decimals) {
|
|
36
|
+
return Math.pow(1.0001, tick) * Math.pow(10, token0Decimals - token1Decimals);
|
|
37
|
+
}
|
|
38
|
+
/** price (token1 per token0, decimal-adjusted) → tick */
|
|
39
|
+
function priceToTick(price, token0Decimals, token1Decimals) {
|
|
40
|
+
if (price <= 0)
|
|
41
|
+
throw new Error('priceToTick: price must be > 0');
|
|
42
|
+
const adjusted = price / Math.pow(10, token0Decimals - token1Decimals);
|
|
43
|
+
const raw = Math.log(adjusted) / Math.log(1.0001);
|
|
44
|
+
// Snap to integer when float drift makes us miss an exact tick by <1e-3.
|
|
45
|
+
// Without this, prices that land exactly on a tick (eg the Uniswap UI's
|
|
46
|
+
// displayed bounds) round the wrong way and shift the range by 1 spacing.
|
|
47
|
+
const rounded = Math.round(raw);
|
|
48
|
+
return Math.abs(raw - rounded) < 1e-3 ? rounded : Math.floor(raw);
|
|
49
|
+
}
|
|
50
|
+
/** Round a tick to the nearest valid tick respecting tickSpacing */
|
|
51
|
+
function roundTickToSpacing(tick, tickSpacing, direction = 'nearest') {
|
|
52
|
+
// Snap near-integer floats before modulo (defensive — priceToTick already does this).
|
|
53
|
+
const t = Math.abs(tick - Math.round(tick)) < 1e-6 ? Math.round(tick) : tick;
|
|
54
|
+
const remainder = ((t % tickSpacing) + tickSpacing) % tickSpacing;
|
|
55
|
+
if (remainder === 0)
|
|
56
|
+
return t;
|
|
57
|
+
const lower = t - remainder;
|
|
58
|
+
const upper = lower + tickSpacing;
|
|
59
|
+
if (direction === 'down')
|
|
60
|
+
return lower;
|
|
61
|
+
if (direction === 'up')
|
|
62
|
+
return upper;
|
|
63
|
+
return t - lower < upper - t ? lower : upper;
|
|
64
|
+
}
|
|
65
|
+
// Uniswap V3 min/max tick (clamp helpers so presets never exceed the protocol bounds)
|
|
66
|
+
exports.MIN_TICK = -887272;
|
|
67
|
+
exports.MAX_TICK = 887272;
|
|
68
|
+
function clampTick(tick) {
|
|
69
|
+
if (tick < exports.MIN_TICK)
|
|
70
|
+
return exports.MIN_TICK;
|
|
71
|
+
if (tick > exports.MAX_TICK)
|
|
72
|
+
return exports.MAX_TICK;
|
|
73
|
+
return tick;
|
|
74
|
+
}
|
|
75
|
+
// ---- ABI encoding helpers (no viem) ----
|
|
76
|
+
exports.HEX_RE = /^0x[0-9a-f]+$/i;
|
|
77
|
+
function strip0x(hex) {
|
|
78
|
+
return hex.startsWith('0x') || hex.startsWith('0X') ? hex.slice(2) : hex;
|
|
79
|
+
}
|
|
80
|
+
function pad32(hex) {
|
|
81
|
+
const clean = strip0x(hex).toLowerCase();
|
|
82
|
+
if (clean.length > 64)
|
|
83
|
+
throw new Error(`pad32: input too long (${clean.length})`);
|
|
84
|
+
return clean.padStart(64, '0');
|
|
85
|
+
}
|
|
86
|
+
function encodeAddress(addr) {
|
|
87
|
+
if (!exports.HEX_RE.test(addr) || strip0x(addr).length !== 40) {
|
|
88
|
+
throw new Error(`encodeAddress: invalid address ${addr}`);
|
|
89
|
+
}
|
|
90
|
+
return pad32(addr.toLowerCase());
|
|
91
|
+
}
|
|
92
|
+
function encodeUint(value, bits = 256) {
|
|
93
|
+
const v = typeof value === 'bigint' ? value : BigInt(value);
|
|
94
|
+
if (v < 0n)
|
|
95
|
+
throw new Error('encodeUint: negative');
|
|
96
|
+
const hex = v.toString(16);
|
|
97
|
+
if (hex.length > bits / 4)
|
|
98
|
+
throw new Error(`encodeUint: overflow ${bits}`);
|
|
99
|
+
return pad32(hex);
|
|
100
|
+
}
|
|
101
|
+
function encodeInt24(value) {
|
|
102
|
+
// Two's complement for signed ints (24-bit value, padded to 256-bit slot)
|
|
103
|
+
const v = typeof value === 'bigint' ? value : BigInt(value);
|
|
104
|
+
if (v >= 0n)
|
|
105
|
+
return pad32(v.toString(16));
|
|
106
|
+
// negative: 256-bit two's complement
|
|
107
|
+
const max = 1n << 256n;
|
|
108
|
+
return pad32((max + v).toString(16));
|
|
109
|
+
}
|
|
110
|
+
function keccakHex(hex) {
|
|
111
|
+
return '0x' + (0, js_sha3_1.keccak_256)(hexToBytes(hex));
|
|
112
|
+
}
|
|
113
|
+
function hexToBytes(hex) {
|
|
114
|
+
const clean = strip0x(hex);
|
|
115
|
+
const out = new Uint8Array(clean.length / 2);
|
|
116
|
+
for (let i = 0; i < out.length; i++)
|
|
117
|
+
out[i] = parseInt(clean.substring(i * 2, i * 2 + 2), 16);
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
function functionSelector(signature) {
|
|
121
|
+
const hash = (0, js_sha3_1.keccak_256)(new TextEncoder().encode(signature));
|
|
122
|
+
return '0x' + hash.slice(0, 8);
|
|
123
|
+
}
|
|
124
|
+
// ---- ABI decoding helpers ----
|
|
125
|
+
function decodeUint256(hex, offset) {
|
|
126
|
+
const slice = hex.substring(offset, offset + 64);
|
|
127
|
+
return slice ? BigInt('0x' + slice) : 0n;
|
|
128
|
+
}
|
|
129
|
+
function decodeInt24(hex, offset) {
|
|
130
|
+
const slice = hex.substring(offset, offset + 64);
|
|
131
|
+
const v = BigInt('0x' + slice);
|
|
132
|
+
// sign-extend from 24 bits if top bit of 24-bit window is set
|
|
133
|
+
const max = 1n << 256n;
|
|
134
|
+
const halfWindow = 1n << 23n;
|
|
135
|
+
// The slot is right-padded for ints — when negative, the upper bytes are 0xff…
|
|
136
|
+
// So if the full 256-bit value has its sign bit set, treat as negative.
|
|
137
|
+
if (v >= 1n << 255n) {
|
|
138
|
+
return Number(v - max);
|
|
139
|
+
}
|
|
140
|
+
// Positive: just return the int24 portion (lower 24 bits).
|
|
141
|
+
// Values up to (1<<23)-1 are fine as positive Number.
|
|
142
|
+
if (v < halfWindow)
|
|
143
|
+
return Number(v);
|
|
144
|
+
// shouldn't happen for tick (always int24 sign-extended), but be safe
|
|
145
|
+
return Number(v);
|
|
146
|
+
}
|
|
147
|
+
function decodeAddress(hex, offset) {
|
|
148
|
+
const slice = hex.substring(offset + 24, offset + 64);
|
|
149
|
+
return '0x' + slice.toLowerCase();
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/functions/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare function isAddressEVM(address: string): boolean;
|
|
2
|
+
export declare function isSolanaAddress(address: string): boolean;
|
|
3
|
+
type AbiType = string;
|
|
4
|
+
interface AbiParameter {
|
|
5
|
+
name?: string;
|
|
6
|
+
type: AbiType;
|
|
7
|
+
components?: readonly AbiParameter[];
|
|
8
|
+
internalType?: string;
|
|
9
|
+
}
|
|
10
|
+
interface AbiFunctionItem {
|
|
11
|
+
type: 'function' | 'constructor' | 'fallback' | 'receive';
|
|
12
|
+
name?: string;
|
|
13
|
+
inputs?: readonly AbiParameter[];
|
|
14
|
+
outputs?: readonly AbiParameter[];
|
|
15
|
+
stateMutability?: string;
|
|
16
|
+
}
|
|
17
|
+
interface AbiOtherItem {
|
|
18
|
+
type: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
inputs?: readonly AbiParameter[];
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
type AbiItem = AbiFunctionItem | AbiOtherItem;
|
|
24
|
+
type Abi = readonly AbiItem[];
|
|
25
|
+
export declare function encodeAbiParameters(params: readonly AbiParameter[], values: unknown[]): `0x${string}`;
|
|
26
|
+
export declare function encodeFunctionData({ abi, functionName, args, }: {
|
|
27
|
+
abi: Abi;
|
|
28
|
+
functionName: string;
|
|
29
|
+
args?: unknown[];
|
|
30
|
+
}): `0x${string}`;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=web3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/functions/web3.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AA2CD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWxD;AAID,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AACD,KAAK,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC;AAC9C,KAAK,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC;AAoO9B,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,MAAM,EAAE,CAMrG;AAID,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,YAAY,EACZ,IAAS,GACV,EAAE;IACD,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB,GAAG,KAAK,MAAM,EAAE,CAiBhB"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAddressEVM = isAddressEVM;
|
|
4
|
+
exports.isSolanaAddress = isSolanaAddress;
|
|
5
|
+
exports.encodeAbiParameters = encodeAbiParameters;
|
|
6
|
+
exports.encodeFunctionData = encodeFunctionData;
|
|
7
|
+
function isAddressEVM(address) {
|
|
8
|
+
return typeof address === 'string' && /^0x[0-9a-fA-F]{40}$/.test(address);
|
|
9
|
+
}
|
|
10
|
+
function base58Decode(str) {
|
|
11
|
+
const BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
12
|
+
const BASE58_MAP = {};
|
|
13
|
+
for (let i = 0; i < BASE58_ALPHABET.length; i++) {
|
|
14
|
+
BASE58_MAP[BASE58_ALPHABET[i]] = i;
|
|
15
|
+
}
|
|
16
|
+
if (str.length === 0)
|
|
17
|
+
return new Uint8Array();
|
|
18
|
+
const bytes = [0];
|
|
19
|
+
for (let i = 0; i < str.length; i++) {
|
|
20
|
+
const char = str[i];
|
|
21
|
+
const value = BASE58_MAP[char];
|
|
22
|
+
if (value === undefined) {
|
|
23
|
+
throw new Error('Invalid base58 character');
|
|
24
|
+
}
|
|
25
|
+
let carry = value;
|
|
26
|
+
for (let j = 0; j < bytes.length; j++) {
|
|
27
|
+
const x = bytes[j] * 58 + carry;
|
|
28
|
+
bytes[j] = x & 0xff;
|
|
29
|
+
carry = x >> 8;
|
|
30
|
+
}
|
|
31
|
+
while (carry > 0) {
|
|
32
|
+
bytes.push(carry & 0xff);
|
|
33
|
+
carry >>= 8;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Handle leading zeros
|
|
37
|
+
for (let i = 0; i < str.length && str[i] === '1'; i++) {
|
|
38
|
+
bytes.push(0);
|
|
39
|
+
}
|
|
40
|
+
return new Uint8Array(bytes.reverse());
|
|
41
|
+
}
|
|
42
|
+
function isSolanaAddress(address) {
|
|
43
|
+
if (typeof address !== 'string' || address.length < 32 || address.length > 44) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const bytes = base58Decode(address);
|
|
48
|
+
return bytes.length === 32;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const js_sha3_1 = require("js-sha3");
|
|
55
|
+
function keccak256(data) {
|
|
56
|
+
return new Uint8Array(js_sha3_1.keccak256.arrayBuffer(data));
|
|
57
|
+
}
|
|
58
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
59
|
+
function hexToBytes(hex) {
|
|
60
|
+
const h = hex.startsWith('0x') ? hex.slice(2) : hex;
|
|
61
|
+
const padded = h.length % 2 ? '0' + h : h;
|
|
62
|
+
const out = new Uint8Array(padded.length / 2);
|
|
63
|
+
for (let i = 0; i < out.length; i++)
|
|
64
|
+
out[i] = parseInt(padded.slice(i * 2, i * 2 + 2), 16);
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
function bytesToHex(bytes) {
|
|
68
|
+
return ('0x' +
|
|
69
|
+
Array.from(bytes)
|
|
70
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
71
|
+
.join(''));
|
|
72
|
+
}
|
|
73
|
+
function textToBytes(str) {
|
|
74
|
+
return new TextEncoder().encode(str);
|
|
75
|
+
}
|
|
76
|
+
function concat(...arrays) {
|
|
77
|
+
const total = arrays.reduce((s, a) => s + a.length, 0);
|
|
78
|
+
const out = new Uint8Array(total);
|
|
79
|
+
let offset = 0;
|
|
80
|
+
for (const a of arrays) {
|
|
81
|
+
out.set(a, offset);
|
|
82
|
+
offset += a.length;
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
function padLeft(bytes, length = 32) {
|
|
87
|
+
const out = new Uint8Array(length);
|
|
88
|
+
out.set(bytes, length - bytes.length);
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
function padRight(bytes, length = 32) {
|
|
92
|
+
const out = new Uint8Array(length);
|
|
93
|
+
out.set(bytes);
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
function bigintToBytes32(value) {
|
|
97
|
+
const hex = (((value % (1n << 256n)) + (1n << 256n)) % (1n << 256n)).toString(16).padStart(64, '0');
|
|
98
|
+
return hexToBytes(hex);
|
|
99
|
+
}
|
|
100
|
+
function numberToBytes32(value) {
|
|
101
|
+
return bigintToBytes32(BigInt(value));
|
|
102
|
+
}
|
|
103
|
+
// ─── ABI Canonical Type Helpers ──────────────────────────────────────────────
|
|
104
|
+
function normalizeType(type) {
|
|
105
|
+
// uint → uint256, int → int256
|
|
106
|
+
if (type === 'uint')
|
|
107
|
+
return 'uint256';
|
|
108
|
+
if (type === 'int')
|
|
109
|
+
return 'int256';
|
|
110
|
+
if (type.match(/^uint$/))
|
|
111
|
+
return 'uint256';
|
|
112
|
+
if (type.match(/^int$/))
|
|
113
|
+
return 'int256';
|
|
114
|
+
// uint[N] → uint256[N], etc.
|
|
115
|
+
return type.replace(/^uint(\[|$)/, 'uint256$1').replace(/^int(\[|$)/, 'int256$1');
|
|
116
|
+
}
|
|
117
|
+
function canonicalType(param) {
|
|
118
|
+
const t = normalizeType(param.type);
|
|
119
|
+
if (t === 'tuple' || t.startsWith('tuple[')) {
|
|
120
|
+
const inner = (param.components ?? []).map(canonicalType).join(',');
|
|
121
|
+
const suffix = t.startsWith('tuple[') ? t.slice(5) : '';
|
|
122
|
+
return `(${inner})${suffix}`;
|
|
123
|
+
}
|
|
124
|
+
return t;
|
|
125
|
+
}
|
|
126
|
+
function functionSignature(item) {
|
|
127
|
+
const inputs = (item.inputs ?? []).map(canonicalType).join(',');
|
|
128
|
+
return `${item.name ?? ''}(${inputs})`;
|
|
129
|
+
}
|
|
130
|
+
function prepareParam(param, value) {
|
|
131
|
+
const arrayComponents = getArrayComponents(param.type);
|
|
132
|
+
if (arrayComponents) {
|
|
133
|
+
const [length, innerType] = arrayComponents;
|
|
134
|
+
return encodeArray({ ...param, type: innerType }, value, length);
|
|
135
|
+
}
|
|
136
|
+
if (param.type === 'tuple') {
|
|
137
|
+
return encodeTuple(param, value);
|
|
138
|
+
}
|
|
139
|
+
if (param.type === 'address') {
|
|
140
|
+
const addr = String(value);
|
|
141
|
+
const hex = addr.startsWith('0x') ? addr.slice(2) : addr;
|
|
142
|
+
return { dynamic: false, encoded: padLeft(hexToBytes(hex.toLowerCase())) };
|
|
143
|
+
}
|
|
144
|
+
if (param.type === 'bool') {
|
|
145
|
+
const out = new Uint8Array(32);
|
|
146
|
+
out[31] = value ? 1 : 0;
|
|
147
|
+
return { dynamic: false, encoded: out };
|
|
148
|
+
}
|
|
149
|
+
const t = normalizeType(param.type);
|
|
150
|
+
if (/^uint\d*$/.test(t)) {
|
|
151
|
+
return { dynamic: false, encoded: numberToBytes32(BigInt(value)) };
|
|
152
|
+
}
|
|
153
|
+
if (/^int\d*$/.test(t)) {
|
|
154
|
+
let v = BigInt(value);
|
|
155
|
+
// ABI sign-extends int<M> to full 256 bits — always use 2^256, not 2^M.
|
|
156
|
+
// Using 2^M would only flip the low M bits and leave the upper bits zero,
|
|
157
|
+
// which the EVM decodes as a positive number.
|
|
158
|
+
if (v < 0n)
|
|
159
|
+
v = v + (1n << 256n);
|
|
160
|
+
return { dynamic: false, encoded: bigintToBytes32(v) };
|
|
161
|
+
}
|
|
162
|
+
if (/^bytes(\d+)$/.test(t)) {
|
|
163
|
+
const size = parseInt(t.slice(5), 10);
|
|
164
|
+
const raw = typeof value === 'string' ? hexToBytes(value) : value;
|
|
165
|
+
if (raw.length !== size)
|
|
166
|
+
throw new Error(`bytes${size} expects exactly ${size} bytes, got ${raw.length}`);
|
|
167
|
+
return { dynamic: false, encoded: padRight(raw) };
|
|
168
|
+
}
|
|
169
|
+
if (t === 'bytes') {
|
|
170
|
+
const raw = typeof value === 'string' ? hexToBytes(value) : value;
|
|
171
|
+
const padLen = Math.ceil(raw.length / 32) * 32;
|
|
172
|
+
const padded = new Uint8Array(padLen);
|
|
173
|
+
padded.set(raw);
|
|
174
|
+
return { dynamic: true, encoded: concat(numberToBytes32(raw.length), padded) };
|
|
175
|
+
}
|
|
176
|
+
if (t === 'string') {
|
|
177
|
+
const raw = typeof value === 'string' ? textToBytes(value) : value;
|
|
178
|
+
const padLen = Math.ceil(raw.length / 32) * 32;
|
|
179
|
+
const padded = new Uint8Array(padLen);
|
|
180
|
+
padded.set(raw);
|
|
181
|
+
return { dynamic: true, encoded: concat(numberToBytes32(raw.length), padded) };
|
|
182
|
+
}
|
|
183
|
+
throw new Error(`Unsupported ABI type: ${param.type}`);
|
|
184
|
+
}
|
|
185
|
+
function encodeParams(preparedParams) {
|
|
186
|
+
// Compute exact static head size (static params may be > 32 bytes, e.g. fixed arrays)
|
|
187
|
+
let staticSize = 0;
|
|
188
|
+
for (const { dynamic, encoded } of preparedParams) {
|
|
189
|
+
staticSize += dynamic ? 32 : encoded.length;
|
|
190
|
+
}
|
|
191
|
+
const staticParts = [];
|
|
192
|
+
const dynamicParts = [];
|
|
193
|
+
let dynamicSize = 0;
|
|
194
|
+
for (const { dynamic, encoded } of preparedParams) {
|
|
195
|
+
if (dynamic) {
|
|
196
|
+
staticParts.push(numberToBytes32(staticSize + dynamicSize));
|
|
197
|
+
dynamicParts.push(encoded);
|
|
198
|
+
dynamicSize += encoded.length;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
staticParts.push(encoded);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return concat(...staticParts, ...dynamicParts);
|
|
205
|
+
}
|
|
206
|
+
function encodeArray(param, values, fixedLength) {
|
|
207
|
+
const isDynamicLength = fixedLength === null;
|
|
208
|
+
if (!isDynamicLength && values.length !== fixedLength)
|
|
209
|
+
throw new Error(`Array length mismatch: expected ${fixedLength}, got ${values.length}`);
|
|
210
|
+
let dynamicChild = false;
|
|
211
|
+
const preparedItems = [];
|
|
212
|
+
for (const v of values) {
|
|
213
|
+
const p = prepareParam(param, v);
|
|
214
|
+
if (p.dynamic)
|
|
215
|
+
dynamicChild = true;
|
|
216
|
+
preparedItems.push(p);
|
|
217
|
+
}
|
|
218
|
+
if (isDynamicLength || dynamicChild) {
|
|
219
|
+
const data = encodeParams(preparedItems);
|
|
220
|
+
if (isDynamicLength) {
|
|
221
|
+
const lengthWord = numberToBytes32(preparedItems.length);
|
|
222
|
+
return {
|
|
223
|
+
dynamic: true,
|
|
224
|
+
encoded: preparedItems.length > 0 ? concat(lengthWord, data) : lengthWord,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
// fixed array with dynamic children — dynamic itself, no length prefix
|
|
228
|
+
return { dynamic: true, encoded: data };
|
|
229
|
+
}
|
|
230
|
+
// fully static fixed array
|
|
231
|
+
return {
|
|
232
|
+
dynamic: false,
|
|
233
|
+
encoded: concat(...preparedItems.map((p) => p.encoded)),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
function encodeTuple(param, value) {
|
|
237
|
+
const components = param.components ?? [];
|
|
238
|
+
let dynamic = false;
|
|
239
|
+
const preparedItems = [];
|
|
240
|
+
for (let i = 0; i < components.length; i++) {
|
|
241
|
+
const c = components[i];
|
|
242
|
+
const v = Array.isArray(value) ? value[i] : value[c.name ?? ''];
|
|
243
|
+
const p = prepareParam(c, v);
|
|
244
|
+
if (p.dynamic)
|
|
245
|
+
dynamic = true;
|
|
246
|
+
preparedItems.push(p);
|
|
247
|
+
}
|
|
248
|
+
return { dynamic, encoded: dynamic ? encodeParams(preparedItems) : concat(...preparedItems.map((p) => p.encoded)) };
|
|
249
|
+
}
|
|
250
|
+
function getArrayComponents(type) {
|
|
251
|
+
const m = type.match(/^(.*)\[(\d+)?\]$/);
|
|
252
|
+
return m ? [m[2] ? Number(m[2]) : null, m[1]] : undefined;
|
|
253
|
+
}
|
|
254
|
+
// ─── Top-level encodeAbiParameters (mirrors viem) ────────────────────────────
|
|
255
|
+
function encodeAbiParameters(params, values) {
|
|
256
|
+
if (params.length !== values.length)
|
|
257
|
+
throw new Error(`Expected ${params.length} values, got ${values.length}`);
|
|
258
|
+
if (params.length === 0)
|
|
259
|
+
return '0x';
|
|
260
|
+
const prepared = params.map((p, i) => prepareParam(p, values[i]));
|
|
261
|
+
const result = encodeParams(prepared);
|
|
262
|
+
return bytesToHex(result);
|
|
263
|
+
}
|
|
264
|
+
// ─── Main: encodeFunctionData ─────────────────────────────────────────────────
|
|
265
|
+
function encodeFunctionData({ abi, functionName, args = [], }) {
|
|
266
|
+
const item = abi.find((x) => (x.type === 'function' || x.type === undefined) && x.name === functionName);
|
|
267
|
+
if (!item)
|
|
268
|
+
throw new Error(`Function "${functionName}" not found in ABI`);
|
|
269
|
+
const sig = functionSignature(item);
|
|
270
|
+
const selector = keccak256(textToBytes(sig)).slice(0, 4);
|
|
271
|
+
const inputs = item.inputs ?? [];
|
|
272
|
+
const encoded = inputs.length === 0 || args.length === 0
|
|
273
|
+
? new Uint8Array(0)
|
|
274
|
+
: hexToBytes(encodeAbiParameters(inputs, args).slice(2));
|
|
275
|
+
return bytesToHex(concat(selector, encoded));
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=web3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web3.js","sourceRoot":"","sources":["../../src/functions/web3.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { AgentCore } from './agent/AgentCore';
|
|
2
|
+
export type { AgentResponse } from './agent/AgentCore';
|
|
3
|
+
export { Router } from './agent/Router';
|
|
4
|
+
export { Subagent } from './agent/Subagent';
|
|
5
|
+
export type { SubagentOptions, SubagentParams } from './agent/Subagent';
|
|
6
|
+
export { Synthesizer } from './agent/Synthesizer';
|
|
7
|
+
export { createDefaultSubagents, createWalletAgent, createTokenAgent, createNftAgent, createAiAgent, WALLET_AGENT_TOOL_NAMES, TOKEN_AGENT_TOOL_NAMES, NFT_AGENT_TOOL_NAMES, AI_AGENT_TOOL_NAMES, } from './agent/subagents';
|
|
8
|
+
export { GeminiProvider } from './llm/GeminiProvider';
|
|
9
|
+
export { ToolRegistry } from './tools/ToolRegistry';
|
|
10
|
+
export { BaseTool } from './tools/BaseTool';
|
|
11
|
+
export * from './tools/builtin';
|
|
12
|
+
export * from './services/MoralisService';
|
|
13
|
+
export * from './services/PantographService';
|
|
14
|
+
export * from './services/PoolService';
|
|
15
|
+
export { ChatHistory } from './memory/ChatHistory';
|
|
16
|
+
export { KnowledgeBase } from './memory/KnowledgeBase';
|
|
17
|
+
export type { KBSearchResult } from './memory/KnowledgeBase';
|
|
18
|
+
export { UpstashKnowledgeBase } from './memory/UpstashKnowledgeBase';
|
|
19
|
+
export type * from './memory/UpstashKnowledgeBase';
|
|
20
|
+
export { ingestKnowledgeBase } from './memory/ingestKnowledgeBase';
|
|
21
|
+
export type * from './memory/ingestKnowledgeBase';
|
|
22
|
+
export { Summarizer } from './memory/Summarizer';
|
|
23
|
+
export type * from './types';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAGhC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,mBAAmB,+BAA+B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,mBAAmB,8BAA8B,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,mBAAmB,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// keyring-agent-core – public API
|
|
4
|
+
// ============================================================
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.Summarizer = exports.ingestKnowledgeBase = exports.UpstashKnowledgeBase = exports.KnowledgeBase = exports.ChatHistory = exports.BaseTool = exports.ToolRegistry = exports.GeminiProvider = exports.AI_AGENT_TOOL_NAMES = exports.NFT_AGENT_TOOL_NAMES = exports.TOKEN_AGENT_TOOL_NAMES = exports.WALLET_AGENT_TOOL_NAMES = exports.createAiAgent = exports.createNftAgent = exports.createTokenAgent = exports.createWalletAgent = exports.createDefaultSubagents = exports.Synthesizer = exports.Subagent = exports.Router = exports.AgentCore = void 0;
|
|
21
|
+
// Core orchestrator
|
|
22
|
+
var AgentCore_1 = require("./agent/AgentCore");
|
|
23
|
+
Object.defineProperty(exports, "AgentCore", { enumerable: true, get: function () { return AgentCore_1.AgentCore; } });
|
|
24
|
+
// Router → Subagent → Tool orchestration pieces (for advanced / custom pipelines)
|
|
25
|
+
var Router_1 = require("./agent/Router");
|
|
26
|
+
Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return Router_1.Router; } });
|
|
27
|
+
var Subagent_1 = require("./agent/Subagent");
|
|
28
|
+
Object.defineProperty(exports, "Subagent", { enumerable: true, get: function () { return Subagent_1.Subagent; } });
|
|
29
|
+
var Synthesizer_1 = require("./agent/Synthesizer");
|
|
30
|
+
Object.defineProperty(exports, "Synthesizer", { enumerable: true, get: function () { return Synthesizer_1.Synthesizer; } });
|
|
31
|
+
var subagents_1 = require("./agent/subagents");
|
|
32
|
+
Object.defineProperty(exports, "createDefaultSubagents", { enumerable: true, get: function () { return subagents_1.createDefaultSubagents; } });
|
|
33
|
+
Object.defineProperty(exports, "createWalletAgent", { enumerable: true, get: function () { return subagents_1.createWalletAgent; } });
|
|
34
|
+
Object.defineProperty(exports, "createTokenAgent", { enumerable: true, get: function () { return subagents_1.createTokenAgent; } });
|
|
35
|
+
Object.defineProperty(exports, "createNftAgent", { enumerable: true, get: function () { return subagents_1.createNftAgent; } });
|
|
36
|
+
Object.defineProperty(exports, "createAiAgent", { enumerable: true, get: function () { return subagents_1.createAiAgent; } });
|
|
37
|
+
Object.defineProperty(exports, "WALLET_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return subagents_1.WALLET_AGENT_TOOL_NAMES; } });
|
|
38
|
+
Object.defineProperty(exports, "TOKEN_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return subagents_1.TOKEN_AGENT_TOOL_NAMES; } });
|
|
39
|
+
Object.defineProperty(exports, "NFT_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return subagents_1.NFT_AGENT_TOOL_NAMES; } });
|
|
40
|
+
Object.defineProperty(exports, "AI_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return subagents_1.AI_AGENT_TOOL_NAMES; } });
|
|
41
|
+
// LLM
|
|
42
|
+
var GeminiProvider_1 = require("./llm/GeminiProvider");
|
|
43
|
+
Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return GeminiProvider_1.GeminiProvider; } });
|
|
44
|
+
// Tools
|
|
45
|
+
var ToolRegistry_1 = require("./tools/ToolRegistry");
|
|
46
|
+
Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return ToolRegistry_1.ToolRegistry; } });
|
|
47
|
+
var BaseTool_1 = require("./tools/BaseTool");
|
|
48
|
+
Object.defineProperty(exports, "BaseTool", { enumerable: true, get: function () { return BaseTool_1.BaseTool; } });
|
|
49
|
+
__exportStar(require("./tools/builtin"), exports);
|
|
50
|
+
// Services
|
|
51
|
+
__exportStar(require("./services/MoralisService"), exports);
|
|
52
|
+
__exportStar(require("./services/PantographService"), exports);
|
|
53
|
+
__exportStar(require("./services/PoolService"), exports);
|
|
54
|
+
// Memory
|
|
55
|
+
var ChatHistory_1 = require("./memory/ChatHistory");
|
|
56
|
+
Object.defineProperty(exports, "ChatHistory", { enumerable: true, get: function () { return ChatHistory_1.ChatHistory; } });
|
|
57
|
+
var KnowledgeBase_1 = require("./memory/KnowledgeBase");
|
|
58
|
+
Object.defineProperty(exports, "KnowledgeBase", { enumerable: true, get: function () { return KnowledgeBase_1.KnowledgeBase; } });
|
|
59
|
+
var UpstashKnowledgeBase_1 = require("./memory/UpstashKnowledgeBase");
|
|
60
|
+
Object.defineProperty(exports, "UpstashKnowledgeBase", { enumerable: true, get: function () { return UpstashKnowledgeBase_1.UpstashKnowledgeBase; } });
|
|
61
|
+
var ingestKnowledgeBase_1 = require("./memory/ingestKnowledgeBase");
|
|
62
|
+
Object.defineProperty(exports, "ingestKnowledgeBase", { enumerable: true, get: function () { return ingestKnowledgeBase_1.ingestKnowledgeBase; } });
|
|
63
|
+
var Summarizer_1 = require("./memory/Summarizer");
|
|
64
|
+
Object.defineProperty(exports, "Summarizer", { enumerable: true, get: function () { return Summarizer_1.Summarizer; } });
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;;;;;;;;;;;;;;;;;AAE/D,oBAAoB;AACpB,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAGlB,kFAAkF;AAClF,yCAAwC;AAA/B,gGAAA,MAAM,OAAA;AACf,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AAEjB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AACpB,+CAU2B;AATzB,mHAAA,sBAAsB,OAAA;AACtB,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA;AAChB,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,oHAAA,uBAAuB,OAAA;AACvB,mHAAA,sBAAsB,OAAA;AACtB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AAGrB,MAAM;AACN,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,kDAAgC;AAEhC,WAAW;AACX,4DAA0C;AAC1C,+DAA6C;AAC7C,yDAAuC;AAEvC,SAAS;AACT,oDAAmD;AAA1C,0GAAA,WAAW,OAAA;AACpB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAEtB,sEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAE7B,oEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAE5B,kDAAiD;AAAxC,wGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ChatMessage, ChatOptions, LLMProvider, LLMProviderConfig, LLMResponse, ToolDefinition } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* LLM provider that calls the Gemini-compatible proxy via fetch.
|
|
4
|
+
* No API key required — the proxy handles authentication.
|
|
5
|
+
*/
|
|
6
|
+
export declare class GeminiProvider implements LLMProvider {
|
|
7
|
+
private model;
|
|
8
|
+
private maxTokens;
|
|
9
|
+
private temperature;
|
|
10
|
+
private baseUrl;
|
|
11
|
+
constructor(config: LLMProviderConfig);
|
|
12
|
+
chat(messages: ChatMessage[], tools?: ToolDefinition[], options?: ChatOptions): Promise<LLMResponse>;
|
|
13
|
+
private toContents;
|
|
14
|
+
private toFunctionDeclarations;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=GeminiProvider.d.ts.map
|