diff --git a/.env.example b/.env.example index cb434aa1f4e..12b23378378 100644 --- a/.env.example +++ b/.env.example @@ -9,7 +9,6 @@ PGLITE_DATA_DIR= #../pgLite/ if selecting a directory --- or memory:// if # Eliza Port Config SERVER_PORT=3000 -VITE_SERVER_PORT=${SERVER_PORT} # Supabase Configuration SUPABASE_URL= diff --git a/agent/package.json b/agent/package.json index 6daf7a87dd7..87e92ac76b1 100644 --- a/agent/package.json +++ b/agent/package.json @@ -1,164 +1,164 @@ { - "name": "@elizaos/agent", - "version": "0.1.9-alpha.1", - "main": "src/index.ts", - "type": "module", - "scripts": { - "start": "node --loader ts-node/esm src/index.ts", - "dev": "node --loader ts-node/esm src/index.ts", - "check-types": "tsc --noEmit", - "test": "jest" - }, - "nodemonConfig": { - "watch": [ - "src", - "../core/dist" - ], - "ext": "ts,json", - "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts" - }, - "dependencies": { - "@elizaos/adapter-supabase": "workspace:*", - "@elizaos/adapter-postgres": "workspace:*", - "@elizaos/adapter-redis": "workspace:*", - "@elizaos/adapter-sqlite": "workspace:*", - "@elizaos/adapter-pglite": "workspace:*", - "@elizaos/adapter-qdrant": "workspace:*", - "@elizaos/adapter-mongodb": "workspace:*", - "@elizaos/client-auto": "workspace:*", - "@elizaos/client-direct": "workspace:*", - "@elizaos/client-discord": "workspace:*", - "@elizaos/client-farcaster": "workspace:*", - "@elizaos/client-lens": "workspace:*", - "@elizaos/client-telegram": "workspace:*", - "@elizaos/client-telegram-account": "workspace:*", - "@elizaos/client-twitter": "workspace:*", - "@elizaos/client-instagram": "workspace:*", - "@elizaos/client-slack": "workspace:*", - "@elizaos/client-alexa": "workspace:*", - "@elizaos/client-simsai": "workspace:*", - "@elizaos/core": "workspace:*", - "@elizaos/plugin-0g": "workspace:*", - "@elizaos/plugin-abstract": "workspace:*", - "@elizaos/plugin-agentkit": "workspace:*", - "@elizaos/plugin-aptos": "workspace:*", - "@elizaos/plugin-birdeye": "workspace:*", - "@elizaos/plugin-coingecko": "workspace:*", - "@elizaos/plugin-coinmarketcap": "workspace:*", - "@elizaos/plugin-zerion": "workspace:*", - "@elizaos/plugin-binance": "workspace:*", - "@elizaos/plugin-avail": "workspace:*", - "@elizaos/plugin-bnb": "workspace:*", - "@elizaos/plugin-bootstrap": "workspace:*", - "@elizaos/plugin-di": "workspace:*", - "@elizaos/plugin-cosmos": "workspace:*", - "@elizaos/plugin-intiface": "workspace:*", - "@elizaos/plugin-coinbase": "workspace:*", - "@elizaos/plugin-conflux": "workspace:*", - "@elizaos/plugin-evm": "workspace:*", - "@elizaos/plugin-echochambers": "workspace:*", - "@elizaos/plugin-flow": "workspace:*", - "@elizaos/plugin-gitbook": "workspace:*", - "@elizaos/plugin-story": "workspace:*", - "@elizaos/plugin-gitcoin-passport": "workspace:*", - "@elizaos/plugin-goat": "workspace:*", - "@elizaos/plugin-lensNetwork": "workspace:*", - "@elizaos/plugin-icp": "workspace:*", - "@elizaos/plugin-initia": "workspace:*", - "@elizaos/plugin-image-generation": "workspace:*", - "@elizaos/plugin-lit": "workspace:*", - "@elizaos/plugin-gelato": "workspace:*", - "@elizaos/plugin-moralis": "workspace:*", - "@elizaos/plugin-mind-network": "workspace:*", - "@elizaos/plugin-movement": "workspace:*", - "@elizaos/plugin-massa": "workspace:*", - "@elizaos/plugin-news": "workspace:*", - "@elizaos/plugin-nft-generation": "workspace:*", - "@elizaos/plugin-node": "workspace:*", - "@elizaos/plugin-quick-intel": "workspace:*", - "@elizaos/plugin-solana": "workspace:*", - "@elizaos/plugin-solana-v2": "workspace:*", - "@elizaos/plugin-injective": "workspace:*", - "@elizaos/plugin-solana-agent-kit": "workspace:*", - "@elizaos/plugin-squid-router": "workspace:*", - "@elizaos/plugin-autonome": "workspace:*", - "@elizaos/plugin-starknet": "workspace:*", - "@elizaos/plugin-stargaze": "workspace:*", - "@elizaos/plugin-giphy": "workspace:*", - "@elizaos/plugin-ton": "workspace:*", - "@elizaos/plugin-sui": "workspace:*", - "@elizaos/plugin-sgx": "workspace:*", - "@elizaos/plugin-iq6900": "workspace:*", - "@elizaos/plugin-tee": "workspace:*", - "@elizaos/plugin-tee-log": "workspace:*", - "@elizaos/plugin-tee-marlin": "workspace:*", - "@elizaos/plugin-multiversx": "workspace:*", - "@elizaos/plugin-near": "workspace:*", - "@elizaos/plugin-zksync-era": "workspace:*", - "@elizaos/plugin-twitter": "workspace:*", - "@elizaos/plugin-primus": "workspace:*", - "@elizaos/plugin-cronoszkevm": "workspace:*", - "@elizaos/plugin-cronos": "workspace:*", - "@elizaos/plugin-3d-generation": "workspace:*", - "@elizaos/plugin-fuel": "workspace:*", - "@elizaos/plugin-avalanche": "workspace:*", - "@elizaos/plugin-video-generation": "workspace:*", - "@elizaos/plugin-web-search": "workspace:*", - "@elizaos/plugin-dexscreener": "workspace:*", - "@elizaos/plugin-letzai": "workspace:*", - "@elizaos/plugin-thirdweb": "workspace:*", - "@elizaos/plugin-genlayer": "workspace:*", - "@elizaos/plugin-tee-verifiable-log": "workspace:*", - "@elizaos/plugin-depin": "workspace:*", - "@elizaos/plugin-open-weather": "workspace:*", - "@elizaos/plugin-obsidian": "workspace:*", - "@elizaos/plugin-arthera": "workspace:*", - "@elizaos/plugin-allora": "workspace:*", - "@elizaos/plugin-opacity": "workspace:*", - "@elizaos/plugin-hyperliquid": "workspace:*", - "@elizaos/plugin-akash": "workspace:*", - "@elizaos/plugin-quai": "workspace:*", - "@elizaos/plugin-lightning": "workspace:*", - "@elizaos/plugin-b2": "workspace:*", - "@elizaos/plugin-nft-collections": "workspace:*", - "@elizaos/plugin-pyth-data": "workspace:*", - "@elizaos/plugin-openai": "workspace:*", - "@elizaos/plugin-devin": "workspace:*", - "@elizaos/plugin-holdstation": "workspace:*", - "@elizaos/plugin-router-nitro": "workspace:*", - "@elizaos/plugin-nvidia-nim": "workspace:*", - "@elizaos/plugin-0x": "workspace:*", - "@elizaos/plugin-bittensor": "workspace:*", - "@elizaos/plugin-chainbase": "workspace:*", - "@elizaos/plugin-dkg": "workspace:*", - "@elizaos/plugin-email": "workspace:*", - "@elizaos/plugin-sei": "workspace:*", - "@elizaos/plugin-omniflix": "workspace:*", - "@elizaos/plugin-suno": "workspace:*", - "@elizaos/plugin-udio": "workspace:*", - "@elizaos/plugin-hyperbolic": "workspace:*", - "@elizaos/plugin-football": "workspace:*", - "@elizaos/plugin-imgflip": "workspace:*", - "@elizaos/plugin-ethstorage": "workspace:*", - "@elizaos/plugin-mina": "workspace:*", - "@elizaos/plugin-email-automation": "workspace:*", - "@elizaos/plugin-dcap": "workspace:*", - "@elizaos/plugin-form": "workspace:*", - "@elizaos/plugin-ankr": "workspace:*", - "@elizaos/client-xmtp": "workspace:*", - "@elizaos/plugin-trikon": "workspace:*", - "@elizaos/plugin-zilliqa": "workspace:*", - "@elizaos/client-deva": "workspace:*", - "@elizaos/plugin-arbitrage": "workspace:*", - "readline": "1.3.0", - "ws": "8.18.0", - "yargs": "17.7.2" - }, - "devDependencies": { - "@types/jest": "^29.5.14", - "jest": "^29.7.0", - "ts-jest": "^29.2.5", - "ts-node": "10.9.2", - "tsup": "8.3.5" - } + "name": "@elizaos/agent", + "version": "0.1.9", + "main": "src/index.ts", + "type": "module", + "scripts": { + "start": "node --loader ts-node/esm src/index.ts", + "dev": "node --loader ts-node/esm src/index.ts", + "check-types": "tsc --noEmit", + "test": "jest" + }, + "nodemonConfig": { + "watch": [ + "src", + "../core/dist" + ], + "ext": "ts,json", + "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts" + }, + "dependencies": { + "@elizaos/adapter-supabase": "workspace:*", + "@elizaos/adapter-postgres": "workspace:*", + "@elizaos/adapter-redis": "workspace:*", + "@elizaos/adapter-sqlite": "workspace:*", + "@elizaos/adapter-pglite": "workspace:*", + "@elizaos/adapter-qdrant": "workspace:*", + "@elizaos/adapter-mongodb": "workspace:*", + "@elizaos/client-auto": "workspace:*", + "@elizaos/client-direct": "workspace:*", + "@elizaos/client-discord": "workspace:*", + "@elizaos/client-farcaster": "workspace:*", + "@elizaos/client-lens": "workspace:*", + "@elizaos/client-telegram": "workspace:*", + "@elizaos/client-telegram-account": "workspace:*", + "@elizaos/client-twitter": "workspace:*", + "@elizaos/client-instagram": "workspace:*", + "@elizaos/client-slack": "workspace:*", + "@elizaos/client-alexa": "workspace:*", + "@elizaos/client-simsai": "workspace:*", + "@elizaos/core": "workspace:*", + "@elizaos/plugin-0g": "workspace:*", + "@elizaos/plugin-abstract": "workspace:*", + "@elizaos/plugin-agentkit": "workspace:*", + "@elizaos/plugin-aptos": "workspace:*", + "@elizaos/plugin-birdeye": "workspace:*", + "@elizaos/plugin-coingecko": "workspace:*", + "@elizaos/plugin-coinmarketcap": "workspace:*", + "@elizaos/plugin-zerion": "workspace:*", + "@elizaos/plugin-binance": "workspace:*", + "@elizaos/plugin-avail": "workspace:*", + "@elizaos/plugin-bnb": "workspace:*", + "@elizaos/plugin-bootstrap": "workspace:*", + "@elizaos/plugin-di": "workspace:*", + "@elizaos/plugin-cosmos": "workspace:*", + "@elizaos/plugin-intiface": "workspace:*", + "@elizaos/plugin-coinbase": "workspace:*", + "@elizaos/plugin-conflux": "workspace:*", + "@elizaos/plugin-evm": "workspace:*", + "@elizaos/plugin-echochambers": "workspace:*", + "@elizaos/plugin-flow": "workspace:*", + "@elizaos/plugin-gitbook": "workspace:*", + "@elizaos/plugin-story": "workspace:*", + "@elizaos/plugin-gitcoin-passport": "workspace:*", + "@elizaos/plugin-goat": "workspace:*", + "@elizaos/plugin-lensNetwork": "workspace:*", + "@elizaos/plugin-icp": "workspace:*", + "@elizaos/plugin-initia": "workspace:*", + "@elizaos/plugin-image-generation": "workspace:*", + "@elizaos/plugin-lit": "workspace:*", + "@elizaos/plugin-gelato": "workspace:*", + "@elizaos/plugin-moralis": "workspace:*", + "@elizaos/plugin-mind-network": "workspace:*", + "@elizaos/plugin-movement": "workspace:*", + "@elizaos/plugin-massa": "workspace:*", + "@elizaos/plugin-news": "workspace:*", + "@elizaos/plugin-nft-generation": "workspace:*", + "@elizaos/plugin-node": "workspace:*", + "@elizaos/plugin-quick-intel": "workspace:*", + "@elizaos/plugin-solana": "workspace:*", + "@elizaos/plugin-solana-v2": "workspace:*", + "@elizaos/plugin-injective": "workspace:*", + "@elizaos/plugin-solana-agent-kit": "workspace:*", + "@elizaos/plugin-squid-router": "workspace:*", + "@elizaos/plugin-autonome": "workspace:*", + "@elizaos/plugin-starknet": "workspace:*", + "@elizaos/plugin-stargaze": "workspace:*", + "@elizaos/plugin-giphy": "workspace:*", + "@elizaos/plugin-ton": "workspace:*", + "@elizaos/plugin-sui": "workspace:*", + "@elizaos/plugin-sgx": "workspace:*", + "@elizaos/plugin-iq6900": "workspace:*", + "@elizaos/plugin-tee": "workspace:*", + "@elizaos/plugin-tee-log": "workspace:*", + "@elizaos/plugin-tee-marlin": "workspace:*", + "@elizaos/plugin-multiversx": "workspace:*", + "@elizaos/plugin-near": "workspace:*", + "@elizaos/plugin-zksync-era": "workspace:*", + "@elizaos/plugin-twitter": "workspace:*", + "@elizaos/plugin-primus": "workspace:*", + "@elizaos/plugin-cronoszkevm": "workspace:*", + "@elizaos/plugin-cronos": "workspace:*", + "@elizaos/plugin-3d-generation": "workspace:*", + "@elizaos/plugin-fuel": "workspace:*", + "@elizaos/plugin-avalanche": "workspace:*", + "@elizaos/plugin-video-generation": "workspace:*", + "@elizaos/plugin-web-search": "workspace:*", + "@elizaos/plugin-dexscreener": "workspace:*", + "@elizaos/plugin-letzai": "workspace:*", + "@elizaos/plugin-thirdweb": "workspace:*", + "@elizaos/plugin-genlayer": "workspace:*", + "@elizaos/plugin-tee-verifiable-log": "workspace:*", + "@elizaos/plugin-depin": "workspace:*", + "@elizaos/plugin-open-weather": "workspace:*", + "@elizaos/plugin-obsidian": "workspace:*", + "@elizaos/plugin-arthera": "workspace:*", + "@elizaos/plugin-allora": "workspace:*", + "@elizaos/plugin-opacity": "workspace:*", + "@elizaos/plugin-hyperliquid": "workspace:*", + "@elizaos/plugin-akash": "workspace:*", + "@elizaos/plugin-quai": "workspace:*", + "@elizaos/plugin-lightning": "workspace:*", + "@elizaos/plugin-b2": "workspace:*", + "@elizaos/plugin-nft-collections": "workspace:*", + "@elizaos/plugin-pyth-data": "workspace:*", + "@elizaos/plugin-openai": "workspace:*", + "@elizaos/plugin-devin": "workspace:*", + "@elizaos/plugin-holdstation": "workspace:*", + "@elizaos/plugin-router-nitro": "workspace:*", + "@elizaos/plugin-nvidia-nim": "workspace:*", + "@elizaos/plugin-0x": "workspace:*", + "@elizaos/plugin-bittensor": "workspace:*", + "@elizaos/plugin-chainbase": "workspace:*", + "@elizaos/plugin-dkg": "workspace:*", + "@elizaos/plugin-email": "workspace:*", + "@elizaos/plugin-sei": "workspace:*", + "@elizaos/plugin-omniflix": "workspace:*", + "@elizaos/plugin-suno": "workspace:*", + "@elizaos/plugin-udio": "workspace:*", + "@elizaos/plugin-hyperbolic": "workspace:*", + "@elizaos/plugin-football": "workspace:*", + "@elizaos/plugin-imgflip": "workspace:*", + "@elizaos/plugin-ethstorage": "workspace:*", + "@elizaos/plugin-mina": "workspace:*", + "@elizaos/plugin-email-automation": "workspace:*", + "@elizaos/plugin-dcap": "workspace:*", + "@elizaos/plugin-form": "workspace:*", + "@elizaos/plugin-ankr": "workspace:*", + "@elizaos/client-xmtp": "workspace:*", + "@elizaos/plugin-trikon": "workspace:*", + "@elizaos/plugin-zilliqa": "workspace:*", + "@elizaos/client-deva": "workspace:*", + "@elizaos/plugin-arbitrage": "workspace:*", + "readline": "1.3.0", + "ws": "8.18.0", + "yargs": "17.7.2" + }, + "devDependencies": { + "@types/jest": "^29.5.14", + "jest": "^29.7.0", + "ts-jest": "^29.2.5", + "ts-node": "10.9.2", + "tsup": "8.3.5" + } } diff --git a/agent/src/index.ts b/agent/src/index.ts index 7997e9a8a59..2a4cc1c0a58 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -1,698 +1,871 @@ -import { PGLiteDatabaseAdapter } from "@elizaos/adapter-pglite" -import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres" -import { QdrantDatabaseAdapter } from "@elizaos/adapter-qdrant" -import { RedisClient } from "@elizaos/adapter-redis" -import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite" -import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase" -import { AutoClientInterface } from "@elizaos/client-auto" -import { DiscordClientInterface } from "@elizaos/client-discord" -import { InstagramClientInterface } from "@elizaos/client-instagram" -import { LensAgentClient } from "@elizaos/client-lens" -import { SlackClientInterface } from "@elizaos/client-slack" -import { TelegramClientInterface } from "@elizaos/client-telegram" -import { TelegramAccountClientInterface } from "@elizaos/client-telegram-account" -import { TwitterClientInterface } from "@elizaos/client-twitter" +import { PGLiteDatabaseAdapter } from "@elizaos/adapter-pglite"; +import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres"; +import { QdrantDatabaseAdapter } from "@elizaos/adapter-qdrant"; +import { RedisClient } from "@elizaos/adapter-redis"; +import { SqliteDatabaseAdapter } from "@elizaos/adapter-sqlite"; +import { SupabaseDatabaseAdapter } from "@elizaos/adapter-supabase"; +import { AutoClientInterface } from "@elizaos/client-auto"; +import { DiscordClientInterface } from "@elizaos/client-discord"; +import { InstagramClientInterface } from "@elizaos/client-instagram"; +import { LensAgentClient } from "@elizaos/client-lens"; +import { SlackClientInterface } from "@elizaos/client-slack"; +import { TelegramClientInterface } from "@elizaos/client-telegram"; +import { TelegramAccountClientInterface } from "@elizaos/client-telegram-account"; +import { TwitterClientInterface } from "@elizaos/client-twitter"; import { AlexaClientInterface } from "@elizaos/client-alexa"; -import { MongoDBDatabaseAdapter } from "@elizaos/adapter-mongodb" -import { DevaClientInterface } from "@elizaos/client-deva" +import { MongoDBDatabaseAdapter } from "@elizaos/adapter-mongodb"; +import { DevaClientInterface } from "@elizaos/client-deva"; -import { FarcasterClientInterface } from "@elizaos/client-farcaster" -import { OmniflixPlugin } from "@elizaos/plugin-omniflix" -import { JeeterClientInterface } from "@elizaos/client-simsai" +import { FarcasterClientInterface } from "@elizaos/client-farcaster"; +import { OmniflixPlugin } from "@elizaos/plugin-omniflix"; +import { JeeterClientInterface } from "@elizaos/client-simsai"; import { XmtpClientInterface } from "@elizaos/client-xmtp"; -import { DirectClient } from "@elizaos/client-direct" -import { agentKitPlugin } from "@elizaos/plugin-agentkit" +import { DirectClient } from "@elizaos/client-direct"; +import { agentKitPlugin } from "@elizaos/plugin-agentkit"; import { gelatoPlugin } from "@elizaos/plugin-gelato"; -import { PrimusAdapter } from "@elizaos/plugin-primus" -import { lightningPlugin } from "@elizaos/plugin-lightning" -import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900" -import { dcapPlugin } from "@elizaos/plugin-dcap" +import { PrimusAdapter } from "@elizaos/plugin-primus"; +import { lightningPlugin } from "@elizaos/plugin-lightning"; +import { elizaCodeinPlugin, onchainJson } from "@elizaos/plugin-iq6900"; +import { dcapPlugin } from "@elizaos/plugin-dcap"; import { - AgentRuntime, - CacheManager, - CacheStore, - type Character, - type Client, - Clients, - DbCacheAdapter, - defaultCharacter, - elizaLogger, - FsCacheAdapter, - type IAgentRuntime, - type ICacheManager, - type IDatabaseAdapter, - type IDatabaseCacheAdapter, - ModelProviderName, - parseBooleanFromText, - settings, - stringToUuid, - validateCharacterConfig, -} from "@elizaos/core" -import { zgPlugin } from "@elizaos/plugin-0g" -import { footballPlugin } from "@elizaos/plugin-football" - -import { bootstrapPlugin } from "@elizaos/plugin-bootstrap" -import { normalizeCharacter } from "@elizaos/plugin-di" -import createGoatPlugin from "@elizaos/plugin-goat" + AgentRuntime, + CacheManager, + CacheStore, + type Character, + type Client, + Clients, + DbCacheAdapter, + defaultCharacter, + elizaLogger, + FsCacheAdapter, + type IAgentRuntime, + type ICacheManager, + type IDatabaseAdapter, + type IDatabaseCacheAdapter, + ModelProviderName, + parseBooleanFromText, + settings, + stringToUuid, + validateCharacterConfig, +} from "@elizaos/core"; +import { zgPlugin } from "@elizaos/plugin-0g"; +import { footballPlugin } from "@elizaos/plugin-football"; + +import { bootstrapPlugin } from "@elizaos/plugin-bootstrap"; +import { normalizeCharacter } from "@elizaos/plugin-di"; +import createGoatPlugin from "@elizaos/plugin-goat"; import createZilliqaPlugin from "@elizaos/plugin-zilliqa"; // import { intifacePlugin } from "@elizaos/plugin-intiface"; -import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation" -import { abstractPlugin } from "@elizaos/plugin-abstract" -import { akashPlugin } from "@elizaos/plugin-akash" -import { alloraPlugin } from "@elizaos/plugin-allora" -import { aptosPlugin } from "@elizaos/plugin-aptos" -import { artheraPlugin } from "@elizaos/plugin-arthera" -import { autonomePlugin } from "@elizaos/plugin-autonome" -import { availPlugin } from "@elizaos/plugin-avail" -import { avalanchePlugin } from "@elizaos/plugin-avalanche" -import { b2Plugin } from "@elizaos/plugin-b2" -import { binancePlugin } from "@elizaos/plugin-binance" -import { birdeyePlugin } from "@elizaos/plugin-birdeye" +import { ThreeDGenerationPlugin } from "@elizaos/plugin-3d-generation"; +import { abstractPlugin } from "@elizaos/plugin-abstract"; +import { akashPlugin } from "@elizaos/plugin-akash"; +import { alloraPlugin } from "@elizaos/plugin-allora"; +import { aptosPlugin } from "@elizaos/plugin-aptos"; +import { artheraPlugin } from "@elizaos/plugin-arthera"; +import { autonomePlugin } from "@elizaos/plugin-autonome"; +import { availPlugin } from "@elizaos/plugin-avail"; +import { avalanchePlugin } from "@elizaos/plugin-avalanche"; +import { b2Plugin } from "@elizaos/plugin-b2"; +import { binancePlugin } from "@elizaos/plugin-binance"; +import { birdeyePlugin } from "@elizaos/plugin-birdeye"; import { bittensorPlugin } from "@elizaos/plugin-bittensor"; -import { bnbPlugin } from "@elizaos/plugin-bnb" -import { advancedTradePlugin, coinbaseCommercePlugin, coinbaseMassPaymentsPlugin, tokenContractPlugin, tradePlugin, webhookPlugin } from "@elizaos/plugin-coinbase" -import { coingeckoPlugin } from "@elizaos/plugin-coingecko" -import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap" -import { confluxPlugin } from "@elizaos/plugin-conflux" -import { createCosmosPlugin } from "@elizaos/plugin-cosmos" -import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm" -import { evmPlugin } from "@elizaos/plugin-evm" -import { flowPlugin } from "@elizaos/plugin-flow" -import { fuelPlugin } from "@elizaos/plugin-fuel" -import { genLayerPlugin } from "@elizaos/plugin-genlayer" -import { gitcoinPassportPlugin } from "@elizaos/plugin-gitcoin-passport" -import { initiaPlugin } from "@elizaos/plugin-initia" -import { imageGenerationPlugin } from "@elizaos/plugin-image-generation" -import { lensPlugin } from "@elizaos/plugin-lensNetwork" +import { bnbPlugin } from "@elizaos/plugin-bnb"; +import { + advancedTradePlugin, + coinbaseCommercePlugin, + coinbaseMassPaymentsPlugin, + tokenContractPlugin, + tradePlugin, + webhookPlugin, +} from "@elizaos/plugin-coinbase"; +import { coingeckoPlugin } from "@elizaos/plugin-coingecko"; +import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap"; +import { confluxPlugin } from "@elizaos/plugin-conflux"; +import { createCosmosPlugin } from "@elizaos/plugin-cosmos"; +import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm"; +import { evmPlugin } from "@elizaos/plugin-evm"; +import { flowPlugin } from "@elizaos/plugin-flow"; +import { fuelPlugin } from "@elizaos/plugin-fuel"; +import { genLayerPlugin } from "@elizaos/plugin-genlayer"; +import { gitcoinPassportPlugin } from "@elizaos/plugin-gitcoin-passport"; +import { initiaPlugin } from "@elizaos/plugin-initia"; +import { imageGenerationPlugin } from "@elizaos/plugin-image-generation"; +import { lensPlugin } from "@elizaos/plugin-lensNetwork"; import { mindNetworkPlugin } from "@elizaos/plugin-mind-network"; -import { multiversxPlugin } from "@elizaos/plugin-multiversx" -import { nearPlugin } from "@elizaos/plugin-near" +import { multiversxPlugin } from "@elizaos/plugin-multiversx"; +import { nearPlugin } from "@elizaos/plugin-near"; import { newsPlugin } from "@elizaos/plugin-news"; -import createNFTCollectionsPlugin from "@elizaos/plugin-nft-collections" -import { nftGenerationPlugin } from "@elizaos/plugin-nft-generation" -import { createNodePlugin } from "@elizaos/plugin-node" -import { obsidianPlugin } from "@elizaos/plugin-obsidian" -import { OpacityAdapter } from "@elizaos/plugin-opacity" -import { openWeatherPlugin } from "@elizaos/plugin-open-weather" -import { quaiPlugin } from "@elizaos/plugin-quai" -import { sgxPlugin } from "@elizaos/plugin-sgx" -import { solanaPlugin } from "@elizaos/plugin-solana" +import createNFTCollectionsPlugin from "@elizaos/plugin-nft-collections"; +import { nftGenerationPlugin } from "@elizaos/plugin-nft-generation"; +import { createNodePlugin } from "@elizaos/plugin-node"; +import { obsidianPlugin } from "@elizaos/plugin-obsidian"; +import { OpacityAdapter } from "@elizaos/plugin-opacity"; +import { openWeatherPlugin } from "@elizaos/plugin-open-weather"; +import { quaiPlugin } from "@elizaos/plugin-quai"; +import { sgxPlugin } from "@elizaos/plugin-sgx"; +import { solanaPlugin } from "@elizaos/plugin-solana"; import { solanaPluginV2 } from "@elizaos/plugin-solana-v2"; -import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agent-kit" -import { squidRouterPlugin } from "@elizaos/plugin-squid-router" -import { stargazePlugin } from "@elizaos/plugin-stargaze" -import { storyPlugin } from "@elizaos/plugin-story" -import { suiPlugin } from "@elizaos/plugin-sui" -import { TEEMode, teePlugin } from "@elizaos/plugin-tee" -import { teeLogPlugin } from "@elizaos/plugin-tee-log" -import { teeMarlinPlugin } from "@elizaos/plugin-tee-marlin" -import { verifiableLogPlugin } from "@elizaos/plugin-tee-verifiable-log" -import { tonPlugin } from "@elizaos/plugin-ton" -import { webSearchPlugin } from "@elizaos/plugin-web-search" -import { dkgPlugin } from "@elizaos/plugin-dkg" -import { injectivePlugin } from "@elizaos/plugin-injective" -import { giphyPlugin } from "@elizaos/plugin-giphy" -import { letzAIPlugin } from "@elizaos/plugin-letzai" -import { thirdwebPlugin } from "@elizaos/plugin-thirdweb" -import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid" +import { solanaAgentkitPlugin } from "@elizaos/plugin-solana-agent-kit"; +import { squidRouterPlugin } from "@elizaos/plugin-squid-router"; +import { stargazePlugin } from "@elizaos/plugin-stargaze"; +import { storyPlugin } from "@elizaos/plugin-story"; +import { suiPlugin } from "@elizaos/plugin-sui"; +import { TEEMode, teePlugin } from "@elizaos/plugin-tee"; +import { teeLogPlugin } from "@elizaos/plugin-tee-log"; +import { teeMarlinPlugin } from "@elizaos/plugin-tee-marlin"; +import { verifiableLogPlugin } from "@elizaos/plugin-tee-verifiable-log"; +import { tonPlugin } from "@elizaos/plugin-ton"; +import { webSearchPlugin } from "@elizaos/plugin-web-search"; +import { dkgPlugin } from "@elizaos/plugin-dkg"; +import { injectivePlugin } from "@elizaos/plugin-injective"; +import { giphyPlugin } from "@elizaos/plugin-giphy"; +import { letzAIPlugin } from "@elizaos/plugin-letzai"; +import { thirdwebPlugin } from "@elizaos/plugin-thirdweb"; +import { hyperliquidPlugin } from "@elizaos/plugin-hyperliquid"; import { moralisPlugin } from "@elizaos/plugin-moralis"; -import { echoChambersPlugin } from "@elizaos/plugin-echochambers" -import { dexScreenerPlugin } from "@elizaos/plugin-dexscreener" -import { pythDataPlugin } from "@elizaos/plugin-pyth-data" -import { openaiPlugin } from "@elizaos/plugin-openai" -import nitroPlugin from "@elizaos/plugin-router-nitro" -import { devinPlugin } from "@elizaos/plugin-devin" -import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era" -import { chainbasePlugin } from "@elizaos/plugin-chainbase" -import { holdstationPlugin } from "@elizaos/plugin-holdstation" -import { nvidiaNimPlugin } from "@elizaos/plugin-nvidia-nim" -import { zxPlugin } from "@elizaos/plugin-0x" -import { hyperbolicPlugin } from "@elizaos/plugin-hyperbolic" -import { litPlugin } from "@elizaos/plugin-lit" -import Database from "better-sqlite3" -import fs from "fs" -import net from "net" -import path from "path" -import { fileURLToPath } from "url" -import yargs from "yargs" -import { emailPlugin } from "@elizaos/plugin-email" +import { echoChambersPlugin } from "@elizaos/plugin-echochambers"; +import { dexScreenerPlugin } from "@elizaos/plugin-dexscreener"; +import { pythDataPlugin } from "@elizaos/plugin-pyth-data"; +import { openaiPlugin } from "@elizaos/plugin-openai"; +import nitroPlugin from "@elizaos/plugin-router-nitro"; +import { devinPlugin } from "@elizaos/plugin-devin"; +import { zksyncEraPlugin } from "@elizaos/plugin-zksync-era"; +import { chainbasePlugin } from "@elizaos/plugin-chainbase"; +import { holdstationPlugin } from "@elizaos/plugin-holdstation"; +import { nvidiaNimPlugin } from "@elizaos/plugin-nvidia-nim"; +import { zxPlugin } from "@elizaos/plugin-0x"; +import { hyperbolicPlugin } from "@elizaos/plugin-hyperbolic"; +import { litPlugin } from "@elizaos/plugin-lit"; +import Database from "better-sqlite3"; +import fs from "fs"; +import net from "net"; +import path from "path"; +import { fileURLToPath } from "url"; +import yargs from "yargs"; +import { emailPlugin } from "@elizaos/plugin-email"; import { emailAutomationPlugin } from "@elizaos/plugin-email-automation"; -import { seiPlugin } from "@elizaos/plugin-sei" -import { sunoPlugin } from "@elizaos/plugin-suno" -import { udioPlugin } from "@elizaos/plugin-udio" -import { imgflipPlugin } from "@elizaos/plugin-imgflip" -import { ethstoragePlugin } from "@elizaos/plugin-ethstorage" -import { zerionPlugin } from "@elizaos/plugin-zerion" -import { minaPlugin } from "@elizaos/plugin-mina" +import { seiPlugin } from "@elizaos/plugin-sei"; +import { sunoPlugin } from "@elizaos/plugin-suno"; +import { udioPlugin } from "@elizaos/plugin-udio"; +import { imgflipPlugin } from "@elizaos/plugin-imgflip"; +import { ethstoragePlugin } from "@elizaos/plugin-ethstorage"; +import { zerionPlugin } from "@elizaos/plugin-zerion"; +import { minaPlugin } from "@elizaos/plugin-mina"; import { ankrPlugin } from "@elizaos/plugin-ankr"; import { formPlugin } from "@elizaos/plugin-form"; import { MongoClient } from "mongodb"; -import { quickIntelPlugin } from "@elizaos/plugin-quick-intel" +import { quickIntelPlugin } from "@elizaos/plugin-quick-intel"; -import { trikonPlugin } from "@elizaos/plugin-trikon" -import arbitragePlugin from "@elizaos/plugin-arbitrage" -const __filename = fileURLToPath(import.meta.url) // get the resolved path to the file -const __dirname = path.dirname(__filename) // get the name of the directory +import { trikonPlugin } from "@elizaos/plugin-trikon"; +import arbitragePlugin from "@elizaos/plugin-arbitrage"; +const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file +const __dirname = path.dirname(__filename); // get the name of the directory export const wait = (minTime = 1000, maxTime = 3000) => { - const waitTime = Math.floor(Math.random() * (maxTime - minTime + 1)) + minTime - return new Promise((resolve) => setTimeout(resolve, waitTime)) -} + const waitTime = + Math.floor(Math.random() * (maxTime - minTime + 1)) + minTime; + return new Promise((resolve) => setTimeout(resolve, waitTime)); +}; const logFetch = async (url: string, options: any) => { - elizaLogger.debug(`Fetching ${url}`) - // Disabled to avoid disclosure of sensitive information such as API keys - // elizaLogger.debug(JSON.stringify(options, null, 2)); - return fetch(url, options) -} + elizaLogger.debug(`Fetching ${url}`); + // Disabled to avoid disclosure of sensitive information such as API keys + // elizaLogger.debug(JSON.stringify(options, null, 2)); + return fetch(url, options); +}; export function parseArguments(): { - character?: string - characters?: string + character?: string; + characters?: string; } { - try { - return yargs(process.argv.slice(3)) - .option("character", { - type: "string", - description: "Path to the character JSON file", - }) - .option("characters", { - type: "string", - description: "Comma separated list of paths to character JSON files", - }) - .parseSync() - } catch (error) { - elizaLogger.error("Error parsing arguments:", error) - return {} - } + try { + return yargs(process.argv.slice(3)) + .option("character", { + type: "string", + description: "Path to the character JSON file", + }) + .option("characters", { + type: "string", + description: + "Comma separated list of paths to character JSON files", + }) + .parseSync(); + } catch (error) { + elizaLogger.error("Error parsing arguments:", error); + return {}; + } } function tryLoadFile(filePath: string): string | null { - try { - return fs.readFileSync(filePath, "utf8") - } catch (e) { - return null - } + try { + return fs.readFileSync(filePath, "utf8"); + } catch (e) { + return null; + } } function mergeCharacters(base: Character, child: Character): Character { - const mergeObjects = (baseObj: any, childObj: any) => { - const result: any = {} - const keys = new Set([...Object.keys(baseObj || {}), ...Object.keys(childObj || {})]) - keys.forEach((key) => { - if (typeof baseObj[key] === "object" && typeof childObj[key] === "object" && !Array.isArray(baseObj[key]) && !Array.isArray(childObj[key])) { - result[key] = mergeObjects(baseObj[key], childObj[key]) - } else if (Array.isArray(baseObj[key]) || Array.isArray(childObj[key])) { - result[key] = [...(baseObj[key] || []), ...(childObj[key] || [])] - } else { - result[key] = childObj[key] !== undefined ? childObj[key] : baseObj[key] - } - }) - return result - } - return mergeObjects(base, child) + const mergeObjects = (baseObj: any, childObj: any) => { + const result: any = {}; + const keys = new Set([ + ...Object.keys(baseObj || {}), + ...Object.keys(childObj || {}), + ]); + keys.forEach((key) => { + if ( + typeof baseObj[key] === "object" && + typeof childObj[key] === "object" && + !Array.isArray(baseObj[key]) && + !Array.isArray(childObj[key]) + ) { + result[key] = mergeObjects(baseObj[key], childObj[key]); + } else if ( + Array.isArray(baseObj[key]) || + Array.isArray(childObj[key]) + ) { + result[key] = [ + ...(baseObj[key] || []), + ...(childObj[key] || []), + ]; + } else { + result[key] = + childObj[key] !== undefined ? childObj[key] : baseObj[key]; + } + }); + return result; + }; + return mergeObjects(base, child); } function isAllStrings(arr: unknown[]): boolean { - return Array.isArray(arr) && arr.every((item) => typeof item === "string") + return Array.isArray(arr) && arr.every((item) => typeof item === "string"); } export async function loadCharacterFromOnchain(): Promise { - const jsonText = onchainJson - - console.log("JSON:", jsonText) - if (!jsonText) return [] - const loadedCharacters = [] - try { - const character = JSON.parse(jsonText) - validateCharacterConfig(character) - - // .id isn't really valid - const characterId = character.id || character.name - const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.` - - const characterSettings = Object.entries(process.env) - .filter(([key]) => key.startsWith(characterPrefix)) - .reduce((settings, [key, value]) => { - const settingKey = key.slice(characterPrefix.length) - settings[settingKey] = value - return settings - }, {}) - - if (Object.keys(characterSettings).length > 0) { - character.settings = character.settings || {} - character.settings.secrets = { - ...characterSettings, - ...character.settings.secrets, - } - } - - // Handle plugins - if (isAllStrings(character.plugins)) { - elizaLogger.info("Plugins are: ", character.plugins) - const importedPlugins = await Promise.all( - character.plugins.map(async (plugin) => { - const importedPlugin = await import(plugin) - return importedPlugin.default - }) - ) - character.plugins = importedPlugins - } - - loadedCharacters.push(character) - elizaLogger.info(`Successfully loaded character from: ${process.env.IQ_WALLET_ADDRESS}`) - return loadedCharacters - } catch (e) { - elizaLogger.error(`Error parsing character from ${process.env.IQ_WALLET_ADDRESS}: ${e}`) - process.exit(1) - } + const jsonText = onchainJson; + + console.log("JSON:", jsonText); + if (!jsonText) return []; + const loadedCharacters = []; + try { + const character = JSON.parse(jsonText); + validateCharacterConfig(character); + + // .id isn't really valid + const characterId = character.id || character.name; + const characterPrefix = `CHARACTER.${characterId + .toUpperCase() + .replace(/ /g, "_")}.`; + + const characterSettings = Object.entries(process.env) + .filter(([key]) => key.startsWith(characterPrefix)) + .reduce((settings, [key, value]) => { + const settingKey = key.slice(characterPrefix.length); + settings[settingKey] = value; + return settings; + }, {}); + + if (Object.keys(characterSettings).length > 0) { + character.settings = character.settings || {}; + character.settings.secrets = { + ...characterSettings, + ...character.settings.secrets, + }; + } + + // Handle plugins + if (isAllStrings(character.plugins)) { + elizaLogger.info("Plugins are: ", character.plugins); + const importedPlugins = await Promise.all( + character.plugins.map(async (plugin) => { + const importedPlugin = await import(plugin); + return importedPlugin.default; + }) + ); + character.plugins = importedPlugins; + } + + loadedCharacters.push(character); + elizaLogger.info( + `Successfully loaded character from: ${process.env.IQ_WALLET_ADDRESS}` + ); + return loadedCharacters; + } catch (e) { + elizaLogger.error( + `Error parsing character from ${process.env.IQ_WALLET_ADDRESS}: ${e}` + ); + process.exit(1); + } } async function loadCharactersFromUrl(url: string): Promise { - try { - const response = await fetch(url) - const responseJson = await response.json() - - let characters: Character[] = [] - if (Array.isArray(responseJson)) { - characters = await Promise.all(responseJson.map((character) => jsonToCharacter(url, character))) - } else { - const character = await jsonToCharacter(url, responseJson) - characters.push(character) - } - return characters - } catch (e) { - elizaLogger.error(`Error loading character(s) from ${url}: ${e}`) - process.exit(1) - } + try { + const response = await fetch(url); + const responseJson = await response.json(); + + let characters: Character[] = []; + if (Array.isArray(responseJson)) { + characters = await Promise.all( + responseJson.map((character) => jsonToCharacter(url, character)) + ); + } else { + const character = await jsonToCharacter(url, responseJson); + characters.push(character); + } + return characters; + } catch (e) { + elizaLogger.error(`Error loading character(s) from ${url}: ${e}`); + process.exit(1); + } } -async function jsonToCharacter(filePath: string, character: any): Promise { - validateCharacterConfig(character) - - // .id isn't really valid - const characterId = character.id || character.name - const characterPrefix = `CHARACTER.${characterId.toUpperCase().replace(/ /g, "_")}.` - const characterSettings = Object.entries(process.env) - .filter(([key]) => key.startsWith(characterPrefix)) - .reduce((settings, [key, value]) => { - const settingKey = key.slice(characterPrefix.length) - return { ...settings, [settingKey]: value } - }, {}) - if (Object.keys(characterSettings).length > 0) { - character.settings = character.settings || {} - character.settings.secrets = { - ...characterSettings, - ...character.settings.secrets, - } - } - // Handle plugins - character.plugins = await handlePluginImporting(character.plugins) - if (character.extends) { - elizaLogger.info(`Merging ${character.name} character with parent characters`) - for (const extendPath of character.extends) { - const baseCharacter = await loadCharacter(path.resolve(path.dirname(filePath), extendPath)) - character = mergeCharacters(baseCharacter, character) - elizaLogger.info(`Merged ${character.name} with ${baseCharacter.name}`) - } - } - return character +async function jsonToCharacter( + filePath: string, + character: any +): Promise { + validateCharacterConfig(character); + + // .id isn't really valid + const characterId = character.id || character.name; + const characterPrefix = `CHARACTER.${characterId + .toUpperCase() + .replace(/ /g, "_")}.`; + const characterSettings = Object.entries(process.env) + .filter(([key]) => key.startsWith(characterPrefix)) + .reduce((settings, [key, value]) => { + const settingKey = key.slice(characterPrefix.length); + return { ...settings, [settingKey]: value }; + }, {}); + if (Object.keys(characterSettings).length > 0) { + character.settings = character.settings || {}; + character.settings.secrets = { + ...characterSettings, + ...character.settings.secrets, + }; + } + // Handle plugins + character.plugins = await handlePluginImporting(character.plugins); + if (character.extends) { + elizaLogger.info( + `Merging ${character.name} character with parent characters` + ); + for (const extendPath of character.extends) { + const baseCharacter = await loadCharacter( + path.resolve(path.dirname(filePath), extendPath) + ); + character = mergeCharacters(baseCharacter, character); + elizaLogger.info( + `Merged ${character.name} with ${baseCharacter.name}` + ); + } + } + return character; } async function loadCharacter(filePath: string): Promise { - const content = tryLoadFile(filePath) - if (!content) { - throw new Error(`Character file not found: ${filePath}`) - } - const character = JSON.parse(content) - return jsonToCharacter(filePath, character) + const content = tryLoadFile(filePath); + if (!content) { + throw new Error(`Character file not found: ${filePath}`); + } + const character = JSON.parse(content); + return jsonToCharacter(filePath, character); } async function loadCharacterTryPath(characterPath: string): Promise { - let content: string | null = null - let resolvedPath = "" - - // Try different path resolutions in order - const pathsToTry = [ - characterPath, // exact path as specified - path.resolve(process.cwd(), characterPath), // relative to cwd - path.resolve(process.cwd(), "agent", characterPath), // Add this - path.resolve(__dirname, characterPath), // relative to current script - path.resolve(__dirname, "characters", path.basename(characterPath)), // relative to agent/characters - path.resolve(__dirname, "../characters", path.basename(characterPath)), // relative to characters dir from agent - path.resolve(__dirname, "../../characters", path.basename(characterPath)), // relative to project root characters dir - ] - - elizaLogger.info( - "Trying paths:", - pathsToTry.map((p) => ({ - path: p, - exists: fs.existsSync(p), - })) - ) - - for (const tryPath of pathsToTry) { - content = tryLoadFile(tryPath) - if (content !== null) { - resolvedPath = tryPath - break - } - } - - if (content === null) { - elizaLogger.error(`Error loading character from ${characterPath}: File not found in any of the expected locations`) - elizaLogger.error("Tried the following paths:") - pathsToTry.forEach((p) => elizaLogger.error(` - ${p}`)) - throw new Error(`Error loading character from ${characterPath}: File not found in any of the expected locations`) - } - try { - const character: Character = await loadCharacter(resolvedPath) - elizaLogger.info(`Successfully loaded character from: ${resolvedPath}`) - return character - } catch (e) { - elizaLogger.error(`Error parsing character from ${resolvedPath}: ${e}`) - throw new Error(`Error parsing character from ${resolvedPath}: ${e}`) - } + let content: string | null = null; + let resolvedPath = ""; + + // Try different path resolutions in order + const pathsToTry = [ + characterPath, // exact path as specified + path.resolve(process.cwd(), characterPath), // relative to cwd + path.resolve(process.cwd(), "agent", characterPath), // Add this + path.resolve(__dirname, characterPath), // relative to current script + path.resolve(__dirname, "characters", path.basename(characterPath)), // relative to agent/characters + path.resolve(__dirname, "../characters", path.basename(characterPath)), // relative to characters dir from agent + path.resolve( + __dirname, + "../../characters", + path.basename(characterPath) + ), // relative to project root characters dir + ]; + + elizaLogger.info( + "Trying paths:", + pathsToTry.map((p) => ({ + path: p, + exists: fs.existsSync(p), + })) + ); + + for (const tryPath of pathsToTry) { + content = tryLoadFile(tryPath); + if (content !== null) { + resolvedPath = tryPath; + break; + } + } + + if (content === null) { + elizaLogger.error( + `Error loading character from ${characterPath}: File not found in any of the expected locations` + ); + elizaLogger.error("Tried the following paths:"); + pathsToTry.forEach((p) => elizaLogger.error(` - ${p}`)); + throw new Error( + `Error loading character from ${characterPath}: File not found in any of the expected locations` + ); + } + try { + const character: Character = await loadCharacter(resolvedPath); + elizaLogger.info(`Successfully loaded character from: ${resolvedPath}`); + return character; + } catch (e) { + elizaLogger.error(`Error parsing character from ${resolvedPath}: ${e}`); + throw new Error(`Error parsing character from ${resolvedPath}: ${e}`); + } } function commaSeparatedStringToArray(commaSeparated: string): string[] { - return commaSeparated?.split(",").map((value) => value.trim()) + return commaSeparated?.split(",").map((value) => value.trim()); } -async function readCharactersFromStorage(characterPaths: string[]): Promise { - try { - const uploadDir = path.join(process.cwd(), "data", "characters") - await fs.promises.mkdir(uploadDir, { recursive: true }) - const fileNames = await fs.promises.readdir(uploadDir) - fileNames.forEach((fileName) => { - characterPaths.push(path.join(uploadDir, fileName)) - }) - } catch (err) { - elizaLogger.error(`Error reading directory: ${err.message}`) - } - - return characterPaths +async function readCharactersFromStorage( + characterPaths: string[] +): Promise { + try { + const uploadDir = path.join(process.cwd(), "data", "characters"); + await fs.promises.mkdir(uploadDir, { recursive: true }); + const fileNames = await fs.promises.readdir(uploadDir); + fileNames.forEach((fileName) => { + characterPaths.push(path.join(uploadDir, fileName)); + }); + } catch (err) { + elizaLogger.error(`Error reading directory: ${err.message}`); + } + + return characterPaths; } -export async function loadCharacters(charactersArg: string): Promise { - let characterPaths = commaSeparatedStringToArray(charactersArg) - - if (process.env.USE_CHARACTER_STORAGE === "true") { - characterPaths = await readCharactersFromStorage(characterPaths) - } - - const loadedCharacters: Character[] = [] - - if (characterPaths?.length > 0) { - for (const characterPath of characterPaths) { - try { - const character: Character = await loadCharacterTryPath(characterPath) - loadedCharacters.push(character) - } catch (e) { - process.exit(1) - } - } - } - - if (hasValidRemoteUrls()) { - elizaLogger.info("Loading characters from remote URLs") - const characterUrls = commaSeparatedStringToArray(process.env.REMOTE_CHARACTER_URLS) - for (const characterUrl of characterUrls) { - const characters = await loadCharactersFromUrl(characterUrl) - loadedCharacters.push(...characters) - } - } - - if (loadedCharacters.length === 0) { - elizaLogger.info("No characters found, using default character") - loadedCharacters.push(defaultCharacter) - } - - return loadedCharacters +export async function loadCharacters( + charactersArg: string +): Promise { + let characterPaths = commaSeparatedStringToArray(charactersArg); + + if (process.env.USE_CHARACTER_STORAGE === "true") { + characterPaths = await readCharactersFromStorage(characterPaths); + } + + const loadedCharacters: Character[] = []; + + if (characterPaths?.length > 0) { + for (const characterPath of characterPaths) { + try { + const character: Character = await loadCharacterTryPath( + characterPath + ); + loadedCharacters.push(character); + } catch (e) { + process.exit(1); + } + } + } + + if (hasValidRemoteUrls()) { + elizaLogger.info("Loading characters from remote URLs"); + const characterUrls = commaSeparatedStringToArray( + process.env.REMOTE_CHARACTER_URLS + ); + for (const characterUrl of characterUrls) { + const characters = await loadCharactersFromUrl(characterUrl); + loadedCharacters.push(...characters); + } + } + + if (loadedCharacters.length === 0) { + elizaLogger.info("No characters found, using default character"); + loadedCharacters.push(defaultCharacter); + } + + return loadedCharacters; } async function handlePluginImporting(plugins: string[]) { - if (plugins.length > 0) { - elizaLogger.info("Plugins are: ", plugins) - const importedPlugins = await Promise.all( - plugins.map(async (plugin) => { - try { - const importedPlugin = await import(plugin) - const functionName = plugin.replace("@elizaos/plugin-", "").replace(/-./g, (x) => x[1].toUpperCase()) + "Plugin" // Assumes plugin function is camelCased with Plugin suffix - return importedPlugin.default || importedPlugin[functionName] - } catch (importError) { - elizaLogger.error(`Failed to import plugin: ${plugin}`, importError) - return [] // Return null for failed imports - } - }) - ) - return importedPlugins - } else { - return [] - } + if (plugins.length > 0) { + elizaLogger.info("Plugins are: ", plugins); + const importedPlugins = await Promise.all( + plugins.map(async (plugin) => { + try { + const importedPlugin = await import(plugin); + const functionName = + plugin + .replace("@elizaos/plugin-", "") + .replace(/-./g, (x) => x[1].toUpperCase()) + + "Plugin"; // Assumes plugin function is camelCased with Plugin suffix + return ( + importedPlugin.default || importedPlugin[functionName] + ); + } catch (importError) { + elizaLogger.error( + `Failed to import plugin: ${plugin}`, + importError + ); + return []; // Return null for failed imports + } + }) + ); + return importedPlugins; + } else { + return []; + } } -export function getTokenForProvider(provider: ModelProviderName, character: Character): string | undefined { - switch (provider) { - // no key needed for llama_local or gaianet - case ModelProviderName.LLAMALOCAL: - return "" - case ModelProviderName.OLLAMA: - return "" - case ModelProviderName.GAIANET: - return ""; - case ModelProviderName.BEDROCK: - return "" - case ModelProviderName.OPENAI: - return character.settings?.secrets?.OPENAI_API_KEY || settings.OPENAI_API_KEY - case ModelProviderName.ETERNALAI: - return character.settings?.secrets?.ETERNALAI_API_KEY || settings.ETERNALAI_API_KEY - case ModelProviderName.NINETEEN_AI: - return character.settings?.secrets?.NINETEEN_AI_API_KEY || settings.NINETEEN_AI_API_KEY - case ModelProviderName.LLAMACLOUD: - case ModelProviderName.TOGETHER: - return character.settings?.secrets?.LLAMACLOUD_API_KEY || settings.LLAMACLOUD_API_KEY || character.settings?.secrets?.TOGETHER_API_KEY || settings.TOGETHER_API_KEY || character.settings?.secrets?.OPENAI_API_KEY || settings.OPENAI_API_KEY - case ModelProviderName.CLAUDE_VERTEX: - case ModelProviderName.ANTHROPIC: - return character.settings?.secrets?.ANTHROPIC_API_KEY || character.settings?.secrets?.CLAUDE_API_KEY || settings.ANTHROPIC_API_KEY || settings.CLAUDE_API_KEY - case ModelProviderName.REDPILL: - return character.settings?.secrets?.REDPILL_API_KEY || settings.REDPILL_API_KEY - case ModelProviderName.OPENROUTER: - return character.settings?.secrets?.OPENROUTER_API_KEY || settings.OPENROUTER_API_KEY - case ModelProviderName.GROK: - return character.settings?.secrets?.GROK_API_KEY || settings.GROK_API_KEY - case ModelProviderName.HEURIST: - return character.settings?.secrets?.HEURIST_API_KEY || settings.HEURIST_API_KEY - case ModelProviderName.GROQ: - return character.settings?.secrets?.GROQ_API_KEY || settings.GROQ_API_KEY - case ModelProviderName.GALADRIEL: - return character.settings?.secrets?.GALADRIEL_API_KEY || settings.GALADRIEL_API_KEY - case ModelProviderName.FAL: - return character.settings?.secrets?.FAL_API_KEY || settings.FAL_API_KEY - case ModelProviderName.ALI_BAILIAN: - return character.settings?.secrets?.ALI_BAILIAN_API_KEY || settings.ALI_BAILIAN_API_KEY - case ModelProviderName.VOLENGINE: - return character.settings?.secrets?.VOLENGINE_API_KEY || settings.VOLENGINE_API_KEY - case ModelProviderName.NANOGPT: - return character.settings?.secrets?.NANOGPT_API_KEY || settings.NANOGPT_API_KEY - case ModelProviderName.HYPERBOLIC: - return character.settings?.secrets?.HYPERBOLIC_API_KEY || settings.HYPERBOLIC_API_KEY - - case ModelProviderName.VENICE: - return character.settings?.secrets?.VENICE_API_KEY || settings.VENICE_API_KEY - case ModelProviderName.ATOMA: - return character.settings?.secrets?.ATOMASDK_BEARER_AUTH || settings.ATOMASDK_BEARER_AUTH - case ModelProviderName.NVIDIA: - return character.settings?.secrets?.NVIDIA_API_KEY || settings.NVIDIA_API_KEY - case ModelProviderName.AKASH_CHAT_API: - return character.settings?.secrets?.AKASH_CHAT_API_KEY || settings.AKASH_CHAT_API_KEY - case ModelProviderName.GOOGLE: - return character.settings?.secrets?.GOOGLE_GENERATIVE_AI_API_KEY || settings.GOOGLE_GENERATIVE_AI_API_KEY - case ModelProviderName.MISTRAL: - return character.settings?.secrets?.MISTRAL_API_KEY || settings.MISTRAL_API_KEY - case ModelProviderName.LETZAI: - return character.settings?.secrets?.LETZAI_API_KEY || settings.LETZAI_API_KEY - case ModelProviderName.INFERA: - return character.settings?.secrets?.INFERA_API_KEY || settings.INFERA_API_KEY - case ModelProviderName.DEEPSEEK: - return character.settings?.secrets?.DEEPSEEK_API_KEY || settings.DEEPSEEK_API_KEY - case ModelProviderName.LIVEPEER: - return character.settings?.secrets?.LIVEPEER_GATEWAY_URL || settings.LIVEPEER_GATEWAY_URL - default: - const errorMessage = `Failed to get token - unsupported model provider: ${provider}` - elizaLogger.error(errorMessage) - throw new Error(errorMessage) - } +export function getTokenForProvider( + provider: ModelProviderName, + character: Character +): string | undefined { + switch (provider) { + // no key needed for llama_local or gaianet + case ModelProviderName.LLAMALOCAL: + return ""; + case ModelProviderName.OLLAMA: + return ""; + case ModelProviderName.GAIANET: + return ""; + case ModelProviderName.BEDROCK: + return ""; + case ModelProviderName.OPENAI: + return ( + character.settings?.secrets?.OPENAI_API_KEY || + settings.OPENAI_API_KEY + ); + case ModelProviderName.ETERNALAI: + return ( + character.settings?.secrets?.ETERNALAI_API_KEY || + settings.ETERNALAI_API_KEY + ); + case ModelProviderName.NINETEEN_AI: + return ( + character.settings?.secrets?.NINETEEN_AI_API_KEY || + settings.NINETEEN_AI_API_KEY + ); + case ModelProviderName.LLAMACLOUD: + case ModelProviderName.TOGETHER: + return ( + character.settings?.secrets?.LLAMACLOUD_API_KEY || + settings.LLAMACLOUD_API_KEY || + character.settings?.secrets?.TOGETHER_API_KEY || + settings.TOGETHER_API_KEY || + character.settings?.secrets?.OPENAI_API_KEY || + settings.OPENAI_API_KEY + ); + case ModelProviderName.CLAUDE_VERTEX: + case ModelProviderName.ANTHROPIC: + return ( + character.settings?.secrets?.ANTHROPIC_API_KEY || + character.settings?.secrets?.CLAUDE_API_KEY || + settings.ANTHROPIC_API_KEY || + settings.CLAUDE_API_KEY + ); + case ModelProviderName.REDPILL: + return ( + character.settings?.secrets?.REDPILL_API_KEY || + settings.REDPILL_API_KEY + ); + case ModelProviderName.OPENROUTER: + return ( + character.settings?.secrets?.OPENROUTER_API_KEY || + settings.OPENROUTER_API_KEY + ); + case ModelProviderName.GROK: + return ( + character.settings?.secrets?.GROK_API_KEY || + settings.GROK_API_KEY + ); + case ModelProviderName.HEURIST: + return ( + character.settings?.secrets?.HEURIST_API_KEY || + settings.HEURIST_API_KEY + ); + case ModelProviderName.GROQ: + return ( + character.settings?.secrets?.GROQ_API_KEY || + settings.GROQ_API_KEY + ); + case ModelProviderName.GALADRIEL: + return ( + character.settings?.secrets?.GALADRIEL_API_KEY || + settings.GALADRIEL_API_KEY + ); + case ModelProviderName.FAL: + return ( + character.settings?.secrets?.FAL_API_KEY || settings.FAL_API_KEY + ); + case ModelProviderName.ALI_BAILIAN: + return ( + character.settings?.secrets?.ALI_BAILIAN_API_KEY || + settings.ALI_BAILIAN_API_KEY + ); + case ModelProviderName.VOLENGINE: + return ( + character.settings?.secrets?.VOLENGINE_API_KEY || + settings.VOLENGINE_API_KEY + ); + case ModelProviderName.NANOGPT: + return ( + character.settings?.secrets?.NANOGPT_API_KEY || + settings.NANOGPT_API_KEY + ); + case ModelProviderName.HYPERBOLIC: + return ( + character.settings?.secrets?.HYPERBOLIC_API_KEY || + settings.HYPERBOLIC_API_KEY + ); + + case ModelProviderName.VENICE: + return ( + character.settings?.secrets?.VENICE_API_KEY || + settings.VENICE_API_KEY + ); + case ModelProviderName.ATOMA: + return ( + character.settings?.secrets?.ATOMASDK_BEARER_AUTH || + settings.ATOMASDK_BEARER_AUTH + ); + case ModelProviderName.NVIDIA: + return ( + character.settings?.secrets?.NVIDIA_API_KEY || + settings.NVIDIA_API_KEY + ); + case ModelProviderName.AKASH_CHAT_API: + return ( + character.settings?.secrets?.AKASH_CHAT_API_KEY || + settings.AKASH_CHAT_API_KEY + ); + case ModelProviderName.GOOGLE: + return ( + character.settings?.secrets?.GOOGLE_GENERATIVE_AI_API_KEY || + settings.GOOGLE_GENERATIVE_AI_API_KEY + ); + case ModelProviderName.MISTRAL: + return ( + character.settings?.secrets?.MISTRAL_API_KEY || + settings.MISTRAL_API_KEY + ); + case ModelProviderName.LETZAI: + return ( + character.settings?.secrets?.LETZAI_API_KEY || + settings.LETZAI_API_KEY + ); + case ModelProviderName.INFERA: + return ( + character.settings?.secrets?.INFERA_API_KEY || + settings.INFERA_API_KEY + ); + case ModelProviderName.DEEPSEEK: + return ( + character.settings?.secrets?.DEEPSEEK_API_KEY || + settings.DEEPSEEK_API_KEY + ); + case ModelProviderName.LIVEPEER: + return ( + character.settings?.secrets?.LIVEPEER_GATEWAY_URL || + settings.LIVEPEER_GATEWAY_URL + ); + default: + const errorMessage = `Failed to get token - unsupported model provider: ${provider}`; + elizaLogger.error(errorMessage); + throw new Error(errorMessage); + } } function initializeDatabase(dataDir: string) { - if (process.env.MONGODB_CONNECTION_STRING) { - elizaLogger.log("Initializing database on MongoDB Atlas"); - const client = new MongoClient(process.env.MONGODB_CONNECTION_STRING, { - maxPoolSize: 100, - minPoolSize: 5, - maxIdleTimeMS: 60000, - connectTimeoutMS: 10000, - serverSelectionTimeoutMS: 5000, - socketTimeoutMS: 45000, - compressors: ['zlib'], - retryWrites: true, - retryReads: true - }); - - const dbName = process.env.MONGODB_DATABASE || 'elizaAgent'; - const db = new MongoDBDatabaseAdapter(client, dbName); - - // Test the connection - db.init() - .then(() => { - elizaLogger.success( - "Successfully connected to MongoDB Atlas" - ); - }) - .catch((error) => { - elizaLogger.error("Failed to connect to MongoDB Atlas:", error); - throw error; // Re-throw to handle it in the calling code - }); - - return db; - } else if (process.env.SUPABASE_URL && process.env.SUPABASE_ANON_KEY) { - elizaLogger.info("Initializing Supabase connection..."); - const db = new SupabaseDatabaseAdapter( - process.env.SUPABASE_URL, - process.env.SUPABASE_ANON_KEY, - ); - - // Test the connection - db.init() - .then(() => { - elizaLogger.success("Successfully connected to Supabase database") - }) - .catch((error) => { - elizaLogger.error("Failed to connect to Supabase:", error) - }) - - return db - } else if (process.env.POSTGRES_URL) { - elizaLogger.info("Initializing PostgreSQL connection...") - const db = new PostgresDatabaseAdapter({ - connectionString: process.env.POSTGRES_URL, - parseInputs: true, - }) - - // Test the connection - db.init() - .then(() => { - elizaLogger.success("Successfully connected to PostgreSQL database") - }) - .catch((error) => { - elizaLogger.error("Failed to connect to PostgreSQL:", error) - }) - - return db - } else if (process.env.PGLITE_DATA_DIR) { - elizaLogger.info("Initializing PgLite adapter...") - // `dataDir: memory://` for in memory pg - const db = new PGLiteDatabaseAdapter({ - dataDir: process.env.PGLITE_DATA_DIR, - }) - return db - } else if ( - process.env.QDRANT_URL && process.env.QDRANT_KEY && process.env.QDRANT_PORT && process.env.QDRANT_VECTOR_SIZE) { - elizaLogger.info("Initializing Qdrant adapter...") - const db = new QdrantDatabaseAdapter(process.env.QDRANT_URL, process.env.QDRANT_KEY, Number(process.env.QDRANT_PORT), Number(process.env.QDRANT_VECTOR_SIZE),) - return db - } else { - const filePath = process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite") - elizaLogger.info(`Initializing SQLite database at ${filePath}...`) - const db = new SqliteDatabaseAdapter(new Database(filePath)) - - // Test the connection - db.init() - .then(() => { - elizaLogger.success("Successfully connected to SQLite database") - }) - .catch((error) => { - elizaLogger.error("Failed to connect to SQLite:", error) - }) - - return db - } + if (process.env.MONGODB_CONNECTION_STRING) { + elizaLogger.log("Initializing database on MongoDB Atlas"); + const client = new MongoClient(process.env.MONGODB_CONNECTION_STRING, { + maxPoolSize: 100, + minPoolSize: 5, + maxIdleTimeMS: 60000, + connectTimeoutMS: 10000, + serverSelectionTimeoutMS: 5000, + socketTimeoutMS: 45000, + compressors: ["zlib"], + retryWrites: true, + retryReads: true, + }); + + const dbName = process.env.MONGODB_DATABASE || "elizaAgent"; + const db = new MongoDBDatabaseAdapter(client, dbName); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success("Successfully connected to MongoDB Atlas"); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to MongoDB Atlas:", error); + throw error; // Re-throw to handle it in the calling code + }); + + return db; + } else if (process.env.SUPABASE_URL && process.env.SUPABASE_ANON_KEY) { + elizaLogger.info("Initializing Supabase connection..."); + const db = new SupabaseDatabaseAdapter( + process.env.SUPABASE_URL, + process.env.SUPABASE_ANON_KEY + ); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success( + "Successfully connected to Supabase database" + ); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to Supabase:", error); + }); + + return db; + } else if (process.env.POSTGRES_URL) { + elizaLogger.info("Initializing PostgreSQL connection..."); + const db = new PostgresDatabaseAdapter({ + connectionString: process.env.POSTGRES_URL, + parseInputs: true, + }); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success( + "Successfully connected to PostgreSQL database" + ); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to PostgreSQL:", error); + }); + + return db; + } else if (process.env.PGLITE_DATA_DIR) { + elizaLogger.info("Initializing PgLite adapter..."); + // `dataDir: memory://` for in memory pg + const db = new PGLiteDatabaseAdapter({ + dataDir: process.env.PGLITE_DATA_DIR, + }); + return db; + } else if ( + process.env.QDRANT_URL && + process.env.QDRANT_KEY && + process.env.QDRANT_PORT && + process.env.QDRANT_VECTOR_SIZE + ) { + elizaLogger.info("Initializing Qdrant adapter..."); + const db = new QdrantDatabaseAdapter( + process.env.QDRANT_URL, + process.env.QDRANT_KEY, + Number(process.env.QDRANT_PORT), + Number(process.env.QDRANT_VECTOR_SIZE) + ); + return db; + } else { + const filePath = + process.env.SQLITE_FILE ?? path.resolve(dataDir, "db.sqlite"); + elizaLogger.info(`Initializing SQLite database at ${filePath}...`); + const db = new SqliteDatabaseAdapter(new Database(filePath)); + + // Test the connection + db.init() + .then(() => { + elizaLogger.success( + "Successfully connected to SQLite database" + ); + }) + .catch((error) => { + elizaLogger.error("Failed to connect to SQLite:", error); + }); + + return db; + } } // also adds plugins from character file into the runtime -export async function initializeClients(character: Character, runtime: IAgentRuntime) { - // each client can only register once - // and if we want two we can explicitly support it - const clients: Record = {} - const clientTypes: string[] = character.clients?.map((str) => str.toLowerCase()) || [] - elizaLogger.log("initializeClients", clientTypes, "for", character.name) - - - // Start Auto Client if "auto" detected as a configured client - if (clientTypes.includes(Clients.AUTO)) { - const autoClient = await AutoClientInterface.start(runtime) - if (autoClient) clients.auto = autoClient - } - - if (clientTypes.includes(Clients.XMTP)) { - const xmtpClient = await XmtpClientInterface.start(runtime); - if (xmtpClient) clients.xmtp = xmtpClient; - } - - if (clientTypes.includes(Clients.DISCORD)) { - const discordClient = await DiscordClientInterface.start(runtime) - if (discordClient) clients.discord = discordClient - } - - if (clientTypes.includes(Clients.TELEGRAM)) { - const telegramClient = await TelegramClientInterface.start(runtime) - if (telegramClient) clients.telegram = telegramClient - } +export async function initializeClients( + character: Character, + runtime: IAgentRuntime +) { + // each client can only register once + // and if we want two we can explicitly support it + const clients: Record = {}; + const clientTypes: string[] = + character.clients?.map((str) => str.toLowerCase()) || []; + elizaLogger.log("initializeClients", clientTypes, "for", character.name); + + // Start Auto Client if "auto" detected as a configured client + if (clientTypes.includes(Clients.AUTO)) { + const autoClient = await AutoClientInterface.start(runtime); + if (autoClient) clients.auto = autoClient; + } + + if (clientTypes.includes(Clients.XMTP)) { + const xmtpClient = await XmtpClientInterface.start(runtime); + if (xmtpClient) clients.xmtp = xmtpClient; + } + + if (clientTypes.includes(Clients.DISCORD)) { + const discordClient = await DiscordClientInterface.start(runtime); + if (discordClient) clients.discord = discordClient; + } + + if (clientTypes.includes(Clients.TELEGRAM)) { + const telegramClient = await TelegramClientInterface.start(runtime); + if (telegramClient) clients.telegram = telegramClient; + } if (clientTypes.includes(Clients.TELEGRAM_ACCOUNT)) { - const telegramAccountClient = await TelegramAccountClientInterface.start(runtime); - if (telegramAccountClient) clients.telegram_account = telegramAccountClient; + const telegramAccountClient = + await TelegramAccountClientInterface.start(runtime); + if (telegramAccountClient) + clients.telegram_account = telegramAccountClient; } - if (clientTypes.includes(Clients.TWITTER)) { - const twitterClient = await TwitterClientInterface.start(runtime) - if (twitterClient) { - clients.twitter = twitterClient - } - } - - if (clientTypes.includes(Clients.ALEXA)) { - const alexaClient = await AlexaClientInterface.start(runtime); - if (alexaClient) { - clients.alexa = alexaClient; - } - } - - if (clientTypes.includes(Clients.INSTAGRAM)) { - const instagramClient = await InstagramClientInterface.start(runtime) - if (instagramClient) { - clients.instagram = instagramClient - } - } - - if (clientTypes.includes(Clients.FARCASTER)) { - const farcasterClient = await FarcasterClientInterface.start(runtime) - if (farcasterClient) { - clients.farcaster = farcasterClient - } - } - - if (clientTypes.includes("lens")) { - const lensClient = new LensAgentClient(runtime) - lensClient.start() - clients.lens = lensClient - } - - if (clientTypes.includes(Clients.SIMSAI)) { - const simsaiClient = await JeeterClientInterface.start(runtime) - if (simsaiClient) clients.simsai = simsaiClient - } - - elizaLogger.log("client keys", Object.keys(clients)) + if (clientTypes.includes(Clients.TWITTER)) { + const twitterClient = await TwitterClientInterface.start(runtime); + if (twitterClient) { + clients.twitter = twitterClient; + } + } + + if (clientTypes.includes(Clients.ALEXA)) { + const alexaClient = await AlexaClientInterface.start(runtime); + if (alexaClient) { + clients.alexa = alexaClient; + } + } + + if (clientTypes.includes(Clients.INSTAGRAM)) { + const instagramClient = await InstagramClientInterface.start(runtime); + if (instagramClient) { + clients.instagram = instagramClient; + } + } + + if (clientTypes.includes(Clients.FARCASTER)) { + const farcasterClient = await FarcasterClientInterface.start(runtime); + if (farcasterClient) { + clients.farcaster = farcasterClient; + } + } + + if (clientTypes.includes("lens")) { + const lensClient = new LensAgentClient(runtime); + lensClient.start(); + clients.lens = lensClient; + } + + if (clientTypes.includes(Clients.SIMSAI)) { + const simsaiClient = await JeeterClientInterface.start(runtime); + if (simsaiClient) clients.simsai = simsaiClient; + } + + elizaLogger.log("client keys", Object.keys(clients)); if (clientTypes.includes("deva")) { if (clientTypes.includes("deva")) { @@ -701,453 +874,668 @@ export async function initializeClients(character: Character, runtime: IAgentRun } } + if (clientTypes.includes("slack")) { + const slackClient = await SlackClientInterface.start(runtime); + if (slackClient) clients.slack = slackClient; // Use object property instead of push + } + function determineClientType(client: Client): string { // Check if client has a direct type identifier if ("type" in client) { return (client as any).type; } - // TODO: Add Slack client to the list - // Initialize clients as an object - - if (clientTypes.includes("slack")) { - const slackClient = await SlackClientInterface.start(runtime) - if (slackClient) clients.slack = slackClient // Use object property instead of push - } - - function determineClientType(client: Client): string { - // Check if client has a direct type identifier - if ("type" in client) { - return (client as any).type - } - - // Check constructor name - const constructorName = client.constructor?.name - if (constructorName && !constructorName.includes("Object")) { - return constructorName.toLowerCase().replace("client", "") - } - - // Fallback: Generate a unique identifier - return `client_${Date.now()}` - } - - if (character.plugins?.length > 0) { - for (const plugin of character.plugins) { - if (plugin.clients) { - for (const client of plugin.clients) { - const startedClient = await client.start(runtime) - const clientType = determineClientType(client) - elizaLogger.debug(`Initializing client of type: ${clientType}`) - clients[clientType] = startedClient - } - } - } - } - - return clients + // Check constructor name + const constructorName = client.constructor?.name; + if (constructorName && !constructorName.includes("Object")) { + return constructorName.toLowerCase().replace("client", ""); + } + + // Fallback: Generate a unique identifier + return `client_${Date.now()}`; + } + + if (character.plugins?.length > 0) { + for (const plugin of character.plugins) { + if (plugin.clients) { + for (const client of plugin.clients) { + const startedClient = await client.start(runtime); + const clientType = determineClientType(client); + elizaLogger.debug( + `Initializing client of type: ${clientType}` + ); + clients[clientType] = startedClient; + } + } + } + } + + return clients; } function getSecret(character: Character, secret: string) { - return character.settings?.secrets?.[secret] || process.env[secret] + return character.settings?.secrets?.[secret] || process.env[secret]; } -let nodePlugin: any | undefined +let nodePlugin: any | undefined; -export async function createAgent(character: Character, db: IDatabaseAdapter, cache: ICacheManager, token: string): Promise { - elizaLogger.log(`Creating runtime for character ${character.name}`) +export async function createAgent( + character: Character, + db: IDatabaseAdapter, + cache: ICacheManager, + token: string +): Promise { + elizaLogger.log(`Creating runtime for character ${character.name}`); - nodePlugin ??= createNodePlugin() + nodePlugin ??= createNodePlugin(); - const teeMode = getSecret(character, "TEE_MODE") || "OFF" - const walletSecretSalt = getSecret(character, "WALLET_SECRET_SALT") + const teeMode = getSecret(character, "TEE_MODE") || "OFF"; + const walletSecretSalt = getSecret(character, "WALLET_SECRET_SALT"); - // Validate TEE configuration - if (teeMode !== TEEMode.OFF && !walletSecretSalt) { - elizaLogger.error("A WALLET_SECRET_SALT required when TEE_MODE is enabled") - throw new Error("Invalid TEE configuration") - } + // Validate TEE configuration + if (teeMode !== TEEMode.OFF && !walletSecretSalt) { + elizaLogger.error( + "A WALLET_SECRET_SALT required when TEE_MODE is enabled" + ); + throw new Error("Invalid TEE configuration"); + } - let goatPlugin: any | undefined + let goatPlugin: any | undefined; - if (getSecret(character, "EVM_PRIVATE_KEY")) { - goatPlugin = await createGoatPlugin((secret) => getSecret(character, secret)) - } + if (getSecret(character, "EVM_PRIVATE_KEY")) { + goatPlugin = await createGoatPlugin((secret) => + getSecret(character, secret) + ); + } - let zilliqaPlugin: any | undefined; - if (getSecret(character, "ZILLIQA_PRIVATE_KEY")) { - zilliqaPlugin = await createZilliqaPlugin((secret) => - getSecret(character, secret) - ); - } + let zilliqaPlugin: any | undefined; + if (getSecret(character, "ZILLIQA_PRIVATE_KEY")) { + zilliqaPlugin = await createZilliqaPlugin((secret) => + getSecret(character, secret) + ); + } + + // Initialize Reclaim adapter if environment variables are present + // let verifiableInferenceAdapter; + // if ( + // process.env.RECLAIM_APP_ID && + // process.env.RECLAIM_APP_SECRET && + // process.env.VERIFIABLE_INFERENCE_ENABLED === "true" + // ) { + // verifiableInferenceAdapter = new ReclaimAdapter({ + // appId: process.env.RECLAIM_APP_ID, + // appSecret: process.env.RECLAIM_APP_SECRET, + // modelProvider: character.modelProvider, + // token, + // }); + // elizaLogger.log("Verifiable inference adapter initialized"); + // } + // Initialize Opacity adapter if environment variables are present + let verifiableInferenceAdapter; + if ( + process.env.OPACITY_TEAM_ID && + process.env.OPACITY_CLOUDFLARE_NAME && + process.env.OPACITY_PROVER_URL && + process.env.VERIFIABLE_INFERENCE_ENABLED === "true" + ) { + verifiableInferenceAdapter = new OpacityAdapter({ + teamId: process.env.OPACITY_TEAM_ID, + teamName: process.env.OPACITY_CLOUDFLARE_NAME, + opacityProverUrl: process.env.OPACITY_PROVER_URL, + modelProvider: character.modelProvider, + token: token, + }); + elizaLogger.log("Verifiable inference adapter initialized"); + elizaLogger.log("teamId", process.env.OPACITY_TEAM_ID); + elizaLogger.log("teamName", process.env.OPACITY_CLOUDFLARE_NAME); + elizaLogger.log("opacityProverUrl", process.env.OPACITY_PROVER_URL); + elizaLogger.log("modelProvider", character.modelProvider); + elizaLogger.log("token", token); + } + if ( + process.env.PRIMUS_APP_ID && + process.env.PRIMUS_APP_SECRET && + process.env.VERIFIABLE_INFERENCE_ENABLED === "true" + ) { + verifiableInferenceAdapter = new PrimusAdapter({ + appId: process.env.PRIMUS_APP_ID, + appSecret: process.env.PRIMUS_APP_SECRET, + attMode: "proxytls", + modelProvider: character.modelProvider, + token, + }); + elizaLogger.log("Verifiable inference primus adapter initialized"); + } - // Initialize Reclaim adapter if environment variables are present - // let verifiableInferenceAdapter; - // if ( - // process.env.RECLAIM_APP_ID && - // process.env.RECLAIM_APP_SECRET && - // process.env.VERIFIABLE_INFERENCE_ENABLED === "true" - // ) { - // verifiableInferenceAdapter = new ReclaimAdapter({ - // appId: process.env.RECLAIM_APP_ID, - // appSecret: process.env.RECLAIM_APP_SECRET, - // modelProvider: character.modelProvider, - // token, - // }); - // elizaLogger.log("Verifiable inference adapter initialized"); - // } - // Initialize Opacity adapter if environment variables are present - let verifiableInferenceAdapter - if (process.env.OPACITY_TEAM_ID && process.env.OPACITY_CLOUDFLARE_NAME && process.env.OPACITY_PROVER_URL && process.env.VERIFIABLE_INFERENCE_ENABLED === "true") { - verifiableInferenceAdapter = new OpacityAdapter({ - teamId: process.env.OPACITY_TEAM_ID, - teamName: process.env.OPACITY_CLOUDFLARE_NAME, - opacityProverUrl: process.env.OPACITY_PROVER_URL, - modelProvider: character.modelProvider, - token: token, - }) - elizaLogger.log("Verifiable inference adapter initialized") - elizaLogger.log("teamId", process.env.OPACITY_TEAM_ID) - elizaLogger.log("teamName", process.env.OPACITY_CLOUDFLARE_NAME) - elizaLogger.log("opacityProverUrl", process.env.OPACITY_PROVER_URL) - elizaLogger.log("modelProvider", character.modelProvider) - elizaLogger.log("token", token) - } - if (process.env.PRIMUS_APP_ID && process.env.PRIMUS_APP_SECRET && process.env.VERIFIABLE_INFERENCE_ENABLED === "true") { - verifiableInferenceAdapter = new PrimusAdapter({ - appId: process.env.PRIMUS_APP_ID, - appSecret: process.env.PRIMUS_APP_SECRET, - attMode: "proxytls", - modelProvider: character.modelProvider, - token, - }) - elizaLogger.log("Verifiable inference primus adapter initialized") - } - - return new AgentRuntime({ - databaseAdapter: db, - token, - modelProvider: character.modelProvider, - evaluators: [], - character, - // character.plugins are handled when clients are added - plugins: [ - parseBooleanFromText(getSecret(character, "BITMIND")) && getSecret(character, "BITMIND_API_TOKEN") ? bittensorPlugin : null, - parseBooleanFromText(getSecret(character, "EMAIL_AUTOMATION_ENABLED")) ? emailAutomationPlugin : null, - getSecret(character, "IQ_WALLET_ADDRESS") && getSecret(character, "IQSOlRPC") ? elizaCodeinPlugin : null, - bootstrapPlugin, - getSecret(character, "CDP_API_KEY_NAME") && getSecret(character, "CDP_API_KEY_PRIVATE_KEY") && getSecret(character, "CDP_AGENT_KIT_NETWORK") ? agentKitPlugin : null, - getSecret(character, "DEXSCREENER_API_KEY") ? dexScreenerPlugin : null, - getSecret(character, "FOOTBALL_API_KEY") ? footballPlugin : null, - getSecret(character, "CONFLUX_CORE_PRIVATE_KEY") ? confluxPlugin : null, - nodePlugin, - getSecret(character, "ROUTER_NITRO_EVM_PRIVATE_KEY") && getSecret(character, "ROUTER_NITRO_EVM_ADDRESS") ? nitroPlugin : null, - getSecret(character, "TAVILY_API_KEY") ? webSearchPlugin : null, - getSecret(character, "SOLANA_PUBLIC_KEY") || (getSecret(character, "WALLET_PUBLIC_KEY") && !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) ? [solanaPlugin, solanaPluginV2] : null, - getSecret(character, "SOLANA_PRIVATE_KEY") ? solanaAgentkitPlugin : null, - getSecret(character, "AUTONOME_JWT_TOKEN") ? autonomePlugin : null, - (getSecret(character, "NEAR_ADDRESS") || getSecret(character, "NEAR_WALLET_PUBLIC_KEY")) && getSecret(character, "NEAR_WALLET_SECRET_KEY") ? nearPlugin : null, - getSecret(character, "EVM_PUBLIC_KEY") || (getSecret(character, "WALLET_PUBLIC_KEY") && getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) ? evmPlugin : null, - (getSecret(character, "EVM_PUBLIC_KEY") || getSecret(character, "INJECTIVE_PUBLIC_KEY")) && getSecret(character, "INJECTIVE_PRIVATE_KEY") ? injectivePlugin : null, - getSecret(character, "COSMOS_RECOVERY_PHRASE") && getSecret(character, "COSMOS_AVAILABLE_CHAINS") && createCosmosPlugin(), - (getSecret(character, "SOLANA_PUBLIC_KEY") || (getSecret(character, "WALLET_PUBLIC_KEY") && !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))) && - getSecret(character, "SOLANA_ADMIN_PUBLIC_KEY") && - getSecret(character, "SOLANA_PRIVATE_KEY") && - getSecret(character, "SOLANA_ADMIN_PRIVATE_KEY") - ? nftGenerationPlugin - : null, - getSecret(character, "ZEROG_PRIVATE_KEY") ? zgPlugin : null, - getSecret(character, "COINMARKETCAP_API_KEY") ? coinmarketcapPlugin : null, - getSecret(character, "ZERION_API_KEY") ? zerionPlugin : null, - getSecret(character, "COINBASE_COMMERCE_KEY") ? coinbaseCommercePlugin : null, - getSecret(character, "FAL_API_KEY") || - getSecret(character, "OPENAI_API_KEY") || - getSecret(character, "VENICE_API_KEY") || - getSecret(character, "NVIDIA_API_KEY") || - getSecret(character, "NINETEEN_AI_API_KEY") || - getSecret(character, "HEURIST_API_KEY") || - getSecret(character, "LIVEPEER_GATEWAY_URL") - ? imageGenerationPlugin - : null, - getSecret(character, "FAL_API_KEY") ? ThreeDGenerationPlugin : null, - ...(getSecret(character, "COINBASE_API_KEY") && getSecret(character, "COINBASE_PRIVATE_KEY") ? [coinbaseMassPaymentsPlugin, tradePlugin, tokenContractPlugin, advancedTradePlugin] : []), - ...(teeMode !== TEEMode.OFF && walletSecretSalt ? [teePlugin] : []), - teeMode !== TEEMode.OFF && walletSecretSalt && getSecret(character, "VLOG") ? verifiableLogPlugin : null, - getSecret(character, "SGX") ? sgxPlugin : null, - getSecret(character, "ENABLE_TEE_LOG") && ((teeMode !== TEEMode.OFF && walletSecretSalt) || getSecret(character, "SGX")) ? teeLogPlugin : null, - getSecret(character, "OMNIFLIX_API_URL") && getSecret(character, "OMNIFLIX_MNEMONIC") ? OmniflixPlugin : null, - getSecret(character, "COINBASE_API_KEY") && getSecret(character, "COINBASE_PRIVATE_KEY") && getSecret(character, "COINBASE_NOTIFICATION_URI") ? webhookPlugin : null, - goatPlugin, - zilliqaPlugin, - getSecret(character, "COINGECKO_API_KEY") || getSecret(character, "COINGECKO_PRO_API_KEY") ? coingeckoPlugin : null, - getSecret(character, "MORALIS_API_KEY") ? moralisPlugin : null, - getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null, - getSecret(character, "ABSTRACT_PRIVATE_KEY") ? abstractPlugin : null, - getSecret(character, "B2_PRIVATE_KEY") ? b2Plugin : null, - getSecret(character, "BINANCE_API_KEY") && getSecret(character, "BINANCE_SECRET_KEY") ? binancePlugin : null, - getSecret(character, "FLOW_ADDRESS") && getSecret(character, "FLOW_PRIVATE_KEY") ? flowPlugin : null, - getSecret(character, "LENS_ADDRESS") && getSecret(character, "LENS_PRIVATE_KEY") ? lensPlugin : null, - getSecret(character, "APTOS_PRIVATE_KEY") ? aptosPlugin : null, - getSecret(character, "MIND_COLD_WALLET_ADDRESS") ? mindNetworkPlugin : null, - getSecret(character, "MVX_PRIVATE_KEY") ? multiversxPlugin : null, - getSecret(character, "ZKSYNC_PRIVATE_KEY") ? zksyncEraPlugin : null, - getSecret(character, "CRONOSZKEVM_PRIVATE_KEY") ? cronosZkEVMPlugin : null, - getSecret(character, "TEE_MARLIN") ? teeMarlinPlugin : null, - getSecret(character, "TON_PRIVATE_KEY") ? tonPlugin : null, - getSecret(character, "THIRDWEB_SECRET_KEY") ? thirdwebPlugin : null, - getSecret(character, "SUI_PRIVATE_KEY") ? suiPlugin : null, - getSecret(character, "STORY_PRIVATE_KEY") ? storyPlugin : null, - getSecret(character, "SQUID_SDK_URL") && getSecret(character, "SQUID_INTEGRATOR_ID") && getSecret(character, "SQUID_EVM_ADDRESS") && getSecret(character, "SQUID_EVM_PRIVATE_KEY") && getSecret(character, "SQUID_API_THROTTLE_INTERVAL") - ? squidRouterPlugin - : null, - getSecret(character, "FUEL_PRIVATE_KEY") ? fuelPlugin : null, - getSecret(character, "AVALANCHE_PRIVATE_KEY") ? avalanchePlugin : null, - getSecret(character, "BIRDEYE_API_KEY") ? birdeyePlugin : null, - getSecret(character, "ECHOCHAMBERS_API_URL") && getSecret(character, "ECHOCHAMBERS_API_KEY") ? echoChambersPlugin : null, - getSecret(character, "LETZAI_API_KEY") ? letzAIPlugin : null, - getSecret(character, "STARGAZE_ENDPOINT") ? stargazePlugin : null, - getSecret(character, "GIPHY_API_KEY") ? giphyPlugin : null, - getSecret(character, "PASSPORT_API_KEY") ? gitcoinPassportPlugin : null, - getSecret(character, "GENLAYER_PRIVATE_KEY") ? genLayerPlugin : null, - getSecret(character, "AVAIL_SEED") && getSecret(character, "AVAIL_APP_ID") ? availPlugin : null, - getSecret(character, "OPEN_WEATHER_API_KEY") ? openWeatherPlugin : null, - getSecret(character, "OBSIDIAN_API_TOKEN") ? obsidianPlugin : null, - getSecret(character, "ARTHERA_PRIVATE_KEY")?.startsWith("0x") ? artheraPlugin : null, - getSecret(character, "ALLORA_API_KEY") ? alloraPlugin : null, - getSecret(character, "HYPERLIQUID_PRIVATE_KEY") ? hyperliquidPlugin : null, - getSecret(character, "HYPERLIQUID_TESTNET") ? hyperliquidPlugin : null, - getSecret(character, "AKASH_MNEMONIC") && getSecret(character, "AKASH_WALLET_ADDRESS") ? akashPlugin : null, - getSecret(character, "CHAINBASE_API_KEY") ? chainbasePlugin : null, - getSecret(character, "QUAI_PRIVATE_KEY") ? quaiPlugin : null, - getSecret(character, "RESERVOIR_API_KEY") ? createNFTCollectionsPlugin() : null, - getSecret(character, "ZERO_EX_API_KEY") ? zxPlugin : null, - getSecret(character, "DKG_PRIVATE_KEY") ? dkgPlugin : null, - getSecret(character, "PYTH_TESTNET_PROGRAM_KEY") || getSecret(character, "PYTH_MAINNET_PROGRAM_KEY") ? pythDataPlugin : null, - getSecret(character, "LND_TLS_CERT") && getSecret(character, "LND_MACAROON") && getSecret(character, "LND_SOCKET") ? lightningPlugin : null, - getSecret(character, "OPENAI_API_KEY") && parseBooleanFromText(getSecret(character, "ENABLE_OPEN_AI_COMMUNITY_PLUGIN")) ? openaiPlugin : null, - getSecret(character, "DEVIN_API_TOKEN") ? devinPlugin : null, - getSecret(character, "INITIA_PRIVATE_KEY") ? initiaPlugin : null, - getSecret(character, "HOLDSTATION_PRIVATE_KEY") ? holdstationPlugin : null, - getSecret(character, "NVIDIA_NIM_API_KEY") || getSecret(character, "NVIDIA_NGC_API_KEY") ? nvidiaNimPlugin : null, - getSecret(character, "BNB_PRIVATE_KEY") || getSecret(character, "BNB_PUBLIC_KEY")?.startsWith("0x") ? bnbPlugin : null, - (getSecret(character, "EMAIL_INCOMING_USER") && getSecret(character, "EMAIL_INCOMING_PASS")) || (getSecret(character, "EMAIL_OUTGOING_USER") && getSecret(character, "EMAIL_OUTGOING_PASS")) ? emailPlugin : null, - getSecret(character, "SEI_PRIVATE_KEY") ? seiPlugin : null, - getSecret(character, "HYPERBOLIC_API_KEY") ? hyperbolicPlugin : null, - getSecret(character, "SUNO_API_KEY") ? sunoPlugin : null, - getSecret(character, "UDIO_AUTH_TOKEN") ? udioPlugin : null, - getSecret(character, "IMGFLIP_USERNAME") && getSecret(character, "IMGFLIP_PASSWORD") ? imgflipPlugin : null, - getSecret(character, "FUNDING_PRIVATE_KEY") && getSecret(character, "EVM_RPC_URL") ? litPlugin : null, - getSecret(character, "ETHSTORAGE_PRIVATE_KEY") ? ethstoragePlugin : null, - getSecret(character, "MINA_PRIVATE_KEY") ? minaPlugin : null, - getSecret(character, "FORM_PRIVATE_KEY") ? formPlugin : null, - getSecret(character, "ANKR_WALLET") ? ankrPlugin : null, - getSecret(character, "DCAP_EVM_PRIVATE_KEY") && getSecret(character, "DCAP_MODE") ? dcapPlugin : null, - getSecret(character, "QUICKINTEL_API_KEY") ? quickIntelPlugin : null, - getSecret(character, "GELATO_RELAY_API_KEY") ? gelatoPlugin : null, - getSecret(character, "TRIKON_WALLET_ADDRESS") ? trikonPlugin : null, - getSecret(character, "ARBITRAGE_EVM_PRIVATE_KEY") && - (getSecret(character, "ARBITRAGE_EVM_PROVIDER_URL") - || getSecret(character, "ARBITRAGE_ETHEREUM_WS_URL")) - && getSecret(character, "ARBITRAGE_FLASHBOTS_RELAY_SIGNING_KEY") - && getSecret(character, "ARBITRAGE_BUNDLE_EXECUTOR_ADDRESS") ? arbitragePlugin : null, - ].flat().filter(Boolean), - providers: [], - managers: [], - cacheManager: cache, - fetch: logFetch, - verifiableInferenceAdapter, - }) + return new AgentRuntime({ + databaseAdapter: db, + token, + modelProvider: character.modelProvider, + evaluators: [], + character, + // character.plugins are handled when clients are added + plugins: [ + parseBooleanFromText(getSecret(character, "BITMIND")) && + getSecret(character, "BITMIND_API_TOKEN") + ? bittensorPlugin + : null, + parseBooleanFromText( + getSecret(character, "EMAIL_AUTOMATION_ENABLED") + ) + ? emailAutomationPlugin + : null, + getSecret(character, "IQ_WALLET_ADDRESS") && + getSecret(character, "IQSOlRPC") + ? elizaCodeinPlugin + : null, + bootstrapPlugin, + getSecret(character, "CDP_API_KEY_NAME") && + getSecret(character, "CDP_API_KEY_PRIVATE_KEY") && + getSecret(character, "CDP_AGENT_KIT_NETWORK") + ? agentKitPlugin + : null, + getSecret(character, "DEXSCREENER_API_KEY") + ? dexScreenerPlugin + : null, + getSecret(character, "FOOTBALL_API_KEY") ? footballPlugin : null, + getSecret(character, "CONFLUX_CORE_PRIVATE_KEY") + ? confluxPlugin + : null, + nodePlugin, + getSecret(character, "ROUTER_NITRO_EVM_PRIVATE_KEY") && + getSecret(character, "ROUTER_NITRO_EVM_ADDRESS") + ? nitroPlugin + : null, + getSecret(character, "TAVILY_API_KEY") ? webSearchPlugin : null, + getSecret(character, "SOLANA_PUBLIC_KEY") || + (getSecret(character, "WALLET_PUBLIC_KEY") && + !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) + ? [solanaPlugin, solanaPluginV2] + : null, + getSecret(character, "SOLANA_PRIVATE_KEY") + ? solanaAgentkitPlugin + : null, + getSecret(character, "AUTONOME_JWT_TOKEN") ? autonomePlugin : null, + (getSecret(character, "NEAR_ADDRESS") || + getSecret(character, "NEAR_WALLET_PUBLIC_KEY")) && + getSecret(character, "NEAR_WALLET_SECRET_KEY") + ? nearPlugin + : null, + getSecret(character, "EVM_PUBLIC_KEY") || + (getSecret(character, "WALLET_PUBLIC_KEY") && + getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) + ? evmPlugin + : null, + (getSecret(character, "EVM_PUBLIC_KEY") || + getSecret(character, "INJECTIVE_PUBLIC_KEY")) && + getSecret(character, "INJECTIVE_PRIVATE_KEY") + ? injectivePlugin + : null, + getSecret(character, "COSMOS_RECOVERY_PHRASE") && + getSecret(character, "COSMOS_AVAILABLE_CHAINS") && + createCosmosPlugin(), + (getSecret(character, "SOLANA_PUBLIC_KEY") || + (getSecret(character, "WALLET_PUBLIC_KEY") && + !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith( + "0x" + ))) && + getSecret(character, "SOLANA_ADMIN_PUBLIC_KEY") && + getSecret(character, "SOLANA_PRIVATE_KEY") && + getSecret(character, "SOLANA_ADMIN_PRIVATE_KEY") + ? nftGenerationPlugin + : null, + getSecret(character, "ZEROG_PRIVATE_KEY") ? zgPlugin : null, + getSecret(character, "COINMARKETCAP_API_KEY") + ? coinmarketcapPlugin + : null, + getSecret(character, "ZERION_API_KEY") ? zerionPlugin : null, + getSecret(character, "COINBASE_COMMERCE_KEY") + ? coinbaseCommercePlugin + : null, + getSecret(character, "FAL_API_KEY") || + getSecret(character, "OPENAI_API_KEY") || + getSecret(character, "VENICE_API_KEY") || + getSecret(character, "NVIDIA_API_KEY") || + getSecret(character, "NINETEEN_AI_API_KEY") || + getSecret(character, "HEURIST_API_KEY") || + getSecret(character, "LIVEPEER_GATEWAY_URL") + ? imageGenerationPlugin + : null, + getSecret(character, "FAL_API_KEY") ? ThreeDGenerationPlugin : null, + ...(getSecret(character, "COINBASE_API_KEY") && + getSecret(character, "COINBASE_PRIVATE_KEY") + ? [ + coinbaseMassPaymentsPlugin, + tradePlugin, + tokenContractPlugin, + advancedTradePlugin, + ] + : []), + ...(teeMode !== TEEMode.OFF && walletSecretSalt ? [teePlugin] : []), + teeMode !== TEEMode.OFF && + walletSecretSalt && + getSecret(character, "VLOG") + ? verifiableLogPlugin + : null, + getSecret(character, "SGX") ? sgxPlugin : null, + getSecret(character, "ENABLE_TEE_LOG") && + ((teeMode !== TEEMode.OFF && walletSecretSalt) || + getSecret(character, "SGX")) + ? teeLogPlugin + : null, + getSecret(character, "OMNIFLIX_API_URL") && + getSecret(character, "OMNIFLIX_MNEMONIC") + ? OmniflixPlugin + : null, + getSecret(character, "COINBASE_API_KEY") && + getSecret(character, "COINBASE_PRIVATE_KEY") && + getSecret(character, "COINBASE_NOTIFICATION_URI") + ? webhookPlugin + : null, + goatPlugin, + zilliqaPlugin, + getSecret(character, "COINGECKO_API_KEY") || + getSecret(character, "COINGECKO_PRO_API_KEY") + ? coingeckoPlugin + : null, + getSecret(character, "MORALIS_API_KEY") ? moralisPlugin : null, + getSecret(character, "EVM_PROVIDER_URL") ? goatPlugin : null, + getSecret(character, "ABSTRACT_PRIVATE_KEY") + ? abstractPlugin + : null, + getSecret(character, "B2_PRIVATE_KEY") ? b2Plugin : null, + getSecret(character, "BINANCE_API_KEY") && + getSecret(character, "BINANCE_SECRET_KEY") + ? binancePlugin + : null, + getSecret(character, "FLOW_ADDRESS") && + getSecret(character, "FLOW_PRIVATE_KEY") + ? flowPlugin + : null, + getSecret(character, "LENS_ADDRESS") && + getSecret(character, "LENS_PRIVATE_KEY") + ? lensPlugin + : null, + getSecret(character, "APTOS_PRIVATE_KEY") ? aptosPlugin : null, + getSecret(character, "MIND_COLD_WALLET_ADDRESS") + ? mindNetworkPlugin + : null, + getSecret(character, "MVX_PRIVATE_KEY") ? multiversxPlugin : null, + getSecret(character, "ZKSYNC_PRIVATE_KEY") ? zksyncEraPlugin : null, + getSecret(character, "CRONOSZKEVM_PRIVATE_KEY") + ? cronosZkEVMPlugin + : null, + getSecret(character, "TEE_MARLIN") ? teeMarlinPlugin : null, + getSecret(character, "TON_PRIVATE_KEY") ? tonPlugin : null, + getSecret(character, "THIRDWEB_SECRET_KEY") ? thirdwebPlugin : null, + getSecret(character, "SUI_PRIVATE_KEY") ? suiPlugin : null, + getSecret(character, "STORY_PRIVATE_KEY") ? storyPlugin : null, + getSecret(character, "SQUID_SDK_URL") && + getSecret(character, "SQUID_INTEGRATOR_ID") && + getSecret(character, "SQUID_EVM_ADDRESS") && + getSecret(character, "SQUID_EVM_PRIVATE_KEY") && + getSecret(character, "SQUID_API_THROTTLE_INTERVAL") + ? squidRouterPlugin + : null, + getSecret(character, "FUEL_PRIVATE_KEY") ? fuelPlugin : null, + getSecret(character, "AVALANCHE_PRIVATE_KEY") + ? avalanchePlugin + : null, + getSecret(character, "BIRDEYE_API_KEY") ? birdeyePlugin : null, + getSecret(character, "ECHOCHAMBERS_API_URL") && + getSecret(character, "ECHOCHAMBERS_API_KEY") + ? echoChambersPlugin + : null, + getSecret(character, "LETZAI_API_KEY") ? letzAIPlugin : null, + getSecret(character, "STARGAZE_ENDPOINT") ? stargazePlugin : null, + getSecret(character, "GIPHY_API_KEY") ? giphyPlugin : null, + getSecret(character, "PASSPORT_API_KEY") + ? gitcoinPassportPlugin + : null, + getSecret(character, "GENLAYER_PRIVATE_KEY") + ? genLayerPlugin + : null, + getSecret(character, "AVAIL_SEED") && + getSecret(character, "AVAIL_APP_ID") + ? availPlugin + : null, + getSecret(character, "OPEN_WEATHER_API_KEY") + ? openWeatherPlugin + : null, + getSecret(character, "OBSIDIAN_API_TOKEN") ? obsidianPlugin : null, + getSecret(character, "ARTHERA_PRIVATE_KEY")?.startsWith("0x") + ? artheraPlugin + : null, + getSecret(character, "ALLORA_API_KEY") ? alloraPlugin : null, + getSecret(character, "HYPERLIQUID_PRIVATE_KEY") + ? hyperliquidPlugin + : null, + getSecret(character, "HYPERLIQUID_TESTNET") + ? hyperliquidPlugin + : null, + getSecret(character, "AKASH_MNEMONIC") && + getSecret(character, "AKASH_WALLET_ADDRESS") + ? akashPlugin + : null, + getSecret(character, "CHAINBASE_API_KEY") ? chainbasePlugin : null, + getSecret(character, "QUAI_PRIVATE_KEY") ? quaiPlugin : null, + getSecret(character, "RESERVOIR_API_KEY") + ? createNFTCollectionsPlugin() + : null, + getSecret(character, "ZERO_EX_API_KEY") ? zxPlugin : null, + getSecret(character, "DKG_PRIVATE_KEY") ? dkgPlugin : null, + getSecret(character, "PYTH_TESTNET_PROGRAM_KEY") || + getSecret(character, "PYTH_MAINNET_PROGRAM_KEY") + ? pythDataPlugin + : null, + getSecret(character, "LND_TLS_CERT") && + getSecret(character, "LND_MACAROON") && + getSecret(character, "LND_SOCKET") + ? lightningPlugin + : null, + getSecret(character, "OPENAI_API_KEY") && + parseBooleanFromText( + getSecret(character, "ENABLE_OPEN_AI_COMMUNITY_PLUGIN") + ) + ? openaiPlugin + : null, + getSecret(character, "DEVIN_API_TOKEN") ? devinPlugin : null, + getSecret(character, "INITIA_PRIVATE_KEY") ? initiaPlugin : null, + getSecret(character, "HOLDSTATION_PRIVATE_KEY") + ? holdstationPlugin + : null, + getSecret(character, "NVIDIA_NIM_API_KEY") || + getSecret(character, "NVIDIA_NGC_API_KEY") + ? nvidiaNimPlugin + : null, + getSecret(character, "BNB_PRIVATE_KEY") || + getSecret(character, "BNB_PUBLIC_KEY")?.startsWith("0x") + ? bnbPlugin + : null, + (getSecret(character, "EMAIL_INCOMING_USER") && + getSecret(character, "EMAIL_INCOMING_PASS")) || + (getSecret(character, "EMAIL_OUTGOING_USER") && + getSecret(character, "EMAIL_OUTGOING_PASS")) + ? emailPlugin + : null, + getSecret(character, "SEI_PRIVATE_KEY") ? seiPlugin : null, + getSecret(character, "HYPERBOLIC_API_KEY") + ? hyperbolicPlugin + : null, + getSecret(character, "SUNO_API_KEY") ? sunoPlugin : null, + getSecret(character, "UDIO_AUTH_TOKEN") ? udioPlugin : null, + getSecret(character, "IMGFLIP_USERNAME") && + getSecret(character, "IMGFLIP_PASSWORD") + ? imgflipPlugin + : null, + getSecret(character, "FUNDING_PRIVATE_KEY") && + getSecret(character, "EVM_RPC_URL") + ? litPlugin + : null, + getSecret(character, "ETHSTORAGE_PRIVATE_KEY") + ? ethstoragePlugin + : null, + getSecret(character, "MINA_PRIVATE_KEY") ? minaPlugin : null, + getSecret(character, "FORM_PRIVATE_KEY") ? formPlugin : null, + getSecret(character, "ANKR_WALLET") ? ankrPlugin : null, + getSecret(character, "DCAP_EVM_PRIVATE_KEY") && + getSecret(character, "DCAP_MODE") + ? dcapPlugin + : null, + getSecret(character, "QUICKINTEL_API_KEY") + ? quickIntelPlugin + : null, + getSecret(character, "GELATO_RELAY_API_KEY") ? gelatoPlugin : null, + getSecret(character, "TRIKON_WALLET_ADDRESS") ? trikonPlugin : null, + getSecret(character, "ARBITRAGE_EVM_PRIVATE_KEY") && + (getSecret(character, "ARBITRAGE_EVM_PROVIDER_URL") || + getSecret(character, "ARBITRAGE_ETHEREUM_WS_URL")) && + getSecret(character, "ARBITRAGE_FLASHBOTS_RELAY_SIGNING_KEY") && + getSecret(character, "ARBITRAGE_BUNDLE_EXECUTOR_ADDRESS") + ? arbitragePlugin + : null, + ] + .flat() + .filter(Boolean), + providers: [], + managers: [], + cacheManager: cache, + fetch: logFetch, + verifiableInferenceAdapter, + }); } function initializeFsCache(baseDir: string, character: Character) { - if (!character?.id) { - throw new Error("initializeFsCache requires id to be set in character definition") - } - const cacheDir = path.resolve(baseDir, character.id, "cache") + if (!character?.id) { + throw new Error( + "initializeFsCache requires id to be set in character definition" + ); + } + const cacheDir = path.resolve(baseDir, character.id, "cache"); - const cache = new CacheManager(new FsCacheAdapter(cacheDir)) - return cache + const cache = new CacheManager(new FsCacheAdapter(cacheDir)); + return cache; } function initializeDbCache(character: Character, db: IDatabaseCacheAdapter) { - if (!character?.id) { - throw new Error("initializeFsCache requires id to be set in character definition") - } - const cache = new CacheManager(new DbCacheAdapter(db, character.id)) - return cache + if (!character?.id) { + throw new Error( + "initializeFsCache requires id to be set in character definition" + ); + } + const cache = new CacheManager(new DbCacheAdapter(db, character.id)); + return cache; } -function initializeCache(cacheStore: string, character: Character, baseDir?: string, db?: IDatabaseCacheAdapter) { - switch (cacheStore) { - case CacheStore.REDIS: - if (process.env.REDIS_URL) { - elizaLogger.info("Connecting to Redis...") - const redisClient = new RedisClient(process.env.REDIS_URL) - if (!character?.id) { - throw new Error("CacheStore.REDIS requires id to be set in character definition") - } - return new CacheManager( - new DbCacheAdapter(redisClient, character.id) // Using DbCacheAdapter since RedisClient also implements IDatabaseCacheAdapter - ) - } else { - throw new Error("REDIS_URL environment variable is not set.") - } - - case CacheStore.DATABASE: - if (db) { - elizaLogger.info("Using Database Cache...") - return initializeDbCache(character, db) - } else { - throw new Error("Database adapter is not provided for CacheStore.Database.") - } - - case CacheStore.FILESYSTEM: - elizaLogger.info("Using File System Cache...") - if (!baseDir) { - throw new Error("baseDir must be provided for CacheStore.FILESYSTEM.") - } - return initializeFsCache(baseDir, character) - - default: - throw new Error(`Invalid cache store: ${cacheStore} or required configuration missing.`) - } +function initializeCache( + cacheStore: string, + character: Character, + baseDir?: string, + db?: IDatabaseCacheAdapter +) { + switch (cacheStore) { + case CacheStore.REDIS: + if (process.env.REDIS_URL) { + elizaLogger.info("Connecting to Redis..."); + const redisClient = new RedisClient(process.env.REDIS_URL); + if (!character?.id) { + throw new Error( + "CacheStore.REDIS requires id to be set in character definition" + ); + } + return new CacheManager( + new DbCacheAdapter(redisClient, character.id) // Using DbCacheAdapter since RedisClient also implements IDatabaseCacheAdapter + ); + } else { + throw new Error("REDIS_URL environment variable is not set."); + } + + case CacheStore.DATABASE: + if (db) { + elizaLogger.info("Using Database Cache..."); + return initializeDbCache(character, db); + } else { + throw new Error( + "Database adapter is not provided for CacheStore.Database." + ); + } + + case CacheStore.FILESYSTEM: + elizaLogger.info("Using File System Cache..."); + if (!baseDir) { + throw new Error( + "baseDir must be provided for CacheStore.FILESYSTEM." + ); + } + return initializeFsCache(baseDir, character); + + default: + throw new Error( + `Invalid cache store: ${cacheStore} or required configuration missing.` + ); + } } -async function startAgent(character: Character, directClient: DirectClient): Promise { - let db: IDatabaseAdapter & IDatabaseCacheAdapter - try { - character.id ??= stringToUuid(character.name) - character.username ??= character.name +async function startAgent( + character: Character, + directClient: DirectClient +): Promise { + let db: IDatabaseAdapter & IDatabaseCacheAdapter; + try { + character.id ??= stringToUuid(character.name); + character.username ??= character.name; - const token = getTokenForProvider(character.modelProvider, character) - const dataDir = path.join(__dirname, "../data") + const token = getTokenForProvider(character.modelProvider, character); + const dataDir = path.join(__dirname, "../data"); - if (!fs.existsSync(dataDir)) { - fs.mkdirSync(dataDir, { recursive: true }) - } + if (!fs.existsSync(dataDir)) { + fs.mkdirSync(dataDir, { recursive: true }); + } - db = initializeDatabase(dataDir) as IDatabaseAdapter & IDatabaseCacheAdapter + db = initializeDatabase(dataDir) as IDatabaseAdapter & + IDatabaseCacheAdapter; + + await db.init(); + + const cache = initializeCache( + process.env.CACHE_STORE ?? CacheStore.DATABASE, + character, + "", + db + ); // "" should be replaced with dir for file system caching. THOUGHTS: might probably make this into an env + const runtime: AgentRuntime = await createAgent( + character, + db, + cache, + token + ); + + // start services/plugins/process knowledge + await runtime.initialize(); + + // start assigned clients + runtime.clients = await initializeClients(character, runtime); + + // add to container + directClient.registerAgent(runtime); + + // report to console + elizaLogger.debug(`Started ${character.name} as ${runtime.agentId}`); + + return runtime; + } catch (error) { + elizaLogger.error( + `Error starting agent for character ${character.name}:`, + error + ); + elizaLogger.error(error); + if (db) { + await db.close(); + } + throw error; + } +} - await db.init() +const checkPortAvailable = (port: number): Promise => { + return new Promise((resolve) => { + const server = net.createServer(); - const cache = initializeCache(process.env.CACHE_STORE ?? CacheStore.DATABASE, character, "", db) // "" should be replaced with dir for file system caching. THOUGHTS: might probably make this into an env - const runtime: AgentRuntime = await createAgent(character, db, cache, token) + server.once("error", (err: NodeJS.ErrnoException) => { + if (err.code === "EADDRINUSE") { + resolve(false); + } + }); - // start services/plugins/process knowledge - await runtime.initialize() + server.once("listening", () => { + server.close(); + resolve(true); + }); - // start assigned clients - runtime.clients = await initializeClients(character, runtime) + server.listen(port); + }); +}; - // add to container - directClient.registerAgent(runtime) +const hasValidRemoteUrls = () => + process.env.REMOTE_CHARACTER_URLS && + process.env.REMOTE_CHARACTER_URLS !== "" && + process.env.REMOTE_CHARACTER_URLS.startsWith("http"); - // report to console - elizaLogger.debug(`Started ${character.name} as ${runtime.agentId}`) +const startAgents = async () => { + const directClient = new DirectClient(); + let serverPort = Number.parseInt(settings.SERVER_PORT || "3000"); + const args = parseArguments(); + const charactersArg = args.characters || args.character; + let characters = [defaultCharacter]; + + if (process.env.IQ_WALLET_ADDRESS && process.env.IQSOlRPC) { + characters = await loadCharacterFromOnchain(); + } - return runtime - } catch (error) { - elizaLogger.error(`Error starting agent for character ${character.name}:`, error) - elizaLogger.error(error) - if (db) { - await db.close() - } - throw error - } -} + const notOnchainJson = !onchainJson || onchainJson == "null"; -const checkPortAvailable = (port: number): Promise => { - return new Promise((resolve) => { - const server = net.createServer() - - server.once("error", (err: NodeJS.ErrnoException) => { - if (err.code === "EADDRINUSE") { - resolve(false) - } - }) - - server.once("listening", () => { - server.close() - resolve(true) - }) - - server.listen(port) - }) -} + if ((notOnchainJson && charactersArg) || hasValidRemoteUrls()) { + characters = await loadCharacters(charactersArg); + } -const hasValidRemoteUrls = () => process.env.REMOTE_CHARACTER_URLS && process.env.REMOTE_CHARACTER_URLS !== "" && process.env.REMOTE_CHARACTER_URLS.startsWith("http") + // Normalize characters for injectable plugins + characters = await Promise.all(characters.map(normalizeCharacter)); -const startAgents = async () => { - const directClient = new DirectClient() - let serverPort = Number.parseInt(settings.SERVER_PORT || "3000") - const args = parseArguments() - const charactersArg = args.characters || args.character - let characters = [defaultCharacter] - - if (process.env.IQ_WALLET_ADDRESS && process.env.IQSOlRPC) { - characters = await loadCharacterFromOnchain() - } - - const notOnchainJson = !onchainJson || onchainJson == "null" - - if ((notOnchainJson && charactersArg) || hasValidRemoteUrls()) { - characters = await loadCharacters(charactersArg) - } - - // Normalize characters for injectable plugins - characters = await Promise.all(characters.map(normalizeCharacter)) - - try { - for (const character of characters) { - await startAgent(character, directClient) - } - } catch (error) { - elizaLogger.error("Error starting agents:", error) - } - - // Find available port - while (!(await checkPortAvailable(serverPort))) { - elizaLogger.warn(`Port ${serverPort} is in use, trying ${serverPort + 1}`) - serverPort++ - } - - // upload some agent functionality into directClient - directClient.startAgent = async (character) => { - // Handle plugins - character.plugins = await handlePluginImporting(character.plugins) - - // wrap it so we don't have to inject directClient later - return startAgent(character, directClient) - } - - directClient.loadCharacterTryPath = loadCharacterTryPath - directClient.jsonToCharacter = jsonToCharacter - - directClient.start(serverPort) - - if (serverPort !== Number.parseInt(settings.SERVER_PORT || "3000")) { - elizaLogger.log(`Server started on alternate port ${serverPort}`) - } - - elizaLogger.log("Run `pnpm start:client` to start the client and visit the outputted URL (http://localhost:5173) to chat with your agents. When running multiple agents, use client with different port `SERVER_PORT=3001 pnpm start:client`") -} + try { + for (const character of characters) { + await startAgent(character, directClient); + } + } catch (error) { + elizaLogger.error("Error starting agents:", error); + } + + // Find available port + while (!(await checkPortAvailable(serverPort))) { + elizaLogger.warn( + `Port ${serverPort} is in use, trying ${serverPort + 1}` + ); + serverPort++; + } + + // upload some agent functionality into directClient + directClient.startAgent = async (character) => { + // Handle plugins + character.plugins = await handlePluginImporting(character.plugins); + + // wrap it so we don't have to inject directClient later + return startAgent(character, directClient); + }; + + directClient.loadCharacterTryPath = loadCharacterTryPath; + directClient.jsonToCharacter = jsonToCharacter; + + directClient.start(serverPort); + + if (serverPort !== Number.parseInt(settings.SERVER_PORT || "3000")) { + elizaLogger.log(`Server started on alternate port ${serverPort}`); + } + + elizaLogger.log( + "Run `pnpm start:client` to start the client and visit the outputted URL (http://localhost:5173) to chat with your agents. When running multiple agents, use client with different port `SERVER_PORT=3001 pnpm start:client`" + ); +}; startAgents().catch((error) => { - elizaLogger.error("Unhandled error in startAgents:", error) - process.exit(1) -}) + elizaLogger.error("Unhandled error in startAgents:", error); + process.exit(1); +}); // Prevent unhandled exceptions from crashing the process if desired if ( - process.env.PREVENT_UNHANDLED_EXIT && - parseBooleanFromText(process.env.PREVENT_UNHANDLED_EXIT) + process.env.PREVENT_UNHANDLED_EXIT && + parseBooleanFromText(process.env.PREVENT_UNHANDLED_EXIT) ) { - // Handle uncaught exceptions to prevent the process from crashing - process.on("uncaughtException", function (err) { - console.error("uncaughtException", err); - }); - - // Handle unhandled rejections to prevent the process from crashing - process.on("unhandledRejection", function (err) { - console.error("unhandledRejection", err); - }); + // Handle uncaught exceptions to prevent the process from crashing + process.on("uncaughtException", function (err) { + console.error("uncaughtException", err); + }); + + // Handle unhandled rejections to prevent the process from crashing + process.on("unhandledRejection", function (err) { + console.error("unhandledRejection", err); + }); } diff --git a/client/src/lib/api.ts b/client/src/lib/api.ts index 0aef4c169e2..ce7758e6664 100644 --- a/client/src/lib/api.ts +++ b/client/src/lib/api.ts @@ -1,6 +1,6 @@ import type { UUID, Character } from "@elizaos/core"; -const BASE_URL = `http://localhost:${import.meta.env.VITE_SERVER_PORT ?? 3000}`; +const BASE_URL = `http://localhost:${import.meta.env.VITE_SERVER_PORT}`; const fetcher = async ({ url, diff --git a/client/vite.config.ts b/client/vite.config.ts index ecdb1abcb01..4db22fcd54b 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -1,30 +1,39 @@ -import { defineConfig } from "vite"; +import { defineConfig, loadEnv } from "vite"; import react from "@vitejs/plugin-react-swc"; import viteCompression from "vite-plugin-compression"; import path from "path"; // https://vite.dev/config/ -export default defineConfig({ - plugins: [ - react(), - viteCompression({ - algorithm: "brotliCompress", - ext: ".br", - threshold: 1024, - }), - ], - clearScreen: false, - envDir: path.resolve(__dirname, ".."), - build: { - outDir: "dist", - minify: true, - cssMinify: true, - sourcemap: false, - cssCodeSplit: true, - }, - resolve: { - alias: { - "@": "/src", +export default defineConfig(({ mode }) => { + const envDir = path.resolve(__dirname, ".."); + const env = loadEnv(mode, envDir, ""); + return { + plugins: [ + react(), + viteCompression({ + algorithm: "brotliCompress", + ext: ".br", + threshold: 1024, + }), + ], + clearScreen: false, + envDir, + define: { + "import.meta.env.VITE_SERVER_PORT": JSON.stringify( + env.SERVER_PORT || "3000" + ), }, - }, + build: { + outDir: "dist", + minify: true, + cssMinify: true, + sourcemap: false, + cssCodeSplit: true, + }, + resolve: { + alias: { + "@": "/src", + }, + }, + }; }); diff --git a/docs/package.json b/docs/package.json index e35d39d79c7..32cd79f98fc 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "eliza-docs", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "private": true, "packageManager": "pnpm@9.4.0", "scripts": { diff --git a/lerna.json b/lerna.json index a0e8b1c50c2..14c942f24c3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.1.9-alpha.1", + "version": "0.1.9", "packages": [ "packages/*", "docs", diff --git a/package.json b/package.json index d80172166bb..00d43be54d4 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,9 @@ "cookie": "0.7.0", "bs58": "5.0.0", "@coral-xyz/anchor": "0.28.0" + }, + "patchedDependencies": { + "@solana-developers/helpers": "patches/@solana-developers__helpers.patch" } }, "engines": { @@ -71,15 +74,15 @@ "@injectivelabs/sdk-ts": "^1.14.33", "@vitest/eslint-plugin": "1.0.1", "amqplib": "0.10.5", + "bs58": "4.0.0", "csv-parse": "5.6.0", "langdetect": "^0.2.1", "ollama-ai-provider": "0.16.1", "optional": "0.1.4", - "pnpm": "9.14.4", - "sharp": "0.33.5", - "bs58": "4.0.0" + "pnpm": "9.15.0", + "sharp": "0.33.5" }, - "packageManager": "pnpm@9.12.3+sha512.cce0f9de9c5a7c95bef944169cc5dfe8741abfb145078c0d508b868056848a87c81e626246cb60967cbd7fd29a6c062ef73ff840d96b3c86c40ac92cf4a813ee", + "packageManager": "pnpm@9.15.0", "workspaces": [ "packages/*" ] diff --git a/packages/adapter-mongodb/package.json b/packages/adapter-mongodb/package.json index 043d74f58e1..f179dbc2cc9 100644 --- a/packages/adapter-mongodb/package.json +++ b/packages/adapter-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-mongodb", - "version": "0.0.1", + "version": "0.1.9", "description": "MongoDB adapter for ElizaOS", "main": "dist/index.js", "type": "module", @@ -32,6 +32,8 @@ "jest": { "preset": "ts-jest", "testEnvironment": "node", - "testMatch": ["/src/__tests__/**/*.test.ts"] + "testMatch": [ + "/src/__tests__/**/*.test.ts" + ] } } diff --git a/packages/adapter-pglite/package.json b/packages/adapter-pglite/package.json index 0ab5513bc4e..292bb8de33e 100644 --- a/packages/adapter-pglite/package.json +++ b/packages/adapter-pglite/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-pglite", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-postgres/package.json b/packages/adapter-postgres/package.json index b404005c3cb..a1b0e4a64cf 100644 --- a/packages/adapter-postgres/package.json +++ b/packages/adapter-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-postgres", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-qdrant/package.json b/packages/adapter-qdrant/package.json index 52e94cb837a..e26c53ff2b0 100644 --- a/packages/adapter-qdrant/package.json +++ b/packages/adapter-qdrant/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-qdrant", - "version": "0.1.0", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-redis/package.json b/packages/adapter-redis/package.json index 70b2f4fad34..574eef5e58d 100644 --- a/packages/adapter-redis/package.json +++ b/packages/adapter-redis/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-redis", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-sqlite/package.json b/packages/adapter-sqlite/package.json index 38de43bdcb4..76517f80625 100644 --- a/packages/adapter-sqlite/package.json +++ b/packages/adapter-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-sqlite", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-sqljs/package.json b/packages/adapter-sqljs/package.json index 72241baebb0..5d052a3f6df 100644 --- a/packages/adapter-sqljs/package.json +++ b/packages/adapter-sqljs/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-sqljs", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/adapter-supabase/package.json b/packages/adapter-supabase/package.json index 5895414f2e2..a69df11d094 100644 --- a/packages/adapter-supabase/package.json +++ b/packages/adapter-supabase/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/adapter-supabase", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-alexa/package.json b/packages/client-alexa/package.json index 17d76d2632c..e8761402daf 100644 --- a/packages/client-alexa/package.json +++ b/packages/client-alexa/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-alexa", - "version": "0.1.8+build.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-auto/package.json b/packages/client-auto/package.json index b19dd762f96..0b00f9622ee 100644 --- a/packages/client-auto/package.json +++ b/packages/client-auto/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-auto", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-deva/package.json b/packages/client-deva/package.json index 882a5c91081..aef79a24508 100644 --- a/packages/client-deva/package.json +++ b/packages/client-deva/package.json @@ -1,23 +1,23 @@ { - "name": "@elizaos/client-deva", - "version": "0.1.7-alpha.1", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "dependencies": { - "@elizaos/core": "workspace:*", - "glob": "11.0.0", - "zod": "3.23.8" - }, - "devDependencies": { - "tsup": "8.3.5" - }, - "scripts": { - "build": "tsup --format esm --dts", - "dev": "tsup --watch", - "lint": "eslint . --fix" - }, - "peerDependencies": { - "whatwg-url": "7.1.0" - } + "name": "@elizaos/client-deva", + "version": "0.1.9", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@elizaos/core": "workspace:*", + "glob": "11.0.0", + "zod": "3.23.8" + }, + "devDependencies": { + "tsup": "8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --watch", + "lint": "eslint . --fix" + }, + "peerDependencies": { + "whatwg-url": "7.1.0" + } } diff --git a/packages/client-direct/package.json b/packages/client-direct/package.json index 7b93b2fc7a5..3675e93506a 100644 --- a/packages/client-direct/package.json +++ b/packages/client-direct/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-direct", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "module": "dist/index.js", "type": "module", diff --git a/packages/client-discord/package.json b/packages/client-discord/package.json index 84cbfb37310..28573e7976a 100644 --- a/packages/client-discord/package.json +++ b/packages/client-discord/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-discord", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-discord/src/attachments.ts b/packages/client-discord/src/attachments.ts index 3bdaed4f818..6b4a53661bc 100644 --- a/packages/client-discord/src/attachments.ts +++ b/packages/client-discord/src/attachments.ts @@ -43,7 +43,7 @@ async function generateSummary( const parsedResponse = parseJSONObjectFromText(response); - if (parsedResponse) { + if (parsedResponse?.title && parsedResponse?.summary) { return { title: parsedResponse.title, description: parsedResponse.summary, diff --git a/packages/client-discord/src/utils.ts b/packages/client-discord/src/utils.ts index f9603ad7e64..7a1603f8f07 100644 --- a/packages/client-discord/src/utils.ts +++ b/packages/client-discord/src/utils.ts @@ -18,7 +18,7 @@ export function getWavHeader( audioLength: number, sampleRate: number, channelCount = 1, - bitsPerSample = 16, + bitsPerSample = 16 ): Buffer { const wavHeader = Buffer.alloc(44); wavHeader.write("RIFF", 0); @@ -31,7 +31,7 @@ export function getWavHeader( wavHeader.writeUInt32LE(sampleRate, 24); // Sample rate wavHeader.writeUInt32LE( (sampleRate * bitsPerSample * channelCount) / 8, - 28, + 28 ); // Byte rate wavHeader.writeUInt16LE((bitsPerSample * channelCount) / 8, 32); // Block align ((BitsPerSample * Channels) / 8) wavHeader.writeUInt16LE(bitsPerSample, 34); // Bits per sample @@ -44,7 +44,7 @@ const MAX_MESSAGE_LENGTH = 1900; export async function generateSummary( runtime: IAgentRuntime, - text: string, + text: string ): Promise<{ title: string; description: string }> { // make sure text is under 128k characters text = await trimTokens(text, 100000, runtime); @@ -71,7 +71,7 @@ export async function generateSummary( const parsedResponse = parseJSONObjectFromText(response); - if (parsedResponse.title && parsedResponse.summary) { + if (parsedResponse?.title && parsedResponse?.summary) { return { title: parsedResponse.title, description: parsedResponse.summary, @@ -88,7 +88,7 @@ export async function sendMessageInChunks( channel: TextChannel, content: string, inReplyTo: string, - files: any[], + files: any[] ): Promise { const sentMessages: DiscordMessage[] = []; const messages = splitMessage(content); @@ -191,7 +191,7 @@ export function canSendMessage(channel) { // Add thread-specific permission if it's a thread if (channel instanceof ThreadChannel) { requiredPermissions.push( - PermissionsBitField.Flags.SendMessagesInThreads, + PermissionsBitField.Flags.SendMessagesInThreads ); } @@ -207,7 +207,7 @@ export function canSendMessage(channel) { // Check each required permission const missingPermissions = requiredPermissions.filter( - (perm) => !permissions.has(perm), + (perm) => !permissions.has(perm) ); return { @@ -215,7 +215,9 @@ export function canSendMessage(channel) { missingPermissions: missingPermissions, reason: missingPermissions.length > 0 - ? `Missing permissions: ${missingPermissions.map((p) => String(p)).join(", ")}` + ? `Missing permissions: ${missingPermissions + .map((p) => String(p)) + .join(", ")}` : null, }; } @@ -223,7 +225,7 @@ export function canSendMessage(channel) { export function cosineSimilarity( text1: string, text2: string, - text3?: string, + text3?: string ): number { const preprocessText = (text: string) => text @@ -305,7 +307,7 @@ export function cosineSimilarity( const maxMagnitude = Math.max( magnitude1 * magnitude2, magnitude2 * magnitude3, - magnitude1 * magnitude3, + magnitude1 * magnitude3 ); return dotProduct / maxMagnitude; diff --git a/packages/client-eliza-home/package.json b/packages/client-eliza-home/package.json index 87f288ed123..9eb56b7d647 100644 --- a/packages/client-eliza-home/package.json +++ b/packages/client-eliza-home/package.json @@ -1,23 +1,23 @@ { - "name": "@elizaos/client-eliza-home", - "version": "0.1.0", - "main": "dist/index.js", - "type": "module", - "types": "dist/index.d.ts", - "dependencies": { - "@elizaos/core": "workspace:*" - }, - "devDependencies": { - "tsup": "8.3.5", - "vitest": "^1.2.1", - "@vitest/coverage-v8": "^1.2.1" - }, - "scripts": { - "build": "tsup --format esm --dts", - "dev": "tsup --format esm --dts --watch", - "lint": "eslint . --fix", - "test": "vitest run", - "test:watch": "vitest watch", - "test:coverage": "vitest run --coverage" - } + "name": "@elizaos/client-eliza-home", + "version": "0.1.9", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@elizaos/core": "workspace:*" + }, + "devDependencies": { + "tsup": "8.3.5", + "vitest": "^1.2.1", + "@vitest/coverage-v8": "^1.2.1" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch", + "lint": "eslint . --fix", + "test": "vitest run", + "test:watch": "vitest watch", + "test:coverage": "vitest run --coverage" + } } diff --git a/packages/client-farcaster/package.json b/packages/client-farcaster/package.json index 250eb6be53b..ede91d8bd09 100644 --- a/packages/client-farcaster/package.json +++ b/packages/client-farcaster/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-farcaster", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-github/package.json b/packages/client-github/package.json index 724315b4b93..9c4dcfca497 100644 --- a/packages/client-github/package.json +++ b/packages/client-github/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-github", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-instagram/package.json b/packages/client-instagram/package.json index b5af8d710cd..433b01d22a3 100644 --- a/packages/client-instagram/package.json +++ b/packages/client-instagram/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-instagram", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-lens/package.json b/packages/client-lens/package.json index d3f5b809a02..24a205251a7 100644 --- a/packages/client-lens/package.json +++ b/packages/client-lens/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-lens", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-simsai/package.json b/packages/client-simsai/package.json index 0aec513bc47..182dccc06fb 100644 --- a/packages/client-simsai/package.json +++ b/packages/client-simsai/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-simsai", - "version": "0.1.8+build.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-slack/package.json b/packages/client-slack/package.json index 580bd6d6e45..74bb149742e 100644 --- a/packages/client-slack/package.json +++ b/packages/client-slack/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-slack", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "description": "Slack client plugin for Eliza framework", "type": "module", "main": "dist/index.js", diff --git a/packages/client-slack/src/attachments.ts b/packages/client-slack/src/attachments.ts index 0470d8a8645..20f6db30964 100644 --- a/packages/client-slack/src/attachments.ts +++ b/packages/client-slack/src/attachments.ts @@ -19,7 +19,7 @@ import fs from "fs"; async function generateSummary( runtime: IAgentRuntime, - text: string, + text: string ): Promise<{ title: string; description: string }> { text = await trimTokens(text, 100000, runtime); @@ -45,7 +45,7 @@ async function generateSummary( const parsedResponse = parseJSONObjectFromText(response); - if (parsedResponse.title && parsedResponse.summary) { + if (parsedResponse?.title && parsedResponse?.summary) { return { title: parsedResponse.title, description: parsedResponse.summary, @@ -99,7 +99,7 @@ export class AttachmentManager { try { const videoService = this.runtime.getService( - ServiceType.VIDEO, + ServiceType.VIDEO ); if (file.mimetype.startsWith("application/pdf")) { @@ -160,7 +160,7 @@ export class AttachmentManager { const transcriptionService = this.runtime.getService( - ServiceType.TRANSCRIPTION, + ServiceType.TRANSCRIPTION ); if (!transcriptionService) { throw new Error("Transcription service not found"); @@ -174,7 +174,7 @@ export class AttachmentManager { const { title, description } = await generateSummary( this.runtime, - transcription, + transcription ); return { @@ -191,7 +191,7 @@ export class AttachmentManager { const errorMessage = error instanceof Error ? error.message : "Unknown error"; console.error( - `Error processing audio/video attachment: ${errorMessage}`, + `Error processing audio/video attachment: ${errorMessage}` ); return { id: file.id, @@ -236,7 +236,7 @@ export class AttachmentManager { try { const pdfBuffer = await this.fetchFileContent(file); const pdfService = this.runtime.getService( - ServiceType.PDF, + ServiceType.PDF ); if (!pdfService) { @@ -246,7 +246,7 @@ export class AttachmentManager { const text = await pdfService.convertPdfToText(pdfBuffer); const { title, description } = await generateSummary( this.runtime, - text, + text ); return { @@ -279,7 +279,7 @@ export class AttachmentManager { const text = textBuffer.toString("utf-8"); const { title, description } = await generateSummary( this.runtime, - text, + text ); return { @@ -302,7 +302,7 @@ export class AttachmentManager { try { const imageService = this.runtime.getService( - ServiceType.IMAGE_DESCRIPTION, + ServiceType.IMAGE_DESCRIPTION ); if (!imageService) { throw new Error("Image description service not found"); @@ -336,7 +336,7 @@ export class AttachmentManager { private async processVideoAttachment(file: SlackFile): Promise { try { const videoService = this.runtime.getService( - ServiceType.VIDEO, + ServiceType.VIDEO ); if (!videoService) { throw new Error("Video service not found"); diff --git a/packages/client-telegram-account/package.json b/packages/client-telegram-account/package.json index 9c52dd9b4ca..458e3f26751 100644 --- a/packages/client-telegram-account/package.json +++ b/packages/client-telegram-account/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-telegram-account", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-telegram/package.json b/packages/client-telegram/package.json index 3b72b555c3f..484b6df620d 100644 --- a/packages/client-telegram/package.json +++ b/packages/client-telegram/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-telegram", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-twitter/package.json b/packages/client-twitter/package.json index caa9fea228d..9c67d4d26be 100644 --- a/packages/client-twitter/package.json +++ b/packages/client-twitter/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-twitter", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/client-twitter/src/base.ts b/packages/client-twitter/src/base.ts index 501a34fd322..3543877ed74 100644 --- a/packages/client-twitter/src/base.ts +++ b/packages/client-twitter/src/base.ts @@ -137,6 +137,100 @@ export class ClientBase extends EventEmitter { ); } + /** + * Parse the raw tweet data into a standardized Tweet object. + */ + private parseTweet(raw: any, depth = 0, maxDepth = 3): Tweet { + // If we've reached maxDepth, don't parse nested quotes/retweets further + const canRecurse = depth < maxDepth; + + const quotedStatus = raw.quoted_status_result?.result && canRecurse + ? this.parseTweet(raw.quoted_status_result.result, depth + 1, maxDepth) + : undefined; + + const retweetedStatus = raw.retweeted_status_result?.result && canRecurse + ? this.parseTweet(raw.retweeted_status_result.result, depth + 1, maxDepth) + : undefined; + + const t: Tweet = { + bookmarkCount: + raw.bookmarkCount ?? raw.legacy?.bookmark_count ?? undefined, + conversationId: + raw.conversationId ?? raw.legacy?.conversation_id_str, + hashtags: raw.hashtags ?? raw.legacy?.entities?.hashtags ?? [], + html: raw.html, + id: raw.id ?? raw.rest_id ?? raw.id_str ?? undefined, + inReplyToStatus: raw.inReplyToStatus, + inReplyToStatusId: + raw.inReplyToStatusId ?? + raw.legacy?.in_reply_to_status_id_str ?? + undefined, + isQuoted: raw.legacy?.is_quote_status === true, + isPin: raw.isPin, + isReply: raw.isReply, + isRetweet: raw.legacy?.retweeted === true, + isSelfThread: raw.isSelfThread, + language: raw.legacy?.lang, + likes: raw.legacy?.favorite_count ?? 0, + name: + raw.name ?? + raw?.user_results?.result?.legacy?.name ?? + raw.core?.user_results?.result?.legacy?.name, + mentions: raw.mentions ?? raw.legacy?.entities?.user_mentions ?? [], + permanentUrl: + raw.permanentUrl ?? + (raw.core?.user_results?.result?.legacy?.screen_name && + raw.rest_id + ? `https://x.com/${raw.core?.user_results?.result?.legacy?.screen_name}/status/${raw.rest_id}` + : undefined), + photos: + raw.photos ?? + (raw.legacy?.entities?.media + ?.filter((media: any) => media.type === "photo") + .map((media: any) => ({ + id: media.id_str, + url: media.media_url_https, + alt_text: media.alt_text, + })) || []), + place: raw.place, + poll: raw.poll ?? null, + quotedStatus, + quotedStatusId: + raw.quotedStatusId ?? raw.legacy?.quoted_status_id_str ?? undefined, + quotes: raw.legacy?.quote_count ?? 0, + replies: raw.legacy?.reply_count ?? 0, + retweets: raw.legacy?.retweet_count ?? 0, + retweetedStatus, + retweetedStatusId: raw.legacy?.retweeted_status_id_str ?? undefined, + text: raw.text ?? raw.legacy?.full_text ?? undefined, + thread: raw.thread || [], + timeParsed: raw.timeParsed + ? new Date(raw.timeParsed) + : raw.legacy?.created_at + ? new Date(raw.legacy?.created_at) + : undefined, + timestamp: + raw.timestamp ?? + (raw.legacy?.created_at + ? new Date(raw.legacy.created_at).getTime() / 1000 + : undefined), + urls: raw.urls ?? raw.legacy?.entities?.urls ?? [], + userId: raw.userId ?? raw.legacy?.user_id_str ?? undefined, + username: + raw.username ?? + raw.core?.user_results?.result?.legacy?.screen_name ?? + undefined, + videos: + raw.videos ?? + (raw.legacy?.entities?.media + ?.filter((media: any) => media.type === "video") ?? []), + views: raw.views?.count ? Number(raw.views.count) : 0, + sensitiveContent: raw.sensitiveContent, + }; + + return t; + } + constructor(runtime: IAgentRuntime, twitterConfig: TwitterConfig) { super(); this.runtime = runtime; @@ -248,7 +342,8 @@ export class ClientBase extends EventEmitter { this.profile.id, count ); - return homeTimeline.tweets; + // Use parseTweet on each tweet + return homeTimeline.tweets.map((t) => this.parseTweet(t)); } /** @@ -266,54 +361,8 @@ export class ClientBase extends EventEmitter { elizaLogger.debug(homeTimeline, { depth: Number.POSITIVE_INFINITY }); const processedTimeline = homeTimeline .filter((t) => t.__typename !== "TweetWithVisibilityResults") // what's this about? - .map((tweet) => { - //console.log("tweet is", tweet); - const obj = { - id: tweet.id, - name: - tweet.name ?? tweet.core?.user_results?.result?.legacy.name, - username: - tweet.username ?? - tweet.core?.user_results?.result?.legacy.screen_name, - text: tweet.text ?? tweet.legacy?.full_text, - inReplyToStatusId: - tweet.inReplyToStatusId ?? - tweet.legacy?.in_reply_to_status_id_str ?? - null, - timestamp: - new Date(tweet.legacy?.created_at).getTime() / 1000, - createdAt: - tweet.createdAt ?? - tweet.legacy?.created_at ?? - tweet.core?.user_results?.result?.legacy.created_at, - userId: tweet.userId ?? tweet.legacy?.user_id_str, - conversationId: - tweet.conversationId ?? - tweet.legacy?.conversation_id_str, - permanentUrl: `https://x.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`, - hashtags: tweet.hashtags ?? tweet.legacy?.entities.hashtags, - mentions: - tweet.mentions ?? tweet.legacy?.entities.user_mentions, - photos: - tweet.legacy?.entities?.media - ?.filter((media) => media.type === "photo") - .map((media) => ({ - id: media.id_str, - url: media.media_url_https, // Store media_url_https as url - alt_text: media.alt_text, - })) || [], - thread: tweet.thread || [], - urls: tweet.urls ?? tweet.legacy?.entities.urls, - videos: - tweet.videos ?? - tweet.legacy?.entities.media?.filter( - (media) => media.type === "video" - ) ?? - [], - }; - //console.log("obj is", obj); - return obj; - }); + .map((tweet) => this.parseTweet(tweet)); + //elizaLogger.debug("process homeTimeline", processedTimeline); return processedTimeline; } @@ -329,34 +378,9 @@ export class ClientBase extends EventEmitter { ? await this.twitterClient.fetchFollowingTimeline(count, []) : await this.twitterClient.fetchHomeTimeline(count, []); + // Parse, filter out self-tweets, limit to count return homeTimeline - .map((tweet) => ({ - id: tweet.rest_id, - name: tweet.core?.user_results?.result?.legacy?.name, - username: tweet.core?.user_results?.result?.legacy?.screen_name, - text: tweet.legacy?.full_text, - inReplyToStatusId: tweet.legacy?.in_reply_to_status_id_str, - timestamp: new Date(tweet.legacy?.created_at).getTime() / 1000, - userId: tweet.legacy?.user_id_str, - conversationId: tweet.legacy?.conversation_id_str, - permanentUrl: `https://twitter.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`, - hashtags: tweet.legacy?.entities?.hashtags || [], - mentions: tweet.legacy?.entities?.user_mentions || [], - photos: - tweet.legacy?.entities?.media - ?.filter((media) => media.type === "photo") - .map((media) => ({ - id: media.id_str, - url: media.media_url_https, // Store media_url_https as url - alt_text: media.alt_text, - })) || [], - thread: tweet.thread || [], - urls: tweet.legacy?.entities?.urls || [], - videos: - tweet.legacy?.entities?.media?.filter( - (media) => media.type === "video" - ) || [], - })) + .map((tweet) => this.parseTweet(tweet)) .filter((tweet) => tweet.username !== agentUsername) // do not perform action on self-tweets .slice(0, count); // TODO: Once the 'count' parameter is fixed in the 'fetchTimeline' method of the 'agent-twitter-client', diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts index 3ac20a990f7..8b787b36ec6 100644 --- a/packages/client-twitter/src/post.ts +++ b/packages/client-twitter/src/post.ts @@ -116,34 +116,34 @@ export class TwitterPostClient { elizaLogger.log("Twitter Client Configuration:"); elizaLogger.log(`- Username: ${this.twitterUsername}`); elizaLogger.log( - `- Dry Run Mode: ${this.isDryRun ? "enabled" : "disabled"}`, + `- Dry Run Mode: ${this.isDryRun ? "enabled" : "disabled"}` ); elizaLogger.log( - `- Post Interval: ${this.client.twitterConfig.POST_INTERVAL_MIN}-${this.client.twitterConfig.POST_INTERVAL_MAX} minutes`, + `- Post Interval: ${this.client.twitterConfig.POST_INTERVAL_MIN}-${this.client.twitterConfig.POST_INTERVAL_MAX} minutes` ); elizaLogger.log( `- Action Processing: ${ this.client.twitterConfig.ENABLE_ACTION_PROCESSING ? "enabled" : "disabled" - }`, + }` ); elizaLogger.log( - `- Action Interval: ${this.client.twitterConfig.ACTION_INTERVAL} minutes`, + `- Action Interval: ${this.client.twitterConfig.ACTION_INTERVAL} minutes` ); elizaLogger.log( `- Post Immediately: ${ this.client.twitterConfig.POST_IMMEDIATELY ? "enabled" : "disabled" - }`, + }` ); elizaLogger.log( `- Search Enabled: ${ this.client.twitterConfig.TWITTER_SEARCH_ENABLE ? "enabled" : "disabled" - }`, + }` ); const targetUsers = this.client.twitterConfig.TWITTER_TARGET_USERS; @@ -153,7 +153,7 @@ export class TwitterPostClient { if (this.isDryRun) { elizaLogger.log( - "Twitter client initialized in dry run mode - no actual tweets should be posted", + "Twitter client initialized in dry run mode - no actual tweets should be posted" ); } @@ -164,22 +164,22 @@ export class TwitterPostClient { ?.toLocaleLowerCase() === "true"; if (approvalRequired) { const discordToken = this.runtime.getSetting( - "TWITTER_APPROVAL_DISCORD_BOT_TOKEN", + "TWITTER_APPROVAL_DISCORD_BOT_TOKEN" ); const approvalChannelId = this.runtime.getSetting( - "TWITTER_APPROVAL_DISCORD_CHANNEL_ID", + "TWITTER_APPROVAL_DISCORD_CHANNEL_ID" ); const APPROVAL_CHECK_INTERVAL = Number.parseInt( - this.runtime.getSetting("TWITTER_APPROVAL_CHECK_INTERVAL"), + this.runtime.getSetting("TWITTER_APPROVAL_CHECK_INTERVAL") ) || 5 * 60 * 1000; // 5 minutes this.approvalCheckInterval = APPROVAL_CHECK_INTERVAL; if (!discordToken || !approvalChannelId) { throw new Error( - "TWITTER_APPROVAL_DISCORD_BOT_TOKEN and TWITTER_APPROVAL_DISCORD_CHANNEL_ID are required for approval workflow", + "TWITTER_APPROVAL_DISCORD_BOT_TOKEN and TWITTER_APPROVAL_DISCORD_CHANNEL_ID are required for approval workflow" ); } @@ -205,7 +205,7 @@ export class TwitterPostClient { Events.ClientReady, (readyClient) => { elizaLogger.log( - `Discord bot is ready as ${readyClient.user.tag}!`, + `Discord bot is ready as ${readyClient.user.tag}!` ); // Generate invite link with required permissions @@ -216,13 +216,13 @@ export class TwitterPostClient { // - Read Message History elizaLogger.log( - `Use this link to properly invite the Twitter Post Approval Discord bot: ${invite}`, + `Use this link to properly invite the Twitter Post Approval Discord bot: ${invite}` ); - }, + } ); // Login to Discord this.discordClientForApproval.login( - this.runtime.getSetting("TWITTER_APPROVAL_DISCORD_BOT_TOKEN"), + this.runtime.getSetting("TWITTER_APPROVAL_DISCORD_BOT_TOKEN") ); } @@ -264,18 +264,18 @@ export class TwitterPostClient { if (results) { elizaLogger.log(`Processed ${results.length} tweets`); elizaLogger.log( - `Next action processing scheduled in ${actionInterval} minutes`, + `Next action processing scheduled in ${actionInterval} minutes` ); // Wait for the full interval before next processing await new Promise( (resolve) => - setTimeout(resolve, actionInterval * 60 * 1000), // now in minutes + setTimeout(resolve, actionInterval * 60 * 1000) // now in minutes ); } } catch (error) { elizaLogger.error( "Error in action processing loop:", - error, + error ); // Add exponential backoff on error await new Promise((resolve) => setTimeout(resolve, 30000)); // Wait 30s on error @@ -294,7 +294,7 @@ export class TwitterPostClient { processActionsLoop().catch((error) => { elizaLogger.error( "Fatal error in process actions loop:", - error, + error ); }); } @@ -312,7 +312,7 @@ export class TwitterPostClient { createTweetObject( tweetResult: any, client: any, - twitterUsername: string, + twitterUsername: string ): Tweet { return { id: tweetResult.rest_id, @@ -339,7 +339,7 @@ export class TwitterPostClient { client: ClientBase, tweet: Tweet, roomId: UUID, - rawTweetContent: string, + rawTweetContent: string ) { // Cache the last post details await runtime.cacheManager.set( @@ -347,7 +347,7 @@ export class TwitterPostClient { { id: tweet.id, timestamp: Date.now(), - }, + } ); // Cache the tweet @@ -385,19 +385,23 @@ export class TwitterPostClient { try { const noteTweetResult = await client.requestQueue.add( async () => - await client.twitterClient.sendNoteTweet(content, tweetId, mediaData), + await client.twitterClient.sendNoteTweet( + content, + tweetId, + mediaData + ) ); if (noteTweetResult.errors && noteTweetResult.errors.length > 0) { // Note Tweet failed due to authorization. Falling back to standard Tweet. const truncateContent = truncateToCompleteSentence( content, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); return await this.sendStandardTweet( client, truncateContent, - tweetId, + tweetId ); } else { return noteTweetResult.data.notetweet_create.tweet_results @@ -417,7 +421,11 @@ export class TwitterPostClient { try { const standardTweetResult = await client.requestQueue.add( async () => - await client.twitterClient.sendTweet(content, tweetId, mediaData), + await client.twitterClient.sendTweet( + content, + tweetId, + mediaData + ) ); const body = await standardTweetResult.json(); if (!body?.data?.create_tweet?.tweet_results?.result) { @@ -446,15 +454,25 @@ export class TwitterPostClient { let result; if (tweetTextForPosting.length > DEFAULT_MAX_TWEET_LENGTH) { - result = await this.handleNoteTweet(client, tweetTextForPosting, undefined, mediaData); + result = await this.handleNoteTweet( + client, + tweetTextForPosting, + undefined, + mediaData + ); } else { - result = await this.sendStandardTweet(client, tweetTextForPosting, undefined, mediaData); + result = await this.sendStandardTweet( + client, + tweetTextForPosting, + undefined, + mediaData + ); } const tweet = this.createTweetObject( result, client, - twitterUsername, + twitterUsername ); await this.processAndCacheTweet( @@ -462,7 +480,7 @@ export class TwitterPostClient { client, tweet, roomId, - rawTweetContent, + rawTweetContent ); } catch (error) { elizaLogger.error("Error sending tweet:", error); @@ -477,13 +495,13 @@ export class TwitterPostClient { try { const roomId = stringToUuid( - "twitter_generate_room-" + this.client.profile.username, + "twitter_generate_room-" + this.client.profile.username ); await this.runtime.ensureUserExists( this.runtime.agentId, this.client.profile.username, this.runtime.character.name, - "twitter", + "twitter" ); const topics = this.runtime.character.topics.join(", "); @@ -500,7 +518,7 @@ export class TwitterPostClient { }, { twitterUserName: this.client.profile.username, - }, + } ); const context = composeContext({ @@ -521,16 +539,19 @@ export class TwitterPostClient { const rawTweetContent = cleanJsonResponse(response); // First attempt to clean content - let tweetTextForPosting = ""; + let tweetTextForPosting = null; let mediaData = null; // Try parsing as JSON first const parsedResponse = parseJSONObjectFromText(rawTweetContent); - if (parsedResponse.text) { + if (parsedResponse?.text) { tweetTextForPosting = parsedResponse.text; } - if (parsedResponse.attachments && parsedResponse.attachments.length > 0) { + if ( + parsedResponse?.attachments && + parsedResponse?.attachments.length > 0 + ) { mediaData = await fetchMediaData(parsedResponse.attachments); } @@ -542,7 +563,7 @@ export class TwitterPostClient { if (parsingText) { tweetTextForPosting = truncateToCompleteSentence( extractAttributes(rawTweetContent, ["text"]).text, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); } } @@ -557,7 +578,7 @@ export class TwitterPostClient { if (maxTweetLength) { tweetTextForPosting = truncateToCompleteSentence( tweetTextForPosting, - maxTweetLength, + maxTweetLength ); } @@ -567,11 +588,13 @@ export class TwitterPostClient { const fixNewLines = (str: string) => str.replaceAll(/\\n/g, "\n\n"); //ensures double spaces // Final cleaning - tweetTextForPosting = removeQuotes(fixNewLines(tweetTextForPosting)); + tweetTextForPosting = removeQuotes( + fixNewLines(tweetTextForPosting) + ); if (this.isDryRun) { elizaLogger.info( - `Dry run: would have posted tweet: ${tweetTextForPosting}`, + `Dry run: would have posted tweet: ${tweetTextForPosting}` ); return; } @@ -580,16 +603,18 @@ export class TwitterPostClient { if (this.approvalRequired) { // Send for approval instead of posting directly elizaLogger.log( - `Sending Tweet For Approval:\n ${tweetTextForPosting}`, + `Sending Tweet For Approval:\n ${tweetTextForPosting}` ); await this.sendForApproval( tweetTextForPosting, roomId, - rawTweetContent, + rawTweetContent ); elizaLogger.log("Tweet sent for approval"); } else { - elizaLogger.log(`Posting new tweet:\n ${tweetTextForPosting}`); + elizaLogger.log( + `Posting new tweet:\n ${tweetTextForPosting}` + ); this.postTweet( this.runtime, this.client, @@ -597,7 +622,7 @@ export class TwitterPostClient { roomId, rawTweetContent, this.twitterUsername, - mediaData, + mediaData ); } } catch (error) { @@ -613,7 +638,7 @@ export class TwitterPostClient { options?: { template?: TemplateType; context?: string; - }, + } ): Promise { const context = composeContext({ state: tweetState, @@ -639,7 +664,7 @@ export class TwitterPostClient { if (jsonResponse.text) { const truncateContent = truncateToCompleteSentence( jsonResponse.text, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); return truncateContent; } @@ -651,7 +676,7 @@ export class TwitterPostClient { if (possibleContent) { const truncateContent = truncateToCompleteSentence( possibleContent, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); return truncateContent; } @@ -663,7 +688,7 @@ export class TwitterPostClient { if (parsingText) { truncateContent = truncateToCompleteSentence( parsingText, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); } @@ -671,7 +696,7 @@ export class TwitterPostClient { // If not JSON or no valid content found, clean the raw text truncateContent = truncateToCompleteSentence( cleanedResponse, - this.client.twitterConfig.MAX_TWEET_LENGTH, + this.client.twitterConfig.MAX_TWEET_LENGTH ); } @@ -698,11 +723,11 @@ export class TwitterPostClient { this.runtime.agentId, this.twitterUsername, this.runtime.character.name, - "twitter", + "twitter" ); const timelines = await this.client.fetchTimelineForActions( - MAX_TIMELINES_TO_FETCH, + MAX_TIMELINES_TO_FETCH ); const maxActionsProcessing = this.client.twitterConfig.MAX_ACTIONS_PROCESSING; @@ -713,17 +738,17 @@ export class TwitterPostClient { // Skip if we've already processed this tweet const memory = await this.runtime.messageManager.getMemoryById( - stringToUuid(tweet.id + "-" + this.runtime.agentId), + stringToUuid(tweet.id + "-" + this.runtime.agentId) ); if (memory) { elizaLogger.log( - `Already processed tweet ID: ${tweet.id}`, + `Already processed tweet ID: ${tweet.id}` ); continue; } const roomId = stringToUuid( - tweet.conversationId + "-" + this.runtime.agentId, + tweet.conversationId + "-" + this.runtime.agentId ); const tweetState = await this.runtime.composeState( @@ -736,7 +761,7 @@ export class TwitterPostClient { { twitterUserName: this.twitterUsername, currentTweet: `ID: ${tweet.id}\nFrom: ${tweet.name} (@${tweet.username})\nText: ${tweet.text}`, - }, + } ); const actionContext = composeContext({ @@ -755,7 +780,7 @@ export class TwitterPostClient { if (!actionResponse) { elizaLogger.log( - `No valid actions generated for tweet ${tweet.id}`, + `No valid actions generated for tweet ${tweet.id}` ); continue; } @@ -768,7 +793,7 @@ export class TwitterPostClient { } catch (error) { elizaLogger.error( `Error processing tweet ${tweet.id}:`, - error, + error ); continue; } @@ -800,7 +825,7 @@ export class TwitterPostClient { // Sort the timeline based on the action decision score, // then slice the results according to the environment variable to limit the number of actions per cycle. const sortedTimelines = sortProcessedTimeline( - processedTimelines, + processedTimelines ).slice(0, maxActionsProcessing); return this.processTimelineActions(sortedTimelines); // Return results array to indicate completion @@ -826,7 +851,7 @@ export class TwitterPostClient { actionResponse: ActionResponse; tweetState: State; roomId: UUID; - }[], + }[] ): Promise< { tweetId: string; @@ -843,7 +868,7 @@ export class TwitterPostClient { if (actionResponse.like) { if (this.isDryRun) { elizaLogger.info( - `Dry run: would have liked tweet ${tweet.id}`, + `Dry run: would have liked tweet ${tweet.id}` ); executedActions.push("like (dry run)"); } else { @@ -854,7 +879,7 @@ export class TwitterPostClient { } catch (error) { elizaLogger.error( `Error liking tweet ${tweet.id}:`, - error, + error ); } } @@ -863,7 +888,7 @@ export class TwitterPostClient { if (actionResponse.retweet) { if (this.isDryRun) { elizaLogger.info( - `Dry run: would have retweeted tweet ${tweet.id}`, + `Dry run: would have retweeted tweet ${tweet.id}` ); executedActions.push("retweet (dry run)"); } else { @@ -874,7 +899,7 @@ export class TwitterPostClient { } catch (error) { elizaLogger.error( `Error retweeting tweet ${tweet.id}:`, - error, + error ); } } @@ -885,14 +910,14 @@ export class TwitterPostClient { // Build conversation thread for context const thread = await buildConversationThread( tweet, - this.client, + this.client ); const formattedConversation = thread .map( (t) => `@${t.username} (${new Date( - t.timestamp * 1000, - ).toLocaleString()}): ${t.text}`, + t.timestamp * 1000 + ).toLocaleString()}): ${t.text}` ) .join("\n\n"); @@ -900,12 +925,12 @@ export class TwitterPostClient { const imageDescriptions = []; if (tweet.photos?.length > 0) { elizaLogger.log( - "Processing images in tweet for context", + "Processing images in tweet for context" ); for (const photo of tweet.photos) { const description = await this.runtime .getService( - ServiceType.IMAGE_DESCRIPTION, + ServiceType.IMAGE_DESCRIPTION ) .describeImage(photo.url); imageDescriptions.push(description); @@ -918,7 +943,7 @@ export class TwitterPostClient { try { const quotedTweet = await this.client.twitterClient.getTweet( - tweet.quotedStatusId, + tweet.quotedStatusId ); if (quotedTweet) { quotedContent = `\nQuoted Tweet from @${quotedTweet.username}:\n${quotedTweet.text}`; @@ -926,7 +951,7 @@ export class TwitterPostClient { } catch (error) { elizaLogger.error( "Error fetching quoted tweet:", - error, + error ); } } @@ -938,7 +963,7 @@ export class TwitterPostClient { roomId: stringToUuid( tweet.conversationId + "-" + - this.runtime.agentId, + this.runtime.agentId ), agentId: this.runtime.agentId, content: { @@ -955,12 +980,12 @@ export class TwitterPostClient { ? `\nImages in Tweet:\n${imageDescriptions .map( (desc, i) => - `Image ${i + 1}: ${desc}`, + `Image ${i + 1}: ${desc}` ) .join("\n")}` : "", quotedContent, - }, + } ); const quoteContent = await this.generateTweetContent( @@ -970,24 +995,24 @@ export class TwitterPostClient { this.runtime.character.templates ?.twitterMessageHandlerTemplate || twitterMessageHandlerTemplate, - }, + } ); if (!quoteContent) { elizaLogger.error( - "Failed to generate valid quote tweet content", + "Failed to generate valid quote tweet content" ); return; } elizaLogger.log( "Generated quote tweet content:", - quoteContent, + quoteContent ); // Check for dry run mode if (this.isDryRun) { elizaLogger.info( - `Dry run: A quote tweet for tweet ID ${tweet.id} would have been posted with the following content: "${quoteContent}".`, + `Dry run: A quote tweet for tweet ID ${tweet.id} would have been posted with the following content: "${quoteContent}".` ); executedActions.push("quote (dry run)"); } else { @@ -996,8 +1021,8 @@ export class TwitterPostClient { async () => await this.client.twitterClient.sendQuoteTweet( quoteContent, - tweet.id, - ), + tweet.id + ) ); const body = await result.json(); @@ -1006,26 +1031,26 @@ export class TwitterPostClient { body?.data?.create_tweet?.tweet_results?.result ) { elizaLogger.log( - "Successfully posted quote tweet", + "Successfully posted quote tweet" ); executedActions.push("quote"); // Cache generation context for debugging await this.runtime.cacheManager.set( `twitter/quote_generation_${tweet.id}.txt`, - `Context:\n${enrichedState}\n\nGenerated Quote:\n${quoteContent}`, + `Context:\n${enrichedState}\n\nGenerated Quote:\n${quoteContent}` ); } else { elizaLogger.error( "Quote tweet creation failed:", - body, + body ); } } } catch (error) { elizaLogger.error( "Error in quote tweet generation:", - error, + error ); } } @@ -1035,12 +1060,12 @@ export class TwitterPostClient { await this.handleTextOnlyReply( tweet, tweetState, - executedActions, + executedActions ); } catch (error) { elizaLogger.error( `Error replying to tweet ${tweet.id}:`, - error, + error ); } } @@ -1051,11 +1076,11 @@ export class TwitterPostClient { stringToUuid(tweet.userId), tweet.username, tweet.name, - "twitter", + "twitter" ); await this.runtime.ensureParticipantInRoom( this.runtime.agentId, - roomId, + roomId ); if (!this.isDryRun) { @@ -1097,7 +1122,7 @@ export class TwitterPostClient { private async handleTextOnlyReply( tweet: Tweet, tweetState: any, - executedActions: string[], + executedActions: string[] ) { try { // Build conversation thread for context @@ -1106,8 +1131,8 @@ export class TwitterPostClient { .map( (t) => `@${t.username} (${new Date( - t.timestamp * 1000, - ).toLocaleString()}): ${t.text}`, + t.timestamp * 1000 + ).toLocaleString()}): ${t.text}` ) .join("\n\n"); @@ -1118,7 +1143,7 @@ export class TwitterPostClient { for (const photo of tweet.photos) { const description = await this.runtime .getService( - ServiceType.IMAGE_DESCRIPTION, + ServiceType.IMAGE_DESCRIPTION ) .describeImage(photo.url); imageDescriptions.push(description); @@ -1131,7 +1156,7 @@ export class TwitterPostClient { try { const quotedTweet = await this.client.twitterClient.getTweet( - tweet.quotedStatusId, + tweet.quotedStatusId ); if (quotedTweet) { quotedContent = `\nQuoted Tweet from @${quotedTweet.username}:\n${quotedTweet.text}`; @@ -1146,7 +1171,7 @@ export class TwitterPostClient { { userId: this.runtime.agentId, roomId: stringToUuid( - tweet.conversationId + "-" + this.runtime.agentId, + tweet.conversationId + "-" + this.runtime.agentId ), agentId: this.runtime.agentId, content: { text: tweet.text, action: "" }, @@ -1162,7 +1187,7 @@ export class TwitterPostClient { .join("\n")}` : "", quotedContent, - }, + } ); // Generate and clean the reply content @@ -1180,7 +1205,7 @@ export class TwitterPostClient { if (this.isDryRun) { elizaLogger.info( - `Dry run: reply to tweet ${tweet.id} would have been: ${replyText}`, + `Dry run: reply to tweet ${tweet.id} would have been: ${replyText}` ); executedActions.push("reply (dry run)"); return; @@ -1194,13 +1219,13 @@ export class TwitterPostClient { result = await this.handleNoteTweet( this.client, replyText, - tweet.id, + tweet.id ); } else { result = await this.sendStandardTweet( this.client, replyText, - tweet.id, + tweet.id ); } @@ -1211,7 +1236,7 @@ export class TwitterPostClient { // Cache generation context for debugging await this.runtime.cacheManager.set( `twitter/reply_generation_${tweet.id}.txt`, - `Context:\n${enrichedState}\n\nGenerated Reply:\n${replyText}`, + `Context:\n${enrichedState}\n\nGenerated Reply:\n${replyText}` ); } else { elizaLogger.error("Tweet reply creation failed"); @@ -1228,7 +1253,7 @@ export class TwitterPostClient { private async sendForApproval( tweetTextForPosting: string, roomId: UUID, - rawTweetContent: string, + rawTweetContent: string ): Promise { try { const embed = { @@ -1253,7 +1278,7 @@ export class TwitterPostClient { }; const channel = await this.discordClientForApproval.channels.fetch( - this.discordApprovalChannelId, + this.discordApprovalChannelId ); if (!channel || !(channel instanceof TextChannel)) { @@ -1266,7 +1291,7 @@ export class TwitterPostClient { const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`; const currentPendingTweets = (await this.runtime.cacheManager.get( - pendingTweetsKey, + pendingTweetsKey )) || []; // Add new pending tweet currentPendingTweets.push({ @@ -1281,26 +1306,26 @@ export class TwitterPostClient { // Store updated array await this.runtime.cacheManager.set( pendingTweetsKey, - currentPendingTweets, + currentPendingTweets ); return message.id; } catch (error) { elizaLogger.error( "Error Sending Twitter Post Approval Request:", - error, + error ); return null; } } private async checkApprovalStatus( - discordMessageId: string, + discordMessageId: string ): Promise { try { // Fetch message and its replies from Discord const channel = await this.discordClientForApproval.channels.fetch( - this.discordApprovalChannelId, + this.discordApprovalChannelId ); elizaLogger.log(`channel ${JSON.stringify(channel)}`); @@ -1315,12 +1340,12 @@ export class TwitterPostClient { // Look for thumbs up reaction ('👍') const thumbsUpReaction = message.reactions.cache.find( - (reaction) => reaction.emoji.name === "👍", + (reaction) => reaction.emoji.name === "👍" ); // Look for reject reaction ('❌') const rejectReaction = message.reactions.cache.find( - (reaction) => reaction.emoji.name === "❌", + (reaction) => reaction.emoji.name === "❌" ); // Check if the reaction exists and has reactions @@ -1352,12 +1377,12 @@ export class TwitterPostClient { const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`; const currentPendingTweets = (await this.runtime.cacheManager.get( - pendingTweetsKey, + pendingTweetsKey )) || []; // Remove the specific tweet const updatedPendingTweets = currentPendingTweets.filter( - (tweet) => tweet.discordMessageId !== discordMessageId, + (tweet) => tweet.discordMessageId !== discordMessageId ); if (updatedPendingTweets.length === 0) { @@ -1365,7 +1390,7 @@ export class TwitterPostClient { } else { await this.runtime.cacheManager.set( pendingTweetsKey, - updatedPendingTweets, + updatedPendingTweets ); } } @@ -1375,7 +1400,7 @@ export class TwitterPostClient { const pendingTweetsKey = `twitter/${this.client.profile.username}/pendingTweet`; const pendingTweets = (await this.runtime.cacheManager.get( - pendingTweetsKey, + pendingTweetsKey )) || []; for (const pendingTweet of pendingTweets) { @@ -1390,20 +1415,20 @@ export class TwitterPostClient { try { const channel = await this.discordClientForApproval.channels.fetch( - pendingTweet.channelId, + pendingTweet.channelId ); if (channel instanceof TextChannel) { const originalMessage = await channel.messages.fetch( - pendingTweet.discordMessageId, + pendingTweet.discordMessageId ); await originalMessage.reply( - "This tweet approval request has expired (24h timeout).", + "This tweet approval request has expired (24h timeout)." ); } } catch (error) { elizaLogger.error( "Error sending expiration notification:", - error, + error ); } @@ -1424,27 +1449,27 @@ export class TwitterPostClient { pendingTweet.tweetTextForPosting, pendingTweet.roomId, pendingTweet.rawTweetContent, - this.twitterUsername, + this.twitterUsername ); // Notify on Discord about posting try { const channel = await this.discordClientForApproval.channels.fetch( - pendingTweet.channelId, + pendingTweet.channelId ); if (channel instanceof TextChannel) { const originalMessage = await channel.messages.fetch( - pendingTweet.discordMessageId, + pendingTweet.discordMessageId ); await originalMessage.reply( - "Tweet has been posted successfully! ✅", + "Tweet has been posted successfully! ✅" ); } } catch (error) { elizaLogger.error( "Error sending post notification:", - error, + error ); } @@ -1456,20 +1481,20 @@ export class TwitterPostClient { try { const channel = await this.discordClientForApproval.channels.fetch( - pendingTweet.channelId, + pendingTweet.channelId ); if (channel instanceof TextChannel) { const originalMessage = await channel.messages.fetch( - pendingTweet.discordMessageId, + pendingTweet.discordMessageId ); await originalMessage.reply( - "Tweet has been rejected! ❌", + "Tweet has been rejected! ❌" ); } } catch (error) { elizaLogger.error( "Error sending rejection notification:", - error, + error ); } } diff --git a/packages/client-xmtp/package.json b/packages/client-xmtp/package.json index 02295c65dee..f10d60b2b23 100644 --- a/packages/client-xmtp/package.json +++ b/packages/client-xmtp/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/client-xmtp", - "version": "0.1.8+build.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/core/__tests__/parsing.test.ts b/packages/core/__tests__/parsing.test.ts index 28d2bd32f20..d2739fa8890 100644 --- a/packages/core/__tests__/parsing.test.ts +++ b/packages/core/__tests__/parsing.test.ts @@ -67,6 +67,27 @@ describe("Parsing Module", () => { ]); }); + it("should handle single quote", () => { + let input = "```json\n['item1', 'item2', 'item3']\n```"; + expect(parseJsonArrayFromText(input)).toEqual([ + "item1", + "item2", + "item3", + ]); + input = "```json\n[\"A's item\", \"B's item\", \"C's item\"]\n```"; + expect(parseJsonArrayFromText(input)).toEqual([ + "A's item", + "B's item", + "C's item", + ]); + input = "[\"A's item\", \"B's item\", \"C's item\"]"; + expect(parseJsonArrayFromText(input)).toEqual([ + "A's item", + "B's item", + "C's item", + ]); + }); + it("should handle empty arrays", () => { expect(parseJsonArrayFromText("```json\n[]\n```")).toEqual([]); expect(parseJsonArrayFromText("[]")).toEqual(null); diff --git a/packages/core/package.json b/packages/core/package.json index c4f233fed87..aee352af3fe 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/core", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "description": "", "type": "module", "main": "dist/index.js", @@ -93,4 +93,4 @@ "uuid": "11.0.3", "zod": "3.23.8" } -} \ No newline at end of file +} diff --git a/packages/core/src/defaultCharacter.ts b/packages/core/src/defaultCharacter.ts index 52935a9f680..8faaa64f2b4 100644 --- a/packages/core/src/defaultCharacter.ts +++ b/packages/core/src/defaultCharacter.ts @@ -5,7 +5,7 @@ export const defaultCharacter: Character = { username: "eliza", plugins: [], clients: [], - modelProvider: ModelProviderName.OPENAI, + modelProvider: ModelProviderName.LLAMALOCAL, settings: { secrets: {}, voice: { diff --git a/packages/core/src/logger.ts b/packages/core/src/logger.ts index 09cb4e04051..519f08fb67b 100644 --- a/packages/core/src/logger.ts +++ b/packages/core/src/logger.ts @@ -1,6 +1,9 @@ import pino, { type LogFn } from "pino"; import pretty from "pino-pretty"; +import { parseBooleanFromText } from "./parsing.ts"; + + const customLevels: Record = { fatal: 60, error: 50, @@ -13,7 +16,7 @@ const customLevels: Record = { trace: 10, }; -const raw = process?.env?.LOG_JSON_FORMAT || false; +const raw = parseBooleanFromText(process?.env?.LOG_JSON_FORMAT) || false; const createStream = () => { if (raw) { diff --git a/packages/core/src/parsing.ts b/packages/core/src/parsing.ts index cc6612dbff6..b27dcdf8407 100644 --- a/packages/core/src/parsing.ts +++ b/packages/core/src/parsing.ts @@ -90,8 +90,8 @@ export function parseJsonArrayFromText(text: string) { if (jsonBlockMatch) { try { - // Replace single quotes with double quotes before parsing - const normalizedJson = jsonBlockMatch[1].replace(/'/g, '"'); + // Only replace quotes that are actually being used for string delimitation + const normalizedJson = jsonBlockMatch[1].replace(/(? { // make sure text is under 128k characters text = await trimTokens(text, 100000, runtime); @@ -43,7 +43,7 @@ async function generateSummary( const parsedResponse = parseJSONObjectFromText(response); - if (parsedResponse.title && parsedResponse.summary) { + if (parsedResponse?.title && parsedResponse?.summary) { return { title: parsedResponse.title, description: parsedResponse.summary, @@ -86,7 +86,7 @@ export class BrowserService extends Service implements IBrowserService { this.context = undefined; this.blocker = undefined; this.captchaSolver = new CaptchaSolver( - settings.CAPSOLVER_API_KEY || "", + settings.CAPSOLVER_API_KEY || "" ); } @@ -129,8 +129,9 @@ export class BrowserService extends Service implements IBrowserService { acceptDownloads: false, }); - this.blocker = - await PlaywrightBlocker.fromPrebuiltAdsAndTracking(fetch); + this.blocker = await PlaywrightBlocker.fromPrebuiltAdsAndTracking( + fetch + ); } } @@ -147,7 +148,7 @@ export class BrowserService extends Service implements IBrowserService { async getPageContent( url: string, - runtime: IAgentRuntime, + runtime: IAgentRuntime ): Promise { await this.initializeBrowser(); return await this.fetchPageContent(url, runtime); @@ -159,7 +160,7 @@ export class BrowserService extends Service implements IBrowserService { private async fetchPageContent( url: string, - runtime: IAgentRuntime, + runtime: IAgentRuntime ): Promise { const cacheKey = this.getCacheKey(url); const cached = await runtime.cacheManager.get<{ @@ -176,7 +177,7 @@ export class BrowserService extends Service implements IBrowserService { try { if (!this.context) { elizaLogger.log( - "Browser context not initialized. Call initializeBrowser() first.", + "Browser context not initialized. Call initializeBrowser() first." ); } @@ -209,11 +210,11 @@ export class BrowserService extends Service implements IBrowserService { } const documentTitle = await page.evaluate(() => document.title); const bodyContent = await page.evaluate( - () => document.body.innerText, + () => document.body.innerText ); const { title: parsedTitle, description } = await generateSummary( runtime, - documentTitle + "\n" + bodyContent, + documentTitle + "\n" + bodyContent ); const content = { title: parsedTitle, description, bodyContent }; await runtime.cacheManager.set(`${this.cacheKey}/${cacheKey}`, { @@ -289,7 +290,7 @@ export class BrowserService extends Service implements IBrowserService { private async getHCaptchaWebsiteKey(page: Page): Promise { return page.evaluate(() => { const hcaptchaIframe = document.querySelector( - 'iframe[src*="hcaptcha.com"]', + 'iframe[src*="hcaptcha.com"]' ); if (hcaptchaIframe) { const src = hcaptchaIframe.getAttribute("src"); @@ -311,7 +312,7 @@ export class BrowserService extends Service implements IBrowserService { private async tryAlternativeSources( url: string, - runtime: IAgentRuntime, + runtime: IAgentRuntime ): Promise<{ title: string; description: string; bodyContent: string }> { // Try Internet Archive const archiveUrl = `https://web.archive.org/web/${url}`; @@ -322,13 +323,15 @@ export class BrowserService extends Service implements IBrowserService { } // Try Google Search as a last resort - const googleSearchUrl = `https://www.google.com/search?q=${encodeURIComponent(url)}`; + const googleSearchUrl = `https://www.google.com/search?q=${encodeURIComponent( + url + )}`; try { return await this.fetchPageContent(googleSearchUrl, runtime); } catch (error) { elizaLogger.error("Error fetching from Google Search:", error); elizaLogger.error( - "Failed to fetch content from alternative sources", + "Failed to fetch content from alternative sources" ); return { title: url, diff --git a/packages/plugin-nvidia-nim/package.json b/packages/plugin-nvidia-nim/package.json index adb5773f612..091b7172cc7 100644 --- a/packages/plugin-nvidia-nim/package.json +++ b/packages/plugin-nvidia-nim/package.json @@ -1,52 +1,51 @@ { - "name": "@elizaos/plugin-nvidia-nim", - "version": "1.0.0", - "description": "NVIDIA NIM API plugin for ElizaOS", - "type": "module", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "scripts": { - "build": "tsup --format esm --dts", - "test": "vitest", - "clean": "rimraf dist", - "lint": "eslint src --ext .ts", - "format": "prettier --write src" - }, - "dependencies": { - "@elizaos/core": "workspace:*", - "openai": "^4.24.1", - "ora": "^8.1.1", - "zod": "^3.23.8", - "axios": "^1.7.7", - "chalk": "^5.4.1", - "cli-table3": "^0.6.5", - "cross-fetch": "^4.0.0" - - }, - "devDependencies": { - "@types/node": "^20.11.0", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "typescript": "^5.3.3", - "vitest": "^1.2.0", - "eslint": "^8.56.0", - "prettier": "^3.2.0", - "rimraf": "^5.0.5", - "tsup": "^8.0.0" - }, - "peerDependencies": { - "@elizaos/core": "workspace:*" - }, - "engines": { - "node": ">=16.0.0" - }, - "keywords": [ - "eliza", - "plugin", - "nvidia", - "nim", - "ai" - ], - "author": "Eliza Team", - "license": "MIT" -} \ No newline at end of file + "name": "@elizaos/plugin-nvidia-nim", + "version": "0.1.9", + "description": "NVIDIA NIM API plugin for ElizaOS", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsup --format esm --dts", + "test": "vitest", + "clean": "rimraf dist", + "lint": "eslint src --ext .ts", + "format": "prettier --write src" + }, + "dependencies": { + "@elizaos/core": "workspace:*", + "openai": "^4.24.1", + "ora": "^8.1.1", + "zod": "^3.23.8", + "axios": "^1.7.7", + "chalk": "^5.4.1", + "cli-table3": "^0.6.5", + "cross-fetch": "^4.0.0" + }, + "devDependencies": { + "@types/node": "^20.11.0", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "typescript": "^5.3.3", + "vitest": "^1.2.0", + "eslint": "^8.56.0", + "prettier": "^3.2.0", + "rimraf": "^5.0.5", + "tsup": "^8.0.0" + }, + "peerDependencies": { + "@elizaos/core": "workspace:*" + }, + "engines": { + "node": ">=16.0.0" + }, + "keywords": [ + "eliza", + "plugin", + "nvidia", + "nim", + "ai" + ], + "author": "Eliza Team", + "license": "MIT" +} diff --git a/packages/plugin-obsidian/package.json b/packages/plugin-obsidian/package.json index 8a12cefef47..35f458d64e7 100644 --- a/packages/plugin-obsidian/package.json +++ b/packages/plugin-obsidian/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-obsidian", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-omniflix/package.json b/packages/plugin-omniflix/package.json index 621a6c5702b..179c80f3fc5 100644 --- a/packages/plugin-omniflix/package.json +++ b/packages/plugin-omniflix/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-omniflix", - "version": "0.1.7-alpha.2", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-omniflix/src/actions/bank/send_tokens.ts b/packages/plugin-omniflix/src/actions/bank/send_tokens.ts index 82d961ab493..9f162f590ef 100644 --- a/packages/plugin-omniflix/src/actions/bank/send_tokens.ts +++ b/packages/plugin-omniflix/src/actions/bank/send_tokens.ts @@ -107,7 +107,7 @@ export class SendTokensAction { if (typeof params.amount === "number") { params.amount = params.amount * 1000000; } else if (typeof params.amount === "string") { - params.amount = parseInt(params.amount) * 1000000; + params.amount = Number.parseInt(params.amount) * 1000000; } } @@ -128,14 +128,21 @@ const buildTransferDetails = async ( message: Memory, state: State ): Promise => { - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); + + // if (!state) { + // state = (await runtime.composeState(message)) as State; + // } else { + // state = await runtime.updateRecentMessageState(state); + // } + + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } + currentState = await runtime.updateRecentMessageState(currentState); const transferContext = composeContext({ - state, + state: currentState, template: sendTokensTemplate, }); diff --git a/packages/plugin-omniflix/src/actions/staking/cancel_unbonding.ts b/packages/plugin-omniflix/src/actions/staking/cancel_unbonding.ts index 0ae36aa5e17..3d45403b401 100644 --- a/packages/plugin-omniflix/src/actions/staking/cancel_unbonding.ts +++ b/packages/plugin-omniflix/src/actions/staking/cancel_unbonding.ts @@ -108,7 +108,7 @@ export class CancelUnbondingAction { if (typeof params.amount === "number") { params.amount = params.amount * 1000000; } else if (typeof params.amount === "string") { - params.amount = parseInt(params.amount) * 1000000; + params.amount = Number.parseInt(params.amount) * 1000000; } } @@ -135,14 +135,20 @@ const buildCancelUnbondingContent = async ( message: Memory, state: State ): Promise => { - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); + // if (!state) { + // state = (await runtime.composeState(message)) as State; + // } else { + // state = await runtime.updateRecentMessageState(state); + // } + + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } + currentState = await runtime.updateRecentMessageState(currentState); const cancelUnbondingContext = composeContext({ - state, + state: currentState, template: cancelUnbondingTemplate, }); diff --git a/packages/plugin-omniflix/src/actions/staking/delegate_token.ts b/packages/plugin-omniflix/src/actions/staking/delegate_token.ts index 570f4626a42..ff00f98f54d 100644 --- a/packages/plugin-omniflix/src/actions/staking/delegate_token.ts +++ b/packages/plugin-omniflix/src/actions/staking/delegate_token.ts @@ -104,7 +104,7 @@ export class DelegateTokensAction { if (typeof params.amount === "number") { params.amount = params.amount * 1000000; } else if (typeof params.amount === "string") { - params.amount = parseInt(params.amount) * 1000000; + params.amount = Number.parseInt(params.amount) * 1000000; } } @@ -128,14 +128,21 @@ const buildDelegateTokensContent = async ( message: Memory, state: State ): Promise => { - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); + + // if (!state) { + // state = (await runtime.composeState(message)) as State; + // } else { + // state = await runtime.updateRecentMessageState(state); + // } + + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } + currentState = await runtime.updateRecentMessageState(currentState); const delegateContext = composeContext({ - state, + state: currentState, template: delegateTokensTemplate, }); diff --git a/packages/plugin-omniflix/src/actions/staking/redelegate.ts b/packages/plugin-omniflix/src/actions/staking/redelegate.ts index b220777c77c..7ef7dc96c4f 100644 --- a/packages/plugin-omniflix/src/actions/staking/redelegate.ts +++ b/packages/plugin-omniflix/src/actions/staking/redelegate.ts @@ -125,7 +125,7 @@ export class RedelegateTokensAction { if (typeof params.amount === "number") { params.amount = params.amount * 1000000; } else if (typeof params.amount === "string") { - params.amount = parseInt(params.amount) * 1000000; + params.amount = Number.parseInt(params.amount) * 1000000; } } @@ -150,14 +150,19 @@ const buildRedelegateDetails = async ( message: Memory, state: State ): Promise => { - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); + // if (!state) { + // state = (await runtime.composeState(message)) as State; + // } else { + // state = await runtime.updateRecentMessageState(state); + // } + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } + currentState = await runtime.updateRecentMessageState(currentState); const redelegateContext = composeContext({ - state, + state: currentState, template: redelegateTokensTemplate, }); diff --git a/packages/plugin-omniflix/src/actions/staking/undelegate_token.ts b/packages/plugin-omniflix/src/actions/staking/undelegate_token.ts index 6253cb35a06..6642317e070 100644 --- a/packages/plugin-omniflix/src/actions/staking/undelegate_token.ts +++ b/packages/plugin-omniflix/src/actions/staking/undelegate_token.ts @@ -104,7 +104,7 @@ export class UndelegateTokensAction { if (typeof params.amount === "number") { params.amount = params.amount * 1000000; } else if (typeof params.amount === "string") { - params.amount = parseInt(params.amount) * 1000000; + params.amount = Number.parseInt(params.amount) * 1000000; } } @@ -128,14 +128,20 @@ const buildUndelegateTokensContent = async ( message: Memory, state: State ): Promise => { - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); + // if (!state) { + // state = (await runtime.composeState(message)) as State; + // } else { + // state = await runtime.updateRecentMessageState(state); + // } + + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } + currentState = await runtime.updateRecentMessageState(currentState); const undelegateContext = composeContext({ - state, + state: currentState, template: undelegateTokensTemplate, }); diff --git a/packages/plugin-omniflix/src/index.ts b/packages/plugin-omniflix/src/index.ts index ff08abdff21..5960321ae5e 100644 --- a/packages/plugin-omniflix/src/index.ts +++ b/packages/plugin-omniflix/src/index.ts @@ -1,4 +1,4 @@ -import { type Plugin } from "@elizaos/core"; +import type { Plugin } from "@elizaos/core"; import providers from "./providers/index.ts"; import actions from "./actions/index.ts"; diff --git a/packages/plugin-omniflix/src/providers/bank.ts b/packages/plugin-omniflix/src/providers/bank.ts index 68d8c5f6da1..79891bf3f61 100644 --- a/packages/plugin-omniflix/src/providers/bank.ts +++ b/packages/plugin-omniflix/src/providers/bank.ts @@ -29,7 +29,7 @@ export class BankProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in sendTokens: " + e); + elizaLogger.error(`Error in sendTokens: ${e}`); throw e; } } diff --git a/packages/plugin-omniflix/src/providers/gov.ts b/packages/plugin-omniflix/src/providers/gov.ts index 64948e4896d..52e934dea0c 100644 --- a/packages/plugin-omniflix/src/providers/gov.ts +++ b/packages/plugin-omniflix/src/providers/gov.ts @@ -41,7 +41,7 @@ export class GovProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in voteOnProposal: " + e); + elizaLogger.error(`Error in voteOnProposal: ${e}`); throw e; } } diff --git a/packages/plugin-omniflix/src/providers/staking.ts b/packages/plugin-omniflix/src/providers/staking.ts index 24591195935..ee07ebf3995 100644 --- a/packages/plugin-omniflix/src/providers/staking.ts +++ b/packages/plugin-omniflix/src/providers/staking.ts @@ -29,7 +29,7 @@ export class StakingProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in delegate: " + e); + elizaLogger.error(`Error in delegate: ${e}`); throw e; } } @@ -53,7 +53,7 @@ export class StakingProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in undelegate: " + e); + elizaLogger.error(`Error in undelegate: ${e}`); throw e; } } @@ -87,7 +87,7 @@ export class StakingProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in redelegate: " + e); + elizaLogger.error(`Error in redelegate: ${e}`); throw e; } } @@ -122,7 +122,7 @@ export class StakingProvider { ); return tx; } catch (e) { - elizaLogger.error("Error in cancelUnbondingDelegation: " + e); + elizaLogger.error(`Error in cancelUnbondingDelegation: ${e}`); throw e; } } diff --git a/packages/plugin-omniflix/src/providers/wallet.ts b/packages/plugin-omniflix/src/providers/wallet.ts index 6168e717c75..62e999437ea 100644 --- a/packages/plugin-omniflix/src/providers/wallet.ts +++ b/packages/plugin-omniflix/src/providers/wallet.ts @@ -82,12 +82,14 @@ export const walletProvider: Provider = { "omniflix" ); elizaLogger.info("Wallet initialized with private key"); - } else { + } else if (mnemonic) { // Use mnemonic - wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic!, { + wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "omniflix", }); elizaLogger.info("Wallet initialized with mnemonic"); + } else { + throw new Error("Neither private key nor mnemonic available"); } const client = await SigningStargateClient.connectWithSigner( diff --git a/packages/plugin-opacity/package.json b/packages/plugin-opacity/package.json index 60866df5141..c15b91872ea 100644 --- a/packages/plugin-opacity/package.json +++ b/packages/plugin-opacity/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-opacity", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "description": "Opacity Protocol adapter for ElizaOS", "main": "dist/index.js", "type": "module", diff --git a/packages/plugin-opacity/src/index.ts b/packages/plugin-opacity/src/index.ts index 777f56b93a1..ab1dccdb0cc 100644 --- a/packages/plugin-opacity/src/index.ts +++ b/packages/plugin-opacity/src/index.ts @@ -41,8 +41,8 @@ export class OpacityAdapter implements IVerifiableInferenceAdapter { }); // Get provider-specific endpoint - let endpoint; - let authHeader; + let endpoint: string; + let authHeader: string; switch (provider) { case ModelProviderName.OPENAI: @@ -54,7 +54,7 @@ export class OpacityAdapter implements IVerifiableInferenceAdapter { } try { - let body; + let body: Record; // Handle different API formats switch (provider) { case ModelProviderName.OPENAI: diff --git a/packages/plugin-opacity/src/utils/api.ts b/packages/plugin-opacity/src/utils/api.ts index 4972a62d59e..160562330e5 100644 --- a/packages/plugin-opacity/src/utils/api.ts +++ b/packages/plugin-opacity/src/utils/api.ts @@ -1,6 +1,6 @@ -export async function verifyProof(baseUrl: string, textID: string, proof: string) { +export async function verifyProof(baseUrl: string, _textID: string, proof: string) { const response = await fetch(`${baseUrl}/api/verify`, { headers: { "Content-Type": "application/json", diff --git a/packages/plugin-open-weather/package.json b/packages/plugin-open-weather/package.json index 0a78694aca8..4cb024cde3e 100644 --- a/packages/plugin-open-weather/package.json +++ b/packages/plugin-open-weather/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-open-weather", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-open-weather/src/actions/getCurrentWeather.ts b/packages/plugin-open-weather/src/actions/getCurrentWeather.ts index f2921a1c315..4253ce76588 100644 --- a/packages/plugin-open-weather/src/actions/getCurrentWeather.ts +++ b/packages/plugin-open-weather/src/actions/getCurrentWeather.ts @@ -40,14 +40,15 @@ export const getCurrentWeatherAction: Action = { callback: HandlerCallback ) => { // Initialize/update state - if (!state) { - state = (await runtime.composeState(message)) as State; + let currentState: State = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); // state -> context const weatherContext = composeContext({ - state, + state: currentState, template: getCurrentWeatherTemplate, }); diff --git a/packages/plugin-openai/package.json b/packages/plugin-openai/package.json index 3b4d4b45b8b..27984a38443 100644 --- a/packages/plugin-openai/package.json +++ b/packages/plugin-openai/package.json @@ -1,7 +1,6 @@ - { "name": "@elizaos/plugin-openai", - "version": "0.1.0", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-openai/src/actions/action.ts b/packages/plugin-openai/src/actions/action.ts index 4ef92477d31..39a00f5c188 100644 --- a/packages/plugin-openai/src/actions/action.ts +++ b/packages/plugin-openai/src/actions/action.ts @@ -39,9 +39,27 @@ export function validateApiKey(): string { * @returns The response data. * @throws Will throw an error for request failures or rate limits. */ + +export interface OpenAIRequestData { + model: string; + prompt: string; + max_tokens: number; + temperature: number; + [key: string]: unknown; +} + +export interface OpenAIEditRequestData { + model: string; + input: string; + instruction: string; + max_tokens: number; + temperature: number; + [key: string]: unknown; +} + export async function callOpenAiApi( url: string, - data: any, + data: OpenAIRequestData | OpenAIEditRequestData, apiKey: string, ): Promise { try { @@ -55,7 +73,7 @@ export async function callOpenAiApi( const response = await axios.post(url, data, config); return response.data; } catch (error) { - console.error("Error communicating with OpenAI API:", error.message); + console.error("Error communicating with OpenAI API:", error instanceof Error ? error.message : String(error)); if (axios.isAxiosError(error)) { if (error.response?.status === 429) { throw new Error("Rate limit exceeded. Please try again later."); @@ -73,12 +91,13 @@ export async function callOpenAiApi( * @param temperature - The sampling temperature. * @returns The request payload for OpenAI completions. */ + export function buildRequestData( prompt: string, model: string = DEFAULT_MODEL, maxTokens: number = DEFAULT_MAX_TOKENS, temperature: number = DEFAULT_TEMPERATURE, -): Record { +): OpenAIRequestData { return { model, prompt, diff --git a/packages/plugin-openai/src/actions/analyzeSentimentAction.ts b/packages/plugin-openai/src/actions/analyzeSentimentAction.ts index cb922da5100..08aa1f94048 100644 --- a/packages/plugin-openai/src/actions/analyzeSentimentAction.ts +++ b/packages/plugin-openai/src/actions/analyzeSentimentAction.ts @@ -9,21 +9,22 @@ import { export const analyzeSentimentAction: Action = { name: "analyzeSentiment", description: "Analyze sentiment using OpenAI", - async handler(runtime, message, state) { + similes: [], // Added missing required property + async handler(_runtime, message, _state) { const prompt = `Analyze the sentiment of the following text: "${message.content.text?.trim() || ""}"`; validatePrompt(prompt); const apiKey = validateApiKey(); const requestData = buildRequestData(prompt); - const response = await callOpenAiApi( + const response = await callOpenAiApi<{ choices: Array<{ text: string }> }>( "https://api.openai.com/v1/completions", requestData, apiKey, ); return response.choices[0].text.trim(); }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], diff --git a/packages/plugin-openai/src/actions/editTextAction.ts b/packages/plugin-openai/src/actions/editTextAction.ts index 5976e55e041..b74edb3005a 100644 --- a/packages/plugin-openai/src/actions/editTextAction.ts +++ b/packages/plugin-openai/src/actions/editTextAction.ts @@ -3,15 +3,19 @@ import { validatePrompt, validateApiKey, callOpenAiApi, - buildRequestData, } from "./action"; +interface EditResponse { + choices: Array<{ text: string }>; +} + export const editTextAction: Action = { name: "editText", description: "Edit text using OpenAI", - async handler(runtime, message, state) { - const input = message.content.input?.trim() || ""; - const instruction = message.content.instruction?.trim() || ""; + similes: [], + async handler(_runtime, message, _state) { + const input = (message.content.input as string)?.trim() || ""; + const instruction = (message.content.instruction as string)?.trim() || ""; validatePrompt(input); validatePrompt(instruction); @@ -20,16 +24,18 @@ export const editTextAction: Action = { model: "text-davinci-edit-001", input, instruction, + max_tokens: 1000, + temperature: 0.7, }; - const response = await callOpenAiApi( + const response = await callOpenAiApi( "https://api.openai.com/v1/edits", requestData, apiKey, ); return response.choices[0].text.trim(); }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], diff --git a/packages/plugin-openai/src/actions/generateEmbeddingAction.ts b/packages/plugin-openai/src/actions/generateEmbeddingAction.ts index 7990106c510..2ade5f3c471 100644 --- a/packages/plugin-openai/src/actions/generateEmbeddingAction.ts +++ b/packages/plugin-openai/src/actions/generateEmbeddingAction.ts @@ -9,24 +9,25 @@ import { export const generateEmbeddingAction: Action = { name: "generateEmbedding", description: "Generate embeddings using OpenAI", - async handler(runtime, message, state) { - const input = message.content.text?.trim() || ""; + similes: [], + async handler(_runtime, message, _state) { + const input = (message.content.text as string)?.trim() || ""; validatePrompt(input); const apiKey = validateApiKey(); - const requestData = { - model: "text-embedding-ada-002", - input, - }; + const requestData = buildRequestData( + "text-embedding-ada-002", + input + ); const response = await callOpenAiApi( "https://api.openai.com/v1/embeddings", requestData, apiKey, - ); - return response.data.map((item) => item.embedding); + ) as { data: Array<{ embedding: number[] }> }; + return response.data.map((item: { embedding: number[] }) => item.embedding); }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], diff --git a/packages/plugin-openai/src/actions/generateTextAction.ts b/packages/plugin-openai/src/actions/generateTextAction.ts index 31e50eb9b1d..3b4e35cba63 100644 --- a/packages/plugin-openai/src/actions/generateTextAction.ts +++ b/packages/plugin-openai/src/actions/generateTextAction.ts @@ -9,26 +9,27 @@ import { export const generateTextAction: Action = { name: "generateText", description: "Generate text using OpenAI", - async handler(runtime, message, state) { - const prompt = message.content.text?.trim() || ""; + similes: [], + async handler(_runtime, message, _state) { + const prompt = (message.content.text as string)?.trim() || ""; validatePrompt(prompt); const apiKey = validateApiKey(); const requestData = buildRequestData( + String(message.content.model), prompt, - message.content.model, - message.content.maxTokens, - message.content.temperature, + typeof message.content.maxTokens === 'number' ? message.content.maxTokens : undefined, + typeof message.content.temperature === 'number' ? message.content.temperature : undefined, ); const response = await callOpenAiApi( "https://api.openai.com/v1/completions", requestData, apiKey, - ); + ) as { choices: Array<{ text: string }> }; return { text: response.choices[0].text.trim() }; }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], diff --git a/packages/plugin-openai/src/actions/moderateContentAction.ts b/packages/plugin-openai/src/actions/moderateContentAction.ts index 07d3aacd8cf..c2085ee4e07 100644 --- a/packages/plugin-openai/src/actions/moderateContentAction.ts +++ b/packages/plugin-openai/src/actions/moderateContentAction.ts @@ -1,25 +1,30 @@ import type { Action } from "@elizaos/core"; -import { validatePrompt, validateApiKey, callOpenAiApi } from "./action"; +import { validatePrompt, validateApiKey, callOpenAiApi, buildRequestData } from "./action"; export const moderateContentAction: Action = { name: "moderateContent", description: "Moderate content using OpenAI", - async handler(runtime, message, state) { - const input = message.content.text?.trim() || ""; + similes: [], + async handler(_runtime, message, _state) { + const input = (message.content.text as string)?.trim() || ""; validatePrompt(input); const apiKey = validateApiKey(); - const requestData = { input }; + const requestData = buildRequestData( + "text-moderation-latest", + input + ); const response = await callOpenAiApi( "https://api.openai.com/v1/moderations", requestData, apiKey, - ); + ) as { results: Array<{ flagged: boolean; categories: Record; category_scores: Record }> }; return response.results; }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], }; + \ No newline at end of file diff --git a/packages/plugin-openai/src/actions/transcribeAudioAction.ts b/packages/plugin-openai/src/actions/transcribeAudioAction.ts index 101f44438d0..a2eeb499ec6 100644 --- a/packages/plugin-openai/src/actions/transcribeAudioAction.ts +++ b/packages/plugin-openai/src/actions/transcribeAudioAction.ts @@ -1,10 +1,16 @@ import type { Action } from "@elizaos/core"; -import { validateApiKey, callOpenAiApi } from "./action"; +import { + validateApiKey, + callOpenAiApi, + buildRequestData, + type OpenAIRequestData +} from "./action"; export const transcribeAudioAction: Action = { name: "transcribeAudio", description: "Transcribe audio using OpenAI Whisper", - async handler(runtime, message, state) { + similes: [], + async handler(_runtime, message, _state) { const file = message.content.file; if (!file) { throw new Error("No audio file provided"); @@ -12,17 +18,21 @@ export const transcribeAudioAction: Action = { const apiKey = validateApiKey(); const formData = new FormData(); - formData.append("file", file); + formData.append("file", file as Blob); formData.append("model", "whisper-1"); + interface TranscriptionResponse { + text: string; + } + const response = await callOpenAiApi( "https://api.openai.com/v1/audio/transcriptions", - formData, + formData as unknown as OpenAIRequestData, apiKey, - ); + ) as TranscriptionResponse; return response.text; }, - validate: async (runtime, message) => { + validate: async (runtime, _message) => { return !!runtime.getSetting("OPENAI_API_KEY"); }, examples: [], diff --git a/packages/plugin-openai/src/types.ts b/packages/plugin-openai/src/types.ts index c09381d164e..cfa07191eba 100644 --- a/packages/plugin-openai/src/types.ts +++ b/packages/plugin-openai/src/types.ts @@ -14,7 +14,12 @@ export interface OpenAITextResponse { choices: Array<{ text: string; index: number; - logprobs: null | any; + logprobs: null | { + tokens: string[]; + token_logprobs: number[]; + top_logprobs: Record[]; + text_offset: number[]; + }; finish_reason: string; }>; usage: { @@ -59,7 +64,12 @@ export interface OpenAISentimentAnalysisResponse { choices: Array<{ text: string; index: number; - logprobs: null | any; + logprobs: null | { + tokens: string[]; + token_logprobs: number[]; + top_logprobs: Record[]; + text_offset: number[]; + }; finish_reason: string; }>; } diff --git a/packages/plugin-primus/package.json b/packages/plugin-primus/package.json index 3825bf049c4..108206623bd 100644 --- a/packages/plugin-primus/package.json +++ b/packages/plugin-primus/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-primus", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-primus/src/actions/postTweetAction.ts b/packages/plugin-primus/src/actions/postTweetAction.ts index c2803974e4b..8c2a5c28f97 100644 --- a/packages/plugin-primus/src/actions/postTweetAction.ts +++ b/packages/plugin-primus/src/actions/postTweetAction.ts @@ -115,11 +115,11 @@ export const postTweetAction: Action = { similes: ["TWEET", "POST", "SEND_TWEET"], validate: async ( // eslint-disable-next-line - runtime: IAgentRuntime, + _runtime: IAgentRuntime, // eslint-disable-next-line - message: Memory, + _message: Memory, // eslint-disable-next-line - state?: State + _state?: State ) => { const hasCredentials = !!process.env.TWITTER_USERNAME && !!process.env.TWITTER_PASSWORD; diff --git a/packages/plugin-primus/src/adapter/primusAdapter.ts b/packages/plugin-primus/src/adapter/primusAdapter.ts index 06b1625c900..5392df93dc5 100644 --- a/packages/plugin-primus/src/adapter/primusAdapter.ts +++ b/packages/plugin-primus/src/adapter/primusAdapter.ts @@ -41,9 +41,9 @@ export class PrimusAdapter implements IVerifiableInferenceAdapter { } // Get provider-specific endpoint, auth header and response json path - let endpoint; - let authHeader; - let responseParsePath; + let endpoint: string; + let authHeader: string; + let responseParsePath: string; switch (provider) { case ModelProviderName.OPENAI: @@ -70,7 +70,7 @@ export class PrimusAdapter implements IVerifiableInferenceAdapter { models[provider].model[modelClass].temperature, }; const attestation = await generateProof(endpoint,"POST",headers,JSON.stringify(body),responseParsePath); - elizaLogger.log(`model attestation:`, attestation); + elizaLogger.log("model attestation:", attestation); const responseData = JSON.parse(attestation.data); const text = JSON.parse(responseData.content); diff --git a/packages/plugin-primus/src/providers/tokenPriceProvider.ts b/packages/plugin-primus/src/providers/tokenPriceProvider.ts index 3d6f2f23a93..aedd74a2e3f 100644 --- a/packages/plugin-primus/src/providers/tokenPriceProvider.ts +++ b/packages/plugin-primus/src/providers/tokenPriceProvider.ts @@ -1,9 +1,14 @@ import {elizaLogger, type IAgentRuntime, type Memory, type Provider, type State} from "@elizaos/core"; import {generateProof, verifyProof} from "../util/primusUtil.ts"; +interface PrimusAttestation { + data: string; + [key: string]: unknown; +} + const tokenPriceProvider: Provider = { // eslint-disable-next-line - get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { + get: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => { //get btc price const url = `${process.env.BINANCE_API_URL||'https://api.binance.com'}/api/v3/ticker/price?symbol=${process.env.BINANCE_SYMBOL || 'BTCUSDT'}`; const method = 'GET'; @@ -17,7 +22,8 @@ const tokenPriceProvider: Provider = { } elizaLogger.info('price attestation:',attestation); try{ - const responseData = JSON.parse((attestation as any).data); + const responseData = JSON.parse((attestation as PrimusAttestation).data); + // const responseData = JSON.parse((attestation as any).data); const price = responseData.content; return ` Get BTC price from Binance: diff --git a/packages/plugin-primus/src/providers/tweetProvider.ts b/packages/plugin-primus/src/providers/tweetProvider.ts index adf2a998562..3a7b86f0802 100644 --- a/packages/plugin-primus/src/providers/tweetProvider.ts +++ b/packages/plugin-primus/src/providers/tweetProvider.ts @@ -3,7 +3,7 @@ import {TwitterScraper} from "../util/twitterScraper.ts"; const tweetProvider: Provider = { // eslint-disable-next-line - get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { + get: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => { const scraperWithPrimus = new TwitterScraper(); try { elizaLogger.info("Attempting Twitter login"); diff --git a/packages/plugin-pyth-data/package.json b/packages/plugin-pyth-data/package.json index d1f436f6d7d..22260ac7b3c 100644 --- a/packages/plugin-pyth-data/package.json +++ b/packages/plugin-pyth-data/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-pyth-data", - "version": "1.0.0", + "version": "0.1.9", "description": "Pyth Network data plugin for Eliza", "type": "module", "main": "dist/index.js", diff --git a/packages/plugin-quai/package.json b/packages/plugin-quai/package.json index a75e3fc24f7..49d95da1ef1 100644 --- a/packages/plugin-quai/package.json +++ b/packages/plugin-quai/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-quai", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-quai/src/actions/transfer.ts b/packages/plugin-quai/src/actions/transfer.ts index 3911a8a5c20..cbda4d75465 100644 --- a/packages/plugin-quai/src/actions/transfer.ts +++ b/packages/plugin-quai/src/actions/transfer.ts @@ -8,6 +8,7 @@ import { type Action, composeContext, generateObject, + elizaLogger, } from "@elizaos/core"; import { getQuaiAccount, @@ -46,7 +47,7 @@ export default { "PAY_ON_QUAI", ], // eslint-disable-next-line - validate: async (runtime: IAgentRuntime, message: Memory) => { + validate: async (runtime: IAgentRuntime, _message: Memory) => { return validateSettings(runtime); }, description: @@ -58,18 +59,16 @@ export default { _options: { [key: string]: unknown }, callback?: HandlerCallback ): Promise => { - console.log("Starting TRANSFER_TOKEN handler..."); + elizaLogger.log("Starting TRANSFER_TOKEN handler..."); // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); - } + const currentState = !state + ? await runtime.composeState(message) + : await runtime.updateRecentMessageState(state); // Compose transfer context const transferContext = composeContext({ - state, + state: currentState, template: transferTemplate, }); @@ -80,11 +79,11 @@ export default { modelClass: ModelClass.MEDIUM, }); - console.log("Transfer content:", content); + elizaLogger.debug("Transfer content:", content); // Validate transfer content if (!isTransferContent(content)) { - console.error("Invalid content for TRANSFER_TOKEN action."); + elizaLogger.error("Invalid content for TRANSFER_TOKEN action."); if (callback) { callback({ text: "Not enough information to transfer tokens. Please respond with token address, recipient, and amount.", @@ -96,44 +95,38 @@ export default { try { const account = getQuaiAccount(runtime); - const amount = formatUnits(content.amount, "wei"); - - var txObj: TransactionRequest = {}; - if (content.tokenAddress) { - // TODO: transfer QRC20s - } else { - txObj = { - to: content.recipient, + const amount = formatUnits(content.amount, "wei"); + + // Declare transaction object at function scope + const txObj: TransactionRequest = content.tokenAddress + ? {} // TODO: transfer QRC20s + : { + to: content.recipient, value: amount, from: account.address, }; - console.log( - "Transferring", - amount, - "QUAI", - "to", - content.recipient - ); - } + elizaLogger.log( + "Transferring", + amount, + "QUAI", + "to", + content.recipient + ); - const tx = await account.sendTransaction(txObj) + const tx = await account.sendTransaction(txObj); - console.log( - "Transfer completed successfully! tx: " + tx.hash - ); + elizaLogger.success(`Transfer completed successfully! tx: ${tx.hash}`); if (callback) { callback({ - text: - "Transfer completed successfully! tx: " + - tx.hash, + text: `Transfer completed successfully! tx: ${tx.hash}`, content: {}, }); } return true; } catch (error) { - console.error("Error during token transfer:", error); + elizaLogger.error("Error during token transfer:", error); if (callback) { callback({ text: `Error transferring tokens: ${error.message}`, diff --git a/packages/plugin-quai/src/utils/index.ts b/packages/plugin-quai/src/utils/index.ts index 78f389745ac..6c2769cc633 100644 --- a/packages/plugin-quai/src/utils/index.ts +++ b/packages/plugin-quai/src/utils/index.ts @@ -35,27 +35,62 @@ export interface TransferContent extends Content { } export function isTransferContent( - content: any + content: unknown ): content is TransferContent { + if (!content || typeof content !== 'object') { + return false; + } + + const contentObj = content as { tokenAddress?: unknown; recipient?: unknown; amount?: unknown }; + // Validate types const validTypes = - (content.tokenAddress === null || typeof content.tokenAddress === "string") && - typeof content.recipient === "string" && - (typeof content.amount === "string" || - typeof content.amount === "number"); + (contentObj.tokenAddress === null || typeof contentObj.tokenAddress === "string") && + typeof contentObj.recipient === "string" && + (typeof contentObj.amount === "string" || + typeof contentObj.amount === "number"); if (!validTypes) { return false; } // Validate addresses (20-bytes with 0x prefix) + const recipient = contentObj.recipient as string; + const tokenAddress = contentObj.tokenAddress as string | null; + const validRecipient = - content.recipient.startsWith("0x") && - content.recipient.length === 42; + recipient.startsWith("0x") && + recipient.length === 42; // If tokenAddress is provided, validate it - const validTokenAddress = content.tokenAddress === null || - (content.tokenAddress.startsWith("0x") && - content.tokenAddress.length === 42); + const validTokenAddress = tokenAddress === null || + (tokenAddress.startsWith("0x") && + tokenAddress.length === 42); return validRecipient && validTokenAddress; } + +// export function isTransferContent( +// content: any +// ): content is TransferContent { +// // Validate types +// const validTypes = +// (content.tokenAddress === null || typeof content.tokenAddress === "string") && +// typeof content.recipient === "string" && +// (typeof content.amount === "string" || +// typeof content.amount === "number"); +// if (!validTypes) { +// return false; +// } + +// // Validate addresses (20-bytes with 0x prefix) +// const validRecipient = +// content.recipient.startsWith("0x") && +// content.recipient.length === 42; + +// // If tokenAddress is provided, validate it +// const validTokenAddress = content.tokenAddress === null || +// (content.tokenAddress.startsWith("0x") && +// content.tokenAddress.length === 42); + +// return validRecipient && validTokenAddress; + diff --git a/packages/plugin-quick-intel/package.json b/packages/plugin-quick-intel/package.json index 8b0a61f61c4..915f8160aa7 100644 --- a/packages/plugin-quick-intel/package.json +++ b/packages/plugin-quick-intel/package.json @@ -1,26 +1,26 @@ { "name": "@elizaos/plugin-quick-intel", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", "exports": { - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts" - } + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts" + } }, "files": [ - "dist" + "dist" ], "dependencies": { - "@elizaos/core": "workspace:*", - "tsup": "8.3.5" + "@elizaos/core": "workspace:*", + "tsup": "8.3.5" }, "scripts": { - "build": "tsup --format esm --dts", - "dev": "tsup --format esm --dts --watch", - "test": "vitest", - "lint": "eslint --fix --cache ." + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch", + "test": "vitest", + "lint": "eslint --fix --cache ." } - } +} diff --git a/packages/plugin-quick-intel/src/actions/audit.ts b/packages/plugin-quick-intel/src/actions/audit.ts index feffcba188a..b6116f90a8c 100644 --- a/packages/plugin-quick-intel/src/actions/audit.ts +++ b/packages/plugin-quick-intel/src/actions/audit.ts @@ -14,6 +14,23 @@ import { import { auditTemplate } from "../templates"; import { extractTokenInfo } from "../utils/chain-detection"; +interface AuditResponse { + tokenDetails?: { + tokenName: string; + [key: string]: unknown; + }; + [key: string]: unknown; +} + +interface DexPair { + chainId: string; + [key: string]: unknown; +} + +interface DexResponse { + pairs?: DexPair[]; + otherChains?: string[]; +} class TokenAuditAction { private apiKey: string; @@ -21,7 +38,7 @@ class TokenAuditAction { this.apiKey = apiKey; } - async audit(chain: string, tokenAddress: string): Promise { + async audit(chain: string, tokenAddress: string): Promise { elizaLogger.log("Auditing token:", { chain, tokenAddress }); const myHeaders = new Headers(); myHeaders.append("X-QKNTL-KEY", this.apiKey); @@ -41,7 +58,7 @@ class TokenAuditAction { return await response.json(); } - async fetchDexData(tokenAddress: string, chain: string): Promise { + async fetchDexData(tokenAddress: string, chain: string): Promise { elizaLogger.log("Fetching DEX data:", { tokenAddress, chain }); const myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); @@ -62,13 +79,13 @@ class TokenAuditAction { } // Filter pairs for the target chain - const chainPairs = data.pairs.filter((pair: any) => + const chainPairs = data.pairs.filter((pair: DexPair) => pair.chainId.toLowerCase() === chain.toLowerCase() || pair.chainId.toLowerCase().includes(chain.toLowerCase()) ); const otherChains = data.pairs - .filter((pair: any) => pair.chainId.toLowerCase() !== chain.toLowerCase()) - .map((pair: any) => pair.chainId); + .filter((pair: DexPair) => pair.chainId.toLowerCase() !== chain.toLowerCase()) + .map((pair: DexPair) => pair.chainId) as string[]; return { pairs: chainPairs, @@ -116,14 +133,16 @@ export const auditAction: Action = { action.fetchDexData(tokenAddress, chain) ]); - state = await runtime.composeState(message, { + const newState = await runtime.composeState(message, { ...state, auditData: JSON.stringify(auditData, null, 2), marketData: auditData?.tokenDetails?.tokenName ? JSON.stringify(dexData, null, 2) : null, }); + + // Generate analysis using audit data const context = composeContext({ - state, + state: newState, template: auditTemplate }); @@ -159,7 +178,7 @@ export const auditAction: Action = { if (callback) { await callback({ - text: `An error occurred while performing the token audit. Please try again later, and ensure the address is correct, and chain is supported.`, + text: "An error occurred while performing the token audit. Please try again later, and ensure the address is correct, and chain is supported.", content: { error: "Internal server error" }, inReplyTo: message.id }); diff --git a/packages/plugin-quick-intel/src/utils/chain-detection.ts b/packages/plugin-quick-intel/src/utils/chain-detection.ts index 218f35c87ee..6dd7452d97c 100644 --- a/packages/plugin-quick-intel/src/utils/chain-detection.ts +++ b/packages/plugin-quick-intel/src/utils/chain-detection.ts @@ -96,7 +96,7 @@ function normalizeChainName(chain: string): string | null { } export function extractTokenInfo(message: string): TokenInfo { - let result: TokenInfo = { + const result: TokenInfo = { chain: null, tokenAddress: null }; diff --git a/packages/plugin-rabbi-trader/package.json b/packages/plugin-rabbi-trader/package.json index c6f3a3157e4..c1a464ad5a3 100644 --- a/packages/plugin-rabbi-trader/package.json +++ b/packages/plugin-rabbi-trader/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-rabbi-trader", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-router-nitro/package.json b/packages/plugin-router-nitro/package.json index 7868956bc35..e4fb835f642 100644 --- a/packages/plugin-router-nitro/package.json +++ b/packages/plugin-router-nitro/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-router-nitro", - "version": "0.1.8+build.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-sei/package.json b/packages/plugin-sei/package.json index 53bd09cb1f9..93d97c1e889 100644 --- a/packages/plugin-sei/package.json +++ b/packages/plugin-sei/package.json @@ -1,36 +1,36 @@ { - "name": "@elizaos/plugin-sei", - "version": "0.1.9-alpha.1", - "type": "module", - "main": "dist/index.js", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - "./package.json": "./package.json", - ".": { - "import": { - "@elizaos/source": "./src/index.ts", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "name": "@elizaos/plugin-sei", + "version": "0.1.9", + "type": "module", + "main": "dist/index.js", + "module": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "import": { + "@elizaos/source": "./src/index.ts", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + } + }, + "files": [ + "dist" + ], + "dependencies": { + "@elizaos/core": "workspace:*", + "node-cache": "5.1.2", + "tsup": "8.3.5", + "vitest": "2.1.4" + }, + "scripts": { + "build": "tsup --format esm --dts", + "lint": "eslint . --fix", + "test": "vitest run" + }, + "peerDependencies": { + "form-data": "4.0.1", + "whatwg-url": "7.1.0" } - }, - "files": [ - "dist" - ], - "dependencies": { - "@elizaos/core": "workspace:*", - "node-cache": "5.1.2", - "tsup": "8.3.5", - "vitest": "2.1.4" - }, - "scripts": { - "build": "tsup --format esm --dts", - "lint": "eslint . --fix", - "test": "vitest run" - }, - "peerDependencies": { - "form-data": "4.0.1", - "whatwg-url": "7.1.0" - } } diff --git a/packages/plugin-sei/src/actions/transfer.ts b/packages/plugin-sei/src/actions/transfer.ts index e6a307ba2c1..954d891e5f0 100644 --- a/packages/plugin-sei/src/actions/transfer.ts +++ b/packages/plugin-sei/src/actions/transfer.ts @@ -1,5 +1,6 @@ import { ByteArray, formatEther, parseEther, type Hex } from "viem"; import { + elizaLogger, Action, composeContext, generateObjectDeprecated, @@ -63,11 +64,12 @@ export class TransferAction { async transfer(params: TransferParams): Promise { const chain = this.walletProvider.getCurrentChain() - console.log( + elizaLogger.log( `Transferring: ${params.amount} tokens to (${params.toAddress} on ${chain.name})` ); + // let recipientAddress + let recipientAddress: `0x${string}`; // Ensure it's a valid Ethereum address - let recipientAddress if (params.toAddress.startsWith("sei")) { const publicClient = this.walletProvider.getEvmPublicClient(); const evmAddress = await publicClient.readContract({ @@ -75,19 +77,25 @@ export class TransferAction { abi: ADDRESS_PRECOMPILE_ABI, functionName: 'getEvmAddr', args: [params.toAddress], - }) + }); if (!evmAddress || !evmAddress.startsWith("0x")) { throw new Error(`ERROR: Recipient does not have valid EVM address. Got: ${evmAddress}`); } - console.log(`Translated address ${params.toAddress} to EVM address ${evmAddress}`) - recipientAddress = evmAddress + elizaLogger.log(`Translated address ${params.toAddress} to EVM address ${evmAddress}`); + recipientAddress = evmAddress as `0x${string}`; // Ensure it's a valid Ethereum address } else { - recipientAddress = params.toAddress + if (!params.toAddress.startsWith("0x")) { + throw new Error(`ERROR: Recipient address must start with '0x'. Got: ${params.toAddress}`); + } + recipientAddress = params.toAddress as `0x${string}`; // Ensure it's a valid Ethereum address } const walletClient = this.walletProvider.getEvmWalletClient(); + if (!walletClient.account) { + throw new Error("Wallet client account is undefined"); + } try { const hash = await walletClient.sendTransaction({ @@ -95,27 +103,43 @@ export class TransferAction { to: recipientAddress, value: parseEther(params.amount), data: params.data as Hex, + kzg: { - blobToKzgCommitment: function (_: ByteArray): ByteArray { + blobToKzgCommitment: (_: ByteArray): ByteArray => { throw new Error("Function not implemented."); }, - computeBlobKzgProof: function ( + computeBlobKzgProof: ( _blob: ByteArray, _commitment: ByteArray - ): ByteArray { + ): ByteArray => { throw new Error("Function not implemented."); }, }, + maxFeePerBlobGas: BigInt(0), // Add required property + blobs: [], // Add required property chain: undefined, }); + // kzg: { + // blobToKzgCommitment: function (_: ByteArray): ByteArray { + // throw new Error("Function not implemented."); + // }, + // computeBlobKzgProof: function ( + // _blob: ByteArray, + // _commitment: ByteArray + // ): ByteArray { + // throw new Error("Function not implemented."); + // }, + // }, + return { hash, - from: walletClient.account.address, + from: walletClient.account.address, // Now guaranteed to be defined to: params.toAddress, value: parseEther(params.amount), data: params.data as Hex, }; + } catch (error) { throw new Error(`Transfer failed: ${error.message}`); } @@ -125,7 +149,7 @@ export class TransferAction { const buildTransferDetails = async ( state: State, runtime: IAgentRuntime, - wp: WalletProvider + _wp: WalletProvider ): Promise => { const context = composeContext({ state, @@ -148,25 +172,36 @@ export const transferAction: Action = { runtime: IAgentRuntime, message: Memory, state: State, - _options: any, + _options: Record, // Replace `any` with a safer type callback?: HandlerCallback ) => { - if (!state) { - state = (await runtime.composeState(message)) as State; + + // Create a new variable to avoid reassigning the parameter + let updatedState = state; + + if (!updatedState) { + updatedState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + updatedState = await runtime.updateRecentMessageState(updatedState); } - console.log("Transfer action handler called"); + elizaLogger.debug("Transfer action handler called"); const walletProvider = await initWalletProvider(runtime); const action = new TransferAction(walletProvider); // Compose transfer context const paramOptions = await buildTransferDetails( - state, + updatedState, // Use the new variable runtime, walletProvider ); + + // // Compose transfer context + // const paramOptions = await buildTransferDetails( + // state, + // runtime, + // walletProvider + // ); try { const transferResp = await action.transfer(paramOptions); @@ -184,7 +219,7 @@ export const transferAction: Action = { } return true; } catch (error) { - console.error("Error during token transfer:", error); + elizaLogger.error("Error during token transfer:", error); if (callback) { callback({ text: `Error transferring tokens: ${error.message}`, @@ -217,4 +252,4 @@ export const transferAction: Action = { ], ], similes: ["SEND_TOKENS", "TOKEN_TRANSFER", "MOVE_TOKENS", "SEND_SEI"], -}; \ No newline at end of file +}; diff --git a/packages/plugin-sei/src/environment.ts b/packages/plugin-sei/src/environment.ts index 81dd39d8682..02e8b627b7a 100644 --- a/packages/plugin-sei/src/environment.ts +++ b/packages/plugin-sei/src/environment.ts @@ -1,4 +1,4 @@ -import { IAgentRuntime } from "@elizaos/core"; +import type { IAgentRuntime } from "@elizaos/core"; import { z } from "zod"; export const seiEnvSchema = z.object({ diff --git a/packages/plugin-sei/src/index.ts b/packages/plugin-sei/src/index.ts index 1656cc4615f..ca7ac5a5a92 100644 --- a/packages/plugin-sei/src/index.ts +++ b/packages/plugin-sei/src/index.ts @@ -1,4 +1,4 @@ -import { Plugin } from "@elizaos/core"; +import type { Plugin } from "@elizaos/core"; import { evmWalletProvider } from "./providers/wallet.ts"; import { transferAction } from "./actions/transfer"; diff --git a/packages/plugin-sei/src/providers/wallet.ts b/packages/plugin-sei/src/providers/wallet.ts index 82ad8f3edc5..25f7de32137 100644 --- a/packages/plugin-sei/src/providers/wallet.ts +++ b/packages/plugin-sei/src/providers/wallet.ts @@ -25,7 +25,7 @@ import type { } from "viem"; import * as viemChains from "viem/chains"; import NodeCache from "node-cache"; -import * as path from "path"; +import * as path from "node:path"; import type { ChainWithName } from "../types"; @@ -37,7 +37,8 @@ export const seiChains = { export class WalletProvider { private cache: NodeCache; - private cacheKey: string = "evm/wallet"; + // private cacheKey: string = "evm/wallet"; + private cacheKey = "evm/wallet"; // Remove explicit type annotation private currentChain: ChainWithName; private CACHE_EXPIRY_SEC = 5; account: PrivateKeyAccount; @@ -97,12 +98,11 @@ export class WalletProvider { } async getWalletBalance(): Promise { - const cacheKey = "seiWalletBalance_" + this.currentChain.name; + const cacheKey = `seiWalletBalance_${this.currentChain.name}`; // Fix: Use template literal const cachedData = await this.getCachedData(cacheKey); if (cachedData) { elizaLogger.log( - "Returning cached wallet balance for sei chain: " + - this.currentChain.name + `Returning cached wallet balance for sei chain: ${this.currentChain.name}` // Fix: Use template literal ); return cachedData; } @@ -129,8 +129,15 @@ export class WalletProvider { const cached = await this.cacheManager.get( path.join(this.cacheKey, key) ); - return cached; + return cached ?? null; // Fix: Return null if cached is undefined } + + // private async readFromCache(key: string): Promise { + // const cached = await this.cacheManager.get( + // path.join(this.cacheKey, key) + // ); + // return cached; + // } private async writeToCache(key: string, data: T): Promise { await this.cacheManager.set(path.join(this.cacheKey, key), data, { @@ -212,28 +219,50 @@ export class WalletProvider { return seiChain; } } - const genChainFromRuntime = ( runtime: IAgentRuntime ): ChainWithName => { const sei_network = runtime.getSetting("SEI_NETWORK"); - const validChains = Object.keys(seiChains) + if (typeof sei_network !== "string") { // Fix: Ensure sei_network is a string + throw new Error("SEI_NETWORK must be a string"); + } + + const validChains = Object.keys(seiChains); if (!validChains.includes(sei_network)) { - throw new Error("Invalid SEI_NETWORK " + sei_network + " Must be one of " + validChains.join(", ")); + throw new Error(`Invalid SEI_NETWORK ${sei_network}. Must be one of ${validChains.join(", ")}`); } - let chain = seiChains[sei_network] + let chain = seiChains[sei_network]; const rpcurl = runtime.getSetting("SEI_RPC_URL"); - if (rpcurl) { - chain = WalletProvider.genSeiChainFromName( - sei_network, - rpcurl - ); + if (typeof rpcurl === "string") { // Fix: Ensure rpcurl is a string + chain = WalletProvider.genSeiChainFromName(sei_network, rpcurl); } - return {name: sei_network, chain: chain}; + return { name: sei_network, chain: chain }; // Fix: Ensure name is always a string }; +// const genChainFromRuntime = ( +// runtime: IAgentRuntime +// ): ChainWithName => { +// const sei_network = runtime.getSetting("SEI_NETWORK"); +// const validChains = Object.keys(seiChains) +// if (!validChains.includes(sei_network)) { +// // throw new Error("Invalid SEI_NETWORK " + sei_network + " Must be one of " + validChains.join(", ")); +// throw new Error(`Invalid SEI_NETWORK ${sei_network}. Must be one of ${validChains.join(", ")}`); +// } + +// let chain = seiChains[sei_network] +// const rpcurl = runtime.getSetting("SEI_RPC_URL"); +// if (rpcurl) { +// chain = WalletProvider.genSeiChainFromName( +// sei_network, +// rpcurl +// ); +// } + +// return {name: sei_network, chain: chain}; +// }; + export const initWalletProvider = async (runtime: IAgentRuntime) => { const chainData = genChainFromRuntime(runtime) diff --git a/packages/plugin-sgx/package.json b/packages/plugin-sgx/package.json index 5695f48155a..df77362d832 100644 --- a/packages/plugin-sgx/package.json +++ b/packages/plugin-sgx/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-sgx", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-sgx/src/providers/sgxAttestationProvider.ts b/packages/plugin-sgx/src/providers/sgxAttestationProvider.ts index 1e8852d62c6..e00db7c296e 100644 --- a/packages/plugin-sgx/src/providers/sgxAttestationProvider.ts +++ b/packages/plugin-sgx/src/providers/sgxAttestationProvider.ts @@ -1,7 +1,7 @@ import type { IAgentRuntime, Memory, Provider, State } from "@elizaos/core"; import type { SgxAttestation } from "../types/attestation"; -import { promises as fs } from 'fs'; -import { createHash } from 'crypto'; +import { promises as fs } from 'node:fs'; // Fix: Use node: protocol +import { createHash } from 'node:crypto'; // Fix: Use node: protocol // Function to calculate SHA-256 and return a Buffer (32 bytes) function calculateSHA256(input: string): Buffer { @@ -19,7 +19,8 @@ class SgxAttestationProvider { private readonly USER_REPORT_DATA_PATH: string = "/dev/attestation/user_report_data"; private readonly QUOTE_PATH: string = "/dev/attestation/quote"; - constructor() {} + // Remove unnecessary constructor + // constructor() {} async generateAttestation( reportData: string @@ -76,7 +77,8 @@ class SgxAttestationProvider { throw new Error("quote without EOF"); } - return '0x' + quoteData.subarray(0, realLen + 1).toString('hex'); + //return '0x' + quoteData.subarray(0, realLen + 1).toString('hex'); + return `0x${quoteData.subarray(0, realLen + 1).toString('hex')}`; // Fix: Use template literal } } diff --git a/packages/plugin-solana-agent-kit/package.json b/packages/plugin-solana-agent-kit/package.json index 922c1936524..ae64d6e4c90 100644 --- a/packages/plugin-solana-agent-kit/package.json +++ b/packages/plugin-solana-agent-kit/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-solana-agent-kit", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", @@ -30,4 +30,4 @@ "form-data": "4.0.1", "whatwg-url": "7.1.0" } -} \ No newline at end of file +} diff --git a/packages/plugin-solana-v2/package.json b/packages/plugin-solana-v2/package.json index acd99bfd602..e07925e430d 100644 --- a/packages/plugin-solana-v2/package.json +++ b/packages/plugin-solana-v2/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-solana-v2", - "version": "0.1.7-alpha.2", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", @@ -21,10 +21,10 @@ "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch" - }, + }, "devDependencies": { "@types/node": "^22.8.7", "tsup": "8.3.5", "vitest": "2.1.4" } -} \ No newline at end of file +} diff --git a/packages/plugin-solana/package.json b/packages/plugin-solana/package.json index d0f87fc8da8..6c62070b91d 100644 --- a/packages/plugin-solana/package.json +++ b/packages/plugin-solana/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-solana", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", @@ -43,4 +43,4 @@ "form-data": "4.0.1", "whatwg-url": "7.1.0" } -} \ No newline at end of file +} diff --git a/packages/plugin-spheron/package.json b/packages/plugin-spheron/package.json index 5b99b8b65f7..21c93412835 100644 --- a/packages/plugin-spheron/package.json +++ b/packages/plugin-spheron/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-spheron", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "description": "Spheron Protocol Plugin for Eliza", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/plugin-squid-router/package.json b/packages/plugin-squid-router/package.json index fb63a57f73d..75772d8add2 100644 --- a/packages/plugin-squid-router/package.json +++ b/packages/plugin-squid-router/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-squid-router", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-stargaze/package.json b/packages/plugin-stargaze/package.json index 6636bcb3edb..589e95d5712 100644 --- a/packages/plugin-stargaze/package.json +++ b/packages/plugin-stargaze/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-stargaze", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-starknet/package.json b/packages/plugin-starknet/package.json index d043a872dae..115f1609b1a 100644 --- a/packages/plugin-starknet/package.json +++ b/packages/plugin-starknet/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-starknet", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-starknet/src/actions/subdomain.ts b/packages/plugin-starknet/src/actions/subdomain.ts index de92342330f..84d3a0d7eb9 100644 --- a/packages/plugin-starknet/src/actions/subdomain.ts +++ b/packages/plugin-starknet/src/actions/subdomain.ts @@ -93,16 +93,17 @@ export default { ): Promise => { elizaLogger.log("Starting CREATE_SUBDOMAIN handler..."); - // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; + // Fix: Create new variable instead of reassigning parameter + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } // Compose transfer context const transferContext = composeContext({ - state, + state: currentState, template: transferTemplate, }); @@ -146,13 +147,11 @@ export default { const tx = await account.execute(transferCall); elizaLogger.success( - "Transfer completed successfully! tx: " + tx.transaction_hash + `Transfer completed successfully! tx: ${tx.transaction_hash}` ); if (callback) { callback({ - text: - "Transfer completed successfully! tx: " + - tx.transaction_hash, + text: `Transfer completed successfully! tx: ${tx.transaction_hash}`, content: {}, }); } diff --git a/packages/plugin-starknet/src/actions/swap.ts b/packages/plugin-starknet/src/actions/swap.ts index 29db4330a8e..c0b1d8c12d3 100644 --- a/packages/plugin-starknet/src/actions/swap.ts +++ b/packages/plugin-starknet/src/actions/swap.ts @@ -94,14 +94,17 @@ export const executeSwap: Action = { callback?: HandlerCallback ): Promise => { elizaLogger.log("Starting EXECUTE_STARKNET_SWAP handler..."); - if (!state) { - state = (await runtime.composeState(message)) as State; + + // Fix: Create new variable instead of reassigning parameter + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } const swapContext = composeContext({ - state, + state: currentState, template: swapTemplate, }); @@ -139,18 +142,17 @@ export const executeSwap: Action = { ); elizaLogger.log( - "Swap completed successfully! tx: " + swapResult.transactionHash + `Swap completed successfully! tx: ${swapResult.transactionHash}` ); callback?.({ text: - "Swap completed successfully! tx: " + - swapResult.transactionHash, + `Swap completed successfully! tx: ${swapResult.transactionHash}`, }); return true; } catch (error) { elizaLogger.error("Error during token swap:", error); - callback?.({ text: `Error during swap:` }); + callback?.({ text: `Error during swap: ${error.message}` }); return false; } }, diff --git a/packages/plugin-starknet/src/actions/takeOrder.ts b/packages/plugin-starknet/src/actions/takeOrder.ts index 3cbaf1421a7..d414118c5d6 100644 --- a/packages/plugin-starknet/src/actions/takeOrder.ts +++ b/packages/plugin-starknet/src/actions/takeOrder.ts @@ -9,7 +9,7 @@ import { ModelClass, settings, } from "@elizaos/core"; -import * as fs from "fs"; +import * as fs from "node:fs"; // Added node: protocol import { validateStarknetConfig } from "../environment"; interface Order { @@ -54,7 +54,9 @@ const take_order: Action = { const _text = (message.content as Content).text; const userId = message.userId; - let ticker, contractAddress; + // Fix: Declare variables separately with explicit types + let ticker: string | undefined; + let contractAddress: string | undefined; // TODO: diff --git a/packages/plugin-starknet/src/actions/transfer.ts b/packages/plugin-starknet/src/actions/transfer.ts index 534f5788ab2..523b0e98c38 100644 --- a/packages/plugin-starknet/src/actions/transfer.ts +++ b/packages/plugin-starknet/src/actions/transfer.ts @@ -122,16 +122,17 @@ export default { ): Promise => { elizaLogger.log("Starting SEND_TOKEN handler..."); - // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; + // Fix: Create new variable instead of reassigning parameter + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } // Compose transfer context const transferContext = composeContext({ - state, + state: currentState, template: transferTemplate, }); @@ -162,7 +163,7 @@ export default { const decimals = await erc20Token.decimals(); // Convert decimal amount to integer before converting to BigInt const amountInteger = Math.floor( - Number(content.amount) * Math.pow(10, Number(decimals)) + Number(content.amount) * (10 ** Number(decimals)) // Fix: Use exponentiation operator instead of Math.pow ); const amountWei = BigInt(amountInteger.toString()); const recipient = @@ -182,13 +183,11 @@ export default { const tx = await account.execute(transferCall); elizaLogger.success( - "Transfer completed successfully! tx: " + tx.transaction_hash + `Transfer completed successfully! tx: ${tx.transaction_hash}` // Fix: Use template literal ); if (callback) { callback({ - text: - "Transfer completed successfully! tx: " + - tx.transaction_hash, + text: `Transfer completed successfully! tx: ${tx.transaction_hash}`, // Fix: Use template literal content: {}, }); } diff --git a/packages/plugin-starknet/src/actions/unruggable.ts b/packages/plugin-starknet/src/actions/unruggable.ts index 2cc0d1e6645..2637ac49042 100644 --- a/packages/plugin-starknet/src/actions/unruggable.ts +++ b/packages/plugin-starknet/src/actions/unruggable.ts @@ -99,14 +99,16 @@ export const deployToken: Action = { elizaLogger.log( "Starting DEPLOY_STARKNET_UNRUGGABLE_MEME_TOKEN handler..." ); - if (!state) { - state = (await runtime.composeState(message)) as State; + // Fix: Create new variable instead of reassigning parameter + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } const deployContext = composeContext({ - state, + state: currentState, template: deployTemplate, }); @@ -116,7 +118,7 @@ export const deployToken: Action = { modelClass: ModelClass.MEDIUM, }); - elizaLogger.log("init supply." + response.initialSupply); + elizaLogger.log(`init supply. ${response.initialSupply}`); elizaLogger.log(response); if (!isDeployTokenContent(response)) { @@ -148,10 +150,7 @@ export const deployToken: Action = { ); elizaLogger.log( - "Token deployment initiated for: " + - response.name + - " at address: " + - tokenAddress + `Token deployment initiated for: ${response.name} at address: ${tokenAddress}` ); await launchOnEkubo(config, { @@ -181,11 +180,7 @@ export const deployToken: Action = { }); callback?.({ - text: - "Token Deployment completed successfully!" + - response.symbol + - " deployed in tx: " + - transactionHash, + text: `Token Deployment completed successfully! ${response.symbol} deployed in tx: ${transactionHash}`, }); return true; diff --git a/packages/plugin-starknet/src/providers/portfolioProvider.ts b/packages/plugin-starknet/src/providers/portfolioProvider.ts index ae19926a337..4ecfdab66a1 100644 --- a/packages/plugin-starknet/src/providers/portfolioProvider.ts +++ b/packages/plugin-starknet/src/providers/portfolioProvider.ts @@ -100,10 +100,11 @@ const walletProvider: Provider = { if (rawBalance === undefined) return null; const decimalBalance = - Number(rawBalance) / Math.pow(10, token.decimals); + Number(rawBalance) / (10 ** token.decimals); // Fix: Use exponentiation operator instead of Math.pow const price = tokenUsdValues[token.coingeckoId]?.usd ?? 0; const usdValue = decimalBalance * price; + if (decimalBalance === 0 && usdValue === 0) return null; return `${symbol.padEnd(9)}| ${decimalBalance diff --git a/packages/plugin-starknet/src/providers/token.ts b/packages/plugin-starknet/src/providers/token.ts index 8af8de152bd..727ed45be55 100644 --- a/packages/plugin-starknet/src/providers/token.ts +++ b/packages/plugin-starknet/src/providers/token.ts @@ -119,7 +119,7 @@ export class TokenProvider { lastError = error as Error; if (i < PROVIDER_CONFIG.MAX_RETRIES - 1) { - const delay = PROVIDER_CONFIG.RETRY_DELAY * Math.pow(2, i); + const delay = PROVIDER_CONFIG.RETRY_DELAY * (2 ** i); // Fix: Use exponentiation operator instead of Math.pow await new Promise((resolve) => setTimeout(resolve, delay)); } } @@ -156,10 +156,10 @@ export class TokenProvider { // Check if the tokenAddress exists in the TokenBalances if (items[tokenAddress]) { return tokenAddress; - } else { - console.warn(`Token with address ${tokenAddress} not found in wallet`); - return null; } + + console.warn(`Token with address ${tokenAddress} not found in wallet`); + return null; } catch (error) { console.error("Error checking token in wallet:", error); return null; @@ -401,7 +401,7 @@ export class TokenProvider { return dexData; } catch (error) { - console.error(`Error fetching DexScreener data:`, error); + console.error("Error fetching DexScreener data:", error); return { schemaVersion: "1.0.0", pairs: [], @@ -444,7 +444,7 @@ export class TokenProvider { // Return the pair with the highest liquidity and market cap return this.getHighestLiquidityPair(dexData); } catch (error) { - console.error(`Error fetching DexScreener data:`, error); + console.error("Error fetching DexScreener data:", error); return null; } } @@ -504,11 +504,11 @@ export class TokenProvider { if (averageChange > increaseThreshold) { return "increasing"; - } else if (averageChange < decreaseThreshold) { + } + if (averageChange < decreaseThreshold) { return "decreasing"; - } else { - return "stable"; } + return "stable"; } // TODO: Update to Starknet @@ -523,7 +523,10 @@ export class TokenProvider { const allHoldersMap = new Map(); let page = 1; const limit = 1000; - let cursor; + // let cursor; + // Fix: Add type annotation to prevent implicit any + let cursor: string | undefined; + //HELIOUS_API_KEY needs to be added const url = `https://mainnet.helius-rpc.com/?api-key=${ settings.HELIUS_API_KEY || "" @@ -538,7 +541,8 @@ export class TokenProvider { mint: this.tokenAddress, cursor: cursor, }; - if (cursor != undefined) { + // Fix: Replace != with !== + if (cursor !== undefined) { params.cursor = cursor; } console.log(`Fetching holders - Page ${page}`); diff --git a/packages/plugin-starknet/src/providers/trustScoreProvider.ts b/packages/plugin-starknet/src/providers/trustScoreProvider.ts index ff84353aa17..33e9ed0f0cb 100644 --- a/packages/plugin-starknet/src/providers/trustScoreProvider.ts +++ b/packages/plugin-starknet/src/providers/trustScoreProvider.ts @@ -30,8 +30,15 @@ interface sellDetails { sell_amount: number; sell_recommender_id: string | null; } +// Fix: Replace explicit any with proper type +interface Recommendation { + // Add actual properties based on usage + score: number; + // ... other properties +} + interface _RecommendationGroup { - recommendation: any; + recommendation: Recommendation; trustScore: number; } @@ -123,10 +130,13 @@ export class TrustScoreManager { const inactiveDays = Math.floor( (now.getTime() - lastActive.getTime()) / (1000 * 60 * 60 * 24) ); - const decayFactor = Math.pow( - this.DECAY_RATE, - Math.min(inactiveDays, this.MAX_DECAY_DAYS) - ); + // const decayFactor = Math.pow( + // this.DECAY_RATE, + // Math.min(inactiveDays, this.MAX_DECAY_DAYS) + // ); + // Fix: Replace Math.pow with ** operator + const decayFactor = this.DECAY_RATE ** Math.min(inactiveDays, this.MAX_DECAY_DAYS); + const decayedScore = recommenderMetrics.trustScore * decayFactor; const validationTrustScore = this.trustScoreDb.calculateValidationTrust(tokenAddress); @@ -213,10 +223,13 @@ export class TrustScoreManager { const inactiveDays = Math.floor( (now.getTime() - lastActive.getTime()) / (1000 * 60 * 60 * 24) ); - const decayFactor = Math.pow( - this.DECAY_RATE, - Math.min(inactiveDays, this.MAX_DECAY_DAYS) - ); + // const decayFactor = Math.pow( + // this.DECAY_RATE, + // Math.min(inactiveDays, this.MAX_DECAY_DAYS) + // ); + // Fix: Replace Math.pow with ** operator + const decayFactor = this.DECAY_RATE ** Math.min(inactiveDays, this.MAX_DECAY_DAYS); + const decayedScore = recommenderMetrics.trustScore * decayFactor; const newRecommenderMetrics: RecommenderMetrics = { @@ -468,7 +481,7 @@ export class TrustScoreManager { */ async updateSellDetails( - runtime: IAgentRuntime, + _runtime: IAgentRuntime, tokenAddress: string, recommenderId: string, sellTimeStamp: string, @@ -558,27 +571,71 @@ export class TrustScoreManager { {} as Record> ); + // const result = Object.keys(groupedRecommendations).map( + // (tokenAddress) => { + // const tokenRecommendations = + // groupedRecommendations[tokenAddress]; + + // // Initialize variables to compute averages + // let totalTrustScore = 0; + // let totalRiskScore = 0; + // let totalConsistencyScore = 0; + // const recommenderData = []; + + // tokenRecommendations.forEach((recommendation) => { + // const tokenPerformance = + // this.trustScoreDb.getTokenPerformance( + // recommendation.tokenAddress + // ); + // const recommenderMetrics = + // this.trustScoreDb.getRecommenderMetrics( + // recommendation.recommenderId + // ); + + // const trustScore = this.calculateTrustScore( + // tokenPerformance, + // recommenderMetrics + // ); + // const consistencyScore = this.calculateConsistencyScore( + // tokenPerformance, + // recommenderMetrics + // ); + // const riskScore = this.calculateRiskScore(tokenPerformance); + + // // Accumulate scores for averaging + // totalTrustScore += trustScore; + // totalRiskScore += riskScore; + // totalConsistencyScore += consistencyScore; + + // recommenderData.push({ + // recommenderId: recommendation.recommenderId, + // trustScore, + // riskScore, + // consistencyScore, + // recommenderMetrics, + // }); + // }); + + const result = Object.keys(groupedRecommendations).map( (tokenAddress) => { - const tokenRecommendations = - groupedRecommendations[tokenAddress]; - + const tokenRecommendations = groupedRecommendations[tokenAddress]; + // Initialize variables to compute averages let totalTrustScore = 0; let totalRiskScore = 0; let totalConsistencyScore = 0; const recommenderData = []; - - tokenRecommendations.forEach((recommendation) => { - const tokenPerformance = - this.trustScoreDb.getTokenPerformance( - recommendation.tokenAddress - ); - const recommenderMetrics = - this.trustScoreDb.getRecommenderMetrics( - recommendation.recommenderId - ); - + + // Changed from forEach to for...of + for (const recommendation of tokenRecommendations) { + const tokenPerformance = this.trustScoreDb.getTokenPerformance( + recommendation.tokenAddress + ); + const recommenderMetrics = this.trustScoreDb.getRecommenderMetrics( + recommendation.recommenderId + ); + const trustScore = this.calculateTrustScore( tokenPerformance, recommenderMetrics @@ -588,12 +645,12 @@ export class TrustScoreManager { recommenderMetrics ); const riskScore = this.calculateRiskScore(tokenPerformance); - + // Accumulate scores for averaging totalTrustScore += trustScore; totalRiskScore += riskScore; totalConsistencyScore += consistencyScore; - + recommenderData.push({ recommenderId: recommendation.recommenderId, trustScore, @@ -601,7 +658,7 @@ export class TrustScoreManager { consistencyScore, recommenderMetrics, }); - }); + } // Calculate averages for this token const averageTrustScore = diff --git a/packages/plugin-starknet/src/utils/ERC20Token.ts b/packages/plugin-starknet/src/utils/ERC20Token.ts index 5225a658f44..1c27893f072 100644 --- a/packages/plugin-starknet/src/utils/ERC20Token.ts +++ b/packages/plugin-starknet/src/utils/ERC20Token.ts @@ -21,7 +21,8 @@ export type TransferCall = { }; export class ERC20Token { - abi: any; + // abi: any; + abi: typeof erc20Abi; // Fix: Use the actual type of the ABI contract: Contract; calldata: CallData; constructor( diff --git a/packages/plugin-starknet/src/utils/cache.ts b/packages/plugin-starknet/src/utils/cache.ts index f8fc6eb8b28..1e6a3eca541 100644 --- a/packages/plugin-starknet/src/utils/cache.ts +++ b/packages/plugin-starknet/src/utils/cache.ts @@ -1,6 +1,6 @@ import NodeCache from "node-cache"; -import fs from "fs"; -import path from "path"; +import fs from "node:fs"; +import path from "node:path"; export class Cache { private cache: NodeCache; @@ -24,6 +24,34 @@ export class Cache { } } + // private readCacheFromFile(cacheKey: string): T | null { + // const filePath = path.join(this.cacheDir, `${cacheKey}.json`); + // if (fs.existsSync(filePath)) { + // try { + // const fileContent = fs.readFileSync(filePath, "utf-8"); + // const parsed = JSON.parse(fileContent); + // const now = Date.now(); + // if (now < parsed.expiry) { + // return parsed.data as T; + // } else { + // fs.unlinkSync(filePath); + // } + // } catch (error) { + // console.error( + // `Error reading cache file for key ${cacheKey}:`, + // error + // ); + // // Delete corrupted cache file + // try { + // fs.unlinkSync(filePath); + // } catch (e) { + // console.error(`Error deleting corrupted cache file:`, e); + // } + // } + // } + // return null; + // } + private readCacheFromFile(cacheKey: string): T | null { const filePath = path.join(this.cacheDir, `${cacheKey}.json`); if (fs.existsSync(filePath)) { @@ -33,19 +61,20 @@ export class Cache { const now = Date.now(); if (now < parsed.expiry) { return parsed.data as T; - } else { - fs.unlinkSync(filePath); } + // Fix: Remove unnecessary else clause + fs.unlinkSync(filePath); } catch (error) { console.error( `Error reading cache file for key ${cacheKey}:`, error ); + // Delete corrupted cache file try { fs.unlinkSync(filePath); } catch (e) { - console.error(`Error deleting corrupted cache file:`, e); + console.error("Error deleting corrupted cache file:", e); } } } diff --git a/packages/plugin-starknet/src/utils/index.ts b/packages/plugin-starknet/src/utils/index.ts index 9620e7aba43..cc2d00090fe 100644 --- a/packages/plugin-starknet/src/utils/index.ts +++ b/packages/plugin-starknet/src/utils/index.ts @@ -60,8 +60,10 @@ export const formatCurrenyAmount = ( const fixedAmount = amount.toFixed(fixed); const significantAmount = amount.toSignificant(significant); + // if (+significantAmount > +fixedAmount) return significantAmount; + // else return +fixedAmount.toString(); if (+significantAmount > +fixedAmount) return significantAmount; - else return +fixedAmount.toString(); + return +fixedAmount.toString(); }; export const formatPercentage = (percentage: Percent) => { @@ -90,7 +92,8 @@ export async function fetchWithRetry( delay = 1000, maxDelay = 10000, backoff = (retryCount, baseDelay, maxDelay) => - Math.min(baseDelay * Math.pow(2, retryCount), maxDelay), + // Math.min(baseDelay * Math.pow(2, retryCount), maxDelay), + Math.min(baseDelay * 2 ** retryCount, maxDelay), // Fix: Use ** instead of Math.pow } = config; let lastError: Error | null = null; diff --git a/packages/plugin-story/package.json b/packages/plugin-story/package.json index 9546957e215..50dfbf2614e 100644 --- a/packages/plugin-story/package.json +++ b/packages/plugin-story/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-story", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-sui/package.json b/packages/plugin-sui/package.json index 9c259923ef5..483576dd682 100644 --- a/packages/plugin-sui/package.json +++ b/packages/plugin-sui/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-sui", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", @@ -21,6 +21,7 @@ "dependencies": { "@elizaos/core": "workspace:*", "@mysten/sui": "^1.16.0", + "axios": "^1.7.9", "bignumber.js": "9.1.2", "node-cache": "5.1.2", "tsup": "8.3.5", diff --git a/packages/plugin-sui/src/providers/wallet.ts b/packages/plugin-sui/src/providers/wallet.ts index 7ae8e37ffa4..96dd20677e9 100644 --- a/packages/plugin-sui/src/providers/wallet.ts +++ b/packages/plugin-sui/src/providers/wallet.ts @@ -5,6 +5,7 @@ import type { Provider, State, } from "@elizaos/core"; +import axios from "axios"; import { getFullnodeUrl, SuiClient } from "@mysten/sui/client"; @@ -89,19 +90,18 @@ export class WalletProvider { try { const cetusSuiUsdcPoolAddr = "0x51e883ba7c0b566a26cbc8a94cd33eb0abd418a77cc1e60ad22fd9b1f29cd2ab"; - const response = await fetch( - `https://api.dexscreener.com/latest/dex/pairs/sui/${cetusSuiUsdcPoolAddr}` - ); - - if (!response.ok) { - const errorText = await response.text(); - throw new Error( - `HTTP error! status: ${response.status}, message: ${errorText}` - ); - } - - const data = await response.json(); - return data; + const url = `https://api.dexscreener.com/latest/dex/pairs/sui/${cetusSuiUsdcPoolAddr}`; + const response = await axios.get(url); + + // if (!response.ok) { + // const errorText = await response.text(); + // throw new Error( + // `HTTP error! status: ${response.status}, message: ${errorText}` + // ); + // } + + // const data = await response.json(); + return response.data; } catch (error) { console.error(`Attempt ${i + 1} failed:`, error); lastError = error; diff --git a/packages/plugin-suno/package.json b/packages/plugin-suno/package.json index a807d8a4c48..70d6340105e 100644 --- a/packages/plugin-suno/package.json +++ b/packages/plugin-suno/package.json @@ -1,21 +1,21 @@ -{ - "name": "@elizaos/plugin-suno", - "version": "0.1.9-alpha.1", - "description": "Suno AI Music Generation Plugin for Eliza", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "scripts": { - "build": "tsup", - "test": "jest" - }, - "dependencies": { - "@elizaos/core": "^0.1.0" - }, - "devDependencies": { - "typescript": "^5.0.0", - "@types/node": "^16.0.0", - "jest": "^27.0.0", - "@types/jest": "^27.0.0", - "tsup": "^7.2.0" - } -} \ No newline at end of file +{ + "name": "@elizaos/plugin-suno", + "version": "0.1.9", + "description": "Suno AI Music Generation Plugin for Eliza", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsup", + "test": "jest" + }, + "dependencies": { + "@elizaos/core": "^0.1.0" + }, + "devDependencies": { + "typescript": "^5.0.0", + "@types/node": "^16.0.0", + "jest": "^27.0.0", + "@types/jest": "^27.0.0", + "tsup": "^7.2.0" + } +} diff --git a/packages/plugin-tee-log/package.json b/packages/plugin-tee-log/package.json index f0cdec4ba7e..3e470a8648a 100644 --- a/packages/plugin-tee-log/package.json +++ b/packages/plugin-tee-log/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-tee-log", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-tee-marlin/package.json b/packages/plugin-tee-marlin/package.json index 74db2744dd0..9eb0deeab8e 100644 --- a/packages/plugin-tee-marlin/package.json +++ b/packages/plugin-tee-marlin/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-tee-marlin", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-tee-verifiable-log/package.json b/packages/plugin-tee-verifiable-log/package.json index f5784c35d07..7af88605788 100644 --- a/packages/plugin-tee-verifiable-log/package.json +++ b/packages/plugin-tee-verifiable-log/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-tee-verifiable-log", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-tee/package.json b/packages/plugin-tee/package.json index 9864b6ec47a..b7defdfab1d 100644 --- a/packages/plugin-tee/package.json +++ b/packages/plugin-tee/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-tee", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-thirdweb/package.json b/packages/plugin-thirdweb/package.json index 1846e32ef8b..01cc6f26955 100644 --- a/packages/plugin-thirdweb/package.json +++ b/packages/plugin-thirdweb/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-thirdweb", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-ton/package.json b/packages/plugin-ton/package.json index 30385cf2c1a..34eb5b80150 100644 --- a/packages/plugin-ton/package.json +++ b/packages/plugin-ton/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-ton", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-trikon/package.json b/packages/plugin-trikon/package.json index 7262a82d729..80d8570d895 100644 --- a/packages/plugin-trikon/package.json +++ b/packages/plugin-trikon/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-trikon", - "version": "0.1.0-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", @@ -33,4 +33,4 @@ "build": "tsup --format esm --dts", "test": "vitest run" } -} \ No newline at end of file +} diff --git a/packages/plugin-trustdb/package.json b/packages/plugin-trustdb/package.json index cc09951af28..ba621786b25 100644 --- a/packages/plugin-trustdb/package.json +++ b/packages/plugin-trustdb/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-trustdb", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-tts/package.json b/packages/plugin-tts/package.json index 33136d20356..d8e6effda25 100644 --- a/packages/plugin-tts/package.json +++ b/packages/plugin-tts/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-tts", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-twitter/package.json b/packages/plugin-twitter/package.json index 2f721b9d3b0..5ae2fd31d23 100644 --- a/packages/plugin-twitter/package.json +++ b/packages/plugin-twitter/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-twitter", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-udio/package.json b/packages/plugin-udio/package.json index 8d5092bdfd6..12ba10cb4fe 100644 --- a/packages/plugin-udio/package.json +++ b/packages/plugin-udio/package.json @@ -1,21 +1,21 @@ -{ - "name": "@elizaos/plugin-udio", - "version": "0.1.9-alpha.1", - "description": "Suno AI Music Generation Plugin for Eliza", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "scripts": { - "build": "tsup", - "test": "jest" - }, - "dependencies": { - "@elizaos/core": "^0.1.0" - }, - "devDependencies": { - "typescript": "^5.0.0", - "@types/node": "^16.0.0", - "jest": "^27.0.0", - "@types/jest": "^27.0.0", - "tsup": "^7.2.0" - } - } \ No newline at end of file +{ + "name": "@elizaos/plugin-udio", + "version": "0.1.9", + "description": "Suno AI Music Generation Plugin for Eliza", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsup", + "test": "jest" + }, + "dependencies": { + "@elizaos/core": "^0.1.0" + }, + "devDependencies": { + "typescript": "^5.0.0", + "@types/node": "^16.0.0", + "jest": "^27.0.0", + "@types/jest": "^27.0.0", + "tsup": "^7.2.0" + } +} diff --git a/packages/plugin-video-generation/package.json b/packages/plugin-video-generation/package.json index 4699cb9a963..4922db62975 100644 --- a/packages/plugin-video-generation/package.json +++ b/packages/plugin-video-generation/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-video-generation", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-web-search/package.json b/packages/plugin-web-search/package.json index 4ab54d64e85..ea5d79c4e99 100644 --- a/packages/plugin-web-search/package.json +++ b/packages/plugin-web-search/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-web-search", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/packages/plugin-whatsapp/package.json b/packages/plugin-whatsapp/package.json index eae55a51589..535f64b8b77 100644 --- a/packages/plugin-whatsapp/package.json +++ b/packages/plugin-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-whatsapp", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "description": "WhatsApp Cloud API plugin", "type": "module", "main": "dist/index.js", diff --git a/packages/plugin-zerion/package.json b/packages/plugin-zerion/package.json index c53bc166a01..e4dc7d34803 100644 --- a/packages/plugin-zerion/package.json +++ b/packages/plugin-zerion/package.json @@ -1,9 +1,8 @@ { "name": "@elizaos/plugin-zerion", - "version": "0.0.1", + "version": "0.1.9", "main": "dist/index.js", "type": "module", - "types": "dist/index.d.ts", "dependencies": { "@elizaos/core": "workspace:*" diff --git a/packages/plugin-zilliqa/package.json b/packages/plugin-zilliqa/package.json index 54fa403ff53..b83ac6845b8 100644 --- a/packages/plugin-zilliqa/package.json +++ b/packages/plugin-zilliqa/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-zilliqa", - "version": "0.1.7-alpha.2", + "version": "0.1.9", "main": "dist/index.js", "type": "module", "types": "dist/index.d.ts", diff --git a/packages/plugin-zksync-era/package.json b/packages/plugin-zksync-era/package.json index 0edcf8005c5..bbf0d3f6096 100644 --- a/packages/plugin-zksync-era/package.json +++ b/packages/plugin-zksync-era/package.json @@ -1,6 +1,6 @@ { "name": "@elizaos/plugin-zksync-era", - "version": "0.1.9-alpha.1", + "version": "0.1.9", "type": "module", "main": "dist/index.js", "module": "dist/index.js", diff --git a/patches/@solana-developers__helpers.patch b/patches/@solana-developers__helpers.patch new file mode 100644 index 00000000000..538db093ad2 --- /dev/null +++ b/patches/@solana-developers__helpers.patch @@ -0,0 +1,13 @@ +diff --git a/dist/esm/lib/transaction.js b/dist/esm/lib/transaction.js +index c86ccd726fb0bef6e82cd37a6d7c7fc9edef8344..0ec2bfe2463e998b5ad68b618f4d216fec28a0f7 100644 +--- a/dist/esm/lib/transaction.js ++++ b/dist/esm/lib/transaction.js +@@ -1,6 +1,7 @@ + import { ComputeBudgetProgram, PublicKey, TransactionMessage, VersionedTransaction, } from "@solana/web3.js"; + import { getErrorFromRPCResponse } from "./logs.js"; +-import { Program, AnchorProvider, EventParser, BorshAccountsCoder, BorshInstructionCoder, BN, } from "@coral-xyz/anchor"; ++import pkg from '@coral-xyz/anchor'; ++const { Program, AnchorProvider, EventParser, BorshAccountsCoder, BorshInstructionCoder, BN, } = pkg; + import * as fs from "fs"; + import * as path from "path"; + export const confirmTransaction = async (connection, signature, commitment = "confirmed") => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 523131fb6bc..eab17d7adf6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,11 @@ overrides: bs58: 5.0.0 '@coral-xyz/anchor': 0.28.0 +patchedDependencies: + '@solana-developers/helpers': + hash: o7e7p3gymjfe47gpx3v72tckoy + path: patches/@solana-developers__helpers.patch + importers: .: @@ -39,7 +44,7 @@ importers: version: 1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@6.0.5) '@vitest/eslint-plugin': specifier: 1.0.1 - version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) amqplib: specifier: 0.10.5 version: 0.10.5 @@ -59,8 +64,8 @@ importers: specifier: 0.1.4 version: 0.1.4 pnpm: - specifier: 9.14.4 - version: 9.14.4 + specifier: 9.15.0 + version: 9.15.0 sharp: specifier: 0.33.5 version: 0.33.5 @@ -70,7 +75,7 @@ importers: version: 1.9.4 '@commitlint/cli': specifier: 18.6.1 - version: 18.6.1(@types/node@22.10.10)(typescript@5.6.3) + version: 18.6.1(@types/node@22.12.0)(typescript@5.6.3) '@commitlint/config-conventional': specifier: 18.6.3 version: 18.6.3 @@ -88,7 +93,7 @@ importers: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) lerna: specifier: 8.1.5 version: 8.1.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(babel-plugin-macros@3.1.0)(encoding@0.1.13) @@ -109,10 +114,10 @@ importers: version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1) vite: specifier: 5.4.12 - version: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + version: 5.4.12(@types/node@22.12.0)(terser@5.37.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) agent: dependencies: @@ -575,7 +580,7 @@ importers: version: 9.7.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tanstack/react-query': specifier: ^5.63.0 - version: 5.65.0(react@19.0.0) + version: 5.65.1(react@19.0.0) '@uidotdev/usehooks': specifier: ^2.4.1 version: 2.4.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -614,17 +619,17 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) devDependencies: '@eslint/js': specifier: ^9.17.0 version: 9.19.0 '@types/node': specifier: ^22.10.5 - version: 22.10.10 + version: 22.12.0 '@types/react': specifier: ^19.0.3 version: 19.0.8 @@ -642,7 +647,7 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) '@vitejs/plugin-react-swc': specifier: ^3.5.0 - version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) autoprefixer: specifier: ^10.4.19 version: 10.4.20(postcss@8.5.1) @@ -675,10 +680,10 @@ importers: version: 8.5.1 rollup-plugin-visualizer: specifier: ^5.14.0 - version: 5.14.0(rollup@4.32.0) + version: 5.14.0(rollup@4.32.1) tailwindcss: specifier: ^3.4.4 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) typescript: specifier: ~5.6.3 version: 5.6.3 @@ -687,10 +692,10 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) vite: specifier: ^6.0.5 - version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) docs: dependencies: @@ -858,7 +863,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqlite: dependencies: @@ -880,13 +885,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqljs: dependencies: @@ -924,13 +929,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-alexa: dependencies: @@ -955,7 +960,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-auto: dependencies: @@ -1005,7 +1010,7 @@ importers: devDependencies: tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.1(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.4.49)(typescript@5.6.3)(yaml@2.6.1) + version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) packages/client-direct: dependencies: @@ -1097,7 +1102,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-eliza-home: dependencies: @@ -1107,13 +1112,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-farcaster: dependencies: @@ -1129,7 +1134,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-github: dependencies: @@ -1157,7 +1162,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-instagram: dependencies: @@ -1185,7 +1190,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-lens: dependencies: @@ -1204,13 +1209,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-simsai: dependencies: @@ -1300,7 +1305,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-telegram-account: dependencies: @@ -1322,13 +1327,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-twitter: dependencies: @@ -1353,13 +1358,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-xmtp: dependencies: @@ -1591,13 +1596,13 @@ importers: devDependencies: vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-0x: dependencies: '@0x/swap-ts-sdk': specifier: 2.1.1 - version: 2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13) + version: 2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13) '@elizaos/core': specifier: workspace:* version: link:../core @@ -1623,7 +1628,7 @@ importers: devDependencies: vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-abstract: dependencies: @@ -1646,6 +1651,9 @@ importers: typescript: specifier: '4.9' version: 4.9.5 + vitest: + specifier: ^1.0.0 + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-agentkit: dependencies: @@ -1667,7 +1675,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-akash: dependencies: @@ -1770,7 +1778,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1874,10 +1882,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-apro: dependencies: @@ -1893,7 +1901,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-aptos: dependencies: @@ -1917,7 +1925,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1975,10 +1983,10 @@ importers: version: 8.2.3 '@types/lodash': specifier: ^4.17.14 - version: 4.17.14 + version: 4.17.15 '@types/node': specifier: ^22.10.9 - version: 22.10.10 + version: 22.12.0 '@types/ws': specifier: ^8.5.13 version: 8.5.14 @@ -2181,23 +2189,23 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.7.3)(utf-8-validate@5.0.10) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 devDependencies: '@types/node': specifier: ^22.10.2 - version: 22.10.10 + version: 22.12.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 @@ -2239,7 +2247,7 @@ importers: version: 5.2.0 '@types/node': specifier: ^22.10.5 - version: 22.10.10 + version: 22.12.0 '@web3-name-sdk/core': specifier: ^0.3.2 version: 0.3.2(@bonfida/spl-name-service@3.0.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@siddomains/injective-sidjs@0.0.2-beta(@injectivelabs/sdk-ts@1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@5.0.10))(@injectivelabs/ts-types@1.14.40))(@siddomains/sei-sidjs@0.0.4(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)) @@ -2373,7 +2381,7 @@ importers: version: 9.1.2 chain-registry: specifier: ^1.69.68 - version: 1.69.106 + version: 1.69.107 interchain: specifier: ^1.10.4 version: 1.10.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -2467,7 +2475,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-dexscreener: dependencies: @@ -2519,7 +2527,7 @@ importers: version: link:../core dkg.js: specifier: ^8.0.4 - version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) + version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@4.9.5)(yaml@2.7.0) @@ -2713,7 +2721,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-football: dependencies: @@ -2753,13 +2761,13 @@ importers: version: 4.0.1 fuels: specifier: 0.97.2 - version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -2902,7 +2910,7 @@ importers: devDependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) packages/plugin-hyperbolic: dependencies: @@ -3025,7 +3033,7 @@ importers: version: 29.5.14 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) @@ -3074,7 +3082,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.10 + version: 22.12.0 packages/plugin-injective: dependencies: @@ -3096,7 +3104,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.10.3 - version: 22.10.10 + version: 22.12.0 '@types/sinon': specifier: ^17.0.3 version: 17.0.3 @@ -3114,7 +3122,7 @@ importers: version: 9.16.0(jiti@2.4.2) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) prettier: specifier: 3.4.1 version: 3.4.1 @@ -3123,7 +3131,7 @@ importers: version: 19.0.2 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3) + version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3) typescript: specifier: ^5.7.2 version: 5.7.3 @@ -3334,7 +3342,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3398,7 +3406,7 @@ importers: version: 5.7.3 vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-multiversx: dependencies: @@ -3431,7 +3439,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3543,7 +3551,7 @@ importers: version: 5.2.0 '@solana-developers/helpers': specifier: ^2.5.6 - version: 2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: npm:@solana/web3.js@1.95.5 version: 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -3710,8 +3718,8 @@ importers: specifier: 0.0.3 version: 0.0.3 systeminformation: - specifier: 5.23.5 - version: 5.23.5 + specifier: 5.23.8 + version: 5.23.8 tar: specifier: 7.4.3 version: 7.4.3 @@ -3863,7 +3871,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3910,7 +3918,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-primus: dependencies: @@ -3961,7 +3969,7 @@ importers: version: 4.1.0(encoding@0.1.13) eventsource: specifier: ^3.0.2 - version: 3.0.2 + version: 3.0.5 jstat: specifier: ^1.9.6 version: 1.9.6 @@ -4019,7 +4027,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.4 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4086,10 +4094,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) packages/plugin-router-nitro: dependencies: @@ -4125,7 +4133,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4180,7 +4188,7 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.6.3)(utf-8-validate@5.0.10) solana-agent-kit: specifier: ^1.4.0 version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.6.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -4234,16 +4242,16 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.7.3)(utf-8-validate@5.0.10) solana-agent-kit: specifier: ^1.2.0 - version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4289,13 +4297,13 @@ importers: devDependencies: '@types/node': specifier: ^22.8.7 - version: 22.10.10 + version: 22.12.0 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-spheron: dependencies: @@ -4386,7 +4394,7 @@ importers: version: 1.4.0(starknet@6.18.0(encoding@0.1.13)) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4411,7 +4419,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.10 + version: 22.12.0 packages/plugin-sui: dependencies: @@ -4421,6 +4429,9 @@ importers: '@mysten/sui': specifier: ^1.16.0 version: 1.21.0(typescript@5.7.3) + axios: + specifier: ^1.7.9 + version: 1.7.9 bignumber.js: specifier: 9.1.2 version: 9.1.2 @@ -4435,7 +4446,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4487,7 +4498,7 @@ importers: version: 5.1.2 pumpdotfun-sdk: specifier: 1.3.2 - version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.7.3)(utf-8-validate@5.0.10) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -4548,7 +4559,7 @@ importers: version: 6.6.1 ethereum-cryptography: specifier: ^3.0.0 - version: 3.0.0 + version: 3.1.0 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -4557,7 +4568,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4567,7 +4578,7 @@ importers: version: 3.2.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) packages/plugin-thirdweb: dependencies: @@ -4576,7 +4587,7 @@ importers: version: link:../core thirdweb: specifier: ^5.80.0 - version: 5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) + version: 5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -4649,7 +4660,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4687,7 +4698,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-udio: dependencies: @@ -9604,8 +9615,8 @@ packages: '@meteora-ag/dlmm@1.3.0': resolution: {integrity: sha512-k3VdtisuNaSavTY+M8vLsB3wqqpC/dyFPujp6MScz85Nj0Beuua6PRg5XSjzhAt8rbuXcnTSKWCTYzc24UMHmA==} - '@meteora-ag/dlmm@1.3.9': - resolution: {integrity: sha512-8UlaSJYJtTEIkIf7PjgWC8anmmfSCsjtv9a3dbsO5MHf88tGcAmh4rYqcRU3LJNHhWotIPLbfjlybx/rucqX7g==} + '@meteora-ag/dlmm@1.3.10': + resolution: {integrity: sha512-SafqbyviTYa2x1BWaay1jFERv2jnpLzurX6PFYW5ZeSpmy+BjyD64rKitJLrEJ/gsdZIGYs+fwU8btRntsqn8w==} '@meteora-ag/m3m3@1.0.4': resolution: {integrity: sha512-tjNsQ7qCE9LAyZ8TpyNsg8kOiaarAQ91ckAGObKO/gcDkUfm5m/qrDo3qypN9aCAcFnNmvsuJecrJnLhRGq33g==} @@ -9801,8 +9812,8 @@ packages: resolution: {integrity: sha512-jYFDhIXxiZUa4/FQ1WooKtdGPVdjPe0YXZZgU9va3drqk0gejRrGuxQ60ibsjMwtWsvrhvFPPACYk0zN08znGQ==} engines: {node: '>=19.9.0'} - '@noble/ciphers@1.0.0': - resolution: {integrity: sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==} + '@noble/ciphers@1.2.1': + resolution: {integrity: sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==} engines: {node: ^14.21.3 || >=16} '@noble/curves@1.2.0': @@ -9814,10 +9825,6 @@ packages: '@noble/curves@1.4.2': resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} - '@noble/curves@1.6.0': - resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} - engines: {node: ^14.21.3 || >=16} - '@noble/curves@1.7.0': resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} engines: {node: ^14.21.3 || >=16} @@ -11668,98 +11675,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.32.0': - resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} + '@rollup/rollup-android-arm-eabi@4.32.1': + resolution: {integrity: sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.32.0': - resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} + '@rollup/rollup-android-arm64@4.32.1': + resolution: {integrity: sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.32.0': - resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} + '@rollup/rollup-darwin-arm64@4.32.1': + resolution: {integrity: sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.32.0': - resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} + '@rollup/rollup-darwin-x64@4.32.1': + resolution: {integrity: sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.32.0': - resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} + '@rollup/rollup-freebsd-arm64@4.32.1': + resolution: {integrity: sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.32.0': - resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==} + '@rollup/rollup-freebsd-x64@4.32.1': + resolution: {integrity: sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': - resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==} + '@rollup/rollup-linux-arm-gnueabihf@4.32.1': + resolution: {integrity: sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.32.0': - resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==} + '@rollup/rollup-linux-arm-musleabihf@4.32.1': + resolution: {integrity: sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.32.0': - resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==} + '@rollup/rollup-linux-arm64-gnu@4.32.1': + resolution: {integrity: sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.32.0': - resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==} + '@rollup/rollup-linux-arm64-musl@4.32.1': + resolution: {integrity: sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': - resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} + '@rollup/rollup-linux-loongarch64-gnu@4.32.1': + resolution: {integrity: sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': - resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': + resolution: {integrity: sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.32.0': - resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==} + '@rollup/rollup-linux-riscv64-gnu@4.32.1': + resolution: {integrity: sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.32.0': - resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==} + '@rollup/rollup-linux-s390x-gnu@4.32.1': + resolution: {integrity: sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.32.0': - resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==} + '@rollup/rollup-linux-x64-gnu@4.32.1': + resolution: {integrity: sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.32.0': - resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==} + '@rollup/rollup-linux-x64-musl@4.32.1': + resolution: {integrity: sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.32.0': - resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==} + '@rollup/rollup-win32-arm64-msvc@4.32.1': + resolution: {integrity: sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.32.0': - resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==} + '@rollup/rollup-win32-ia32-msvc@4.32.1': + resolution: {integrity: sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.32.0': - resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==} + '@rollup/rollup-win32-x64-msvc@4.32.1': + resolution: {integrity: sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==} cpu: [x64] os: [win32] @@ -11803,9 +11810,6 @@ packages: '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@scure/bip32@1.5.0': - resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} - '@scure/bip32@1.6.0': resolution: {integrity: sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==} @@ -11821,9 +11825,6 @@ packages: '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@scure/bip39@1.4.0': - resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} - '@scure/bip39@1.5.0': resolution: {integrity: sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==} @@ -13008,8 +13009,8 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/react-query@5.65.0': - resolution: {integrity: sha512-qXdHj3SCT2xkFxgrBIe6y9Lkowlwm+tGcV++PBLFtyvEJR5Q+biTnzm5p0tdVwqA603xlju9mtV2Kd/2brobgA==} + '@tanstack/react-query@5.65.1': + resolution: {integrity: sha512-BSpjo4RQdJ75Mw3pqM1AJYNhanNxJE3ct7RmCZUAv9cUJg/Qmonzc/Xy2kKXeQA1InuKATSuc6pOZciWOF8TYQ==} peerDependencies: react: ^18 || ^19 @@ -13304,8 +13305,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.5': - resolution: {integrity: sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==} + '@types/express-serve-static-core@5.0.6': + resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -13410,8 +13411,8 @@ packages: '@types/lodash.values@4.3.9': resolution: {integrity: sha512-IJ20OEfqNwm3k8ENwoM3q0yOs4UMpgtD4GqxB4lwBHToGthHWqhyh5DdSgQjioocz0QK2SSBkJfCq95ZTV8BTw==} - '@types/lodash@4.17.14': - resolution: {integrity: sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==} + '@types/lodash@4.17.15': + resolution: {integrity: sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==} '@types/long@4.0.2': resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} @@ -13485,8 +13486,8 @@ packages: '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.10.10': - resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} + '@types/node@22.12.0': + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -15851,8 +15852,8 @@ packages: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} - chain-registry@1.69.106: - resolution: {integrity: sha512-0ukSRl/FVMgQZs0nCFGvF5iFQowkpvwNiVx9lKmOlnTwps3yUT5PyfTdUlJOgxfkV+ct0h5tInpROYKxPeFGGA==} + chain-registry@1.69.107: + resolution: {integrity: sha512-aBGcm0zxnuD8ZC54PTWS+7evZR0s6M/jGoaPVCo14PoYfW58qOJNp2R00DQkOIpKCaPESzCbzOkjB1HtUryFXg==} chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} @@ -17983,8 +17984,8 @@ packages: ethereum-cryptography@2.2.1: resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} - ethereum-cryptography@3.0.0: - resolution: {integrity: sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==} + ethereum-cryptography@3.1.0: + resolution: {integrity: sha512-ZqHd92eOIH9RExpBUOgzpAgflyFv9/+Ca39G8V+oCjJPGjJUihQcG/Gl67I/Xn2HGS87dgnrCG3kb1jNClLi6g==} engines: {node: ^14.21.3 || >=16, npm: '>=9'} ethereum-types@3.7.1: @@ -18095,8 +18096,8 @@ packages: resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} engines: {node: '>=12.0.0'} - eventsource@3.0.2: - resolution: {integrity: sha512-YolzkJNxsTL3tCJMWFxpxtG2sCjbZ4LQUBUrkdaJK0ub0p6lmJt+2+1SwhKjLc652lpH9L/79Ptez972H9tphw==} + eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} engines: {node: '>=18.0.0'} evp_bytestokey@1.0.3: @@ -23080,8 +23081,8 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} - pnpm@9.14.4: - resolution: {integrity: sha512-yBgLP75OS8oCyUI0cXiWtVKXQKbLrfGfp4JUJwQD6i8n1OHUagig9WyJtj3I6/0+5TMm2nICc3lOYgD88NGEqw==} + pnpm@9.15.0: + resolution: {integrity: sha512-duI3l2CkMo7EQVgVvNZije5yevN3mqpMkU45RBVsQpmSGon5djge4QfUHxLPpLZmgcqccY8GaPoIMe1MbYulbA==} engines: {node: '>=18.12'} hasBin: true @@ -24797,8 +24798,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.32.0: - resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==} + rollup@4.32.1: + resolution: {integrity: sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -25860,8 +25861,8 @@ packages: syntax-error@1.4.0: resolution: {integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==} - systeminformation@5.23.5: - resolution: {integrity: sha512-PEpJwhRYxZgBCAlWZhWIgfMTjXLqfcaZ1pJsJn9snWNfBW/Z1YQg1mbIUSWrEV3ErAHF7l/OoVLQeaZDlPzkpA==} + systeminformation@5.23.8: + resolution: {integrity: sha512-Osd24mNKe6jr/YoXLLK3k8TMdzaxDffhpCxgkfgBHcapykIkd50HXThM3TCEuHO2pPuCsSx2ms/SunqhU5MmsQ==} engines: {node: '>=8.0.0'} os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true @@ -26000,8 +26001,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thirdweb@5.86.3: - resolution: {integrity: sha512-WionZLLh8j3zBGtZE5w9lfmeu4O5GEF2/n7Xl2ck1np6SynelZho2k6KllGOF5Shb9nc84BhbXsKF/rZBHtOeA==} + thirdweb@5.86.6: + resolution: {integrity: sha512-DmAo61RbIF5PsXFf2Ru+FEvrJ9qiBPwifkU7jCAWEooUts5KSwUO3MowWWHbjjN1At4k/IUoiLvkOtAK8cfheg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -28458,13 +28459,13 @@ snapshots: '@0x/contract-addresses@8.13.0': {} - '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13)': + '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13)': dependencies: '@0x/contract-addresses': 8.13.0 '@0x/utils': 7.0.0(encoding@0.1.13) '@trpc/client': 10.40.0(@trpc/server@10.40.0) '@trpc/server': 10.40.0 - trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4) + trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4) zod: 3.22.4 transitivePeerDependencies: - '@types/express' @@ -28572,7 +28573,7 @@ snapshots: - typescript - utf-8-validate - '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@irys/sdk': 0.2.11(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -28590,7 +28591,7 @@ snapshots: fs: 0.0.1-security irys: 0.0.1 node-fetch: 3.3.2 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) tweetnacl: 1.0.3 transitivePeerDependencies: - '@swc/core' @@ -28928,7 +28929,7 @@ snapshots: '@alloralabs/allora-sdk@0.1.0': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 typescript: 5.7.3 '@ampproject/remapping@2.3.0': @@ -31079,11 +31080,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': + '@commitlint/cli@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@22.10.10)(typescript@5.6.3) + '@commitlint/load': 18.6.1(@types/node@22.12.0)(typescript@5.6.3) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -31133,7 +31134,7 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': + '@commitlint/load@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 @@ -31141,7 +31142,7 @@ snapshots: '@commitlint/types': 18.6.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -33402,7 +33403,7 @@ snapshots: - supports-color - utf-8-validate - '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': + '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.108.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -33416,7 +33417,7 @@ snapshots: dotenv: 16.4.5 rpc-websockets: 7.5.1 strict-event-emitter-types: 2.0.0 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - '@swc/core' @@ -34745,23 +34746,23 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) type-fest: 4.33.0 transitivePeerDependencies: - vitest - '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 commander: 12.1.0 glob: 10.4.5 @@ -34772,18 +34773,18 @@ snapshots: transitivePeerDependencies: - vitest - '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 '@noble/curves': 1.8.1 @@ -34796,30 +34797,30 @@ snapshots: - encoding - vitest - '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 bech32: 2.0.0 transitivePeerDependencies: - vitest - '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 @@ -34827,12 +34828,12 @@ snapshots: - encoding - vitest - '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34841,11 +34842,11 @@ snapshots: dependencies: '@fuel-ts/versions': 0.97.2 - '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34858,78 +34859,78 @@ snapshots: '@types/bn.js': 5.1.6 bn.js: 5.2.1 - '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/math': 0.97.2 transitivePeerDependencies: - vitest - '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 transitivePeerDependencies: - encoding - vitest - '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - vitest - '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 '@fuel-ts/versions': 0.97.2 fflate: 0.8.2 - vitest: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@fuel-ts/versions@0.97.2': dependencies: @@ -39321,7 +39322,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.10.10 + '@types/node': 22.12.0 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -39342,7 +39343,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.10.10 + '@types/node': 22.12.0 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -39393,11 +39394,11 @@ snapshots: - typescript - utf-8-validate - '@meteora-ag/dlmm@1.3.9(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@meteora-ag/dlmm@1.3.10(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana-developers/helpers': 2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana-developers/helpers': 2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -39413,11 +39414,11 @@ snapshots: - typescript - utf-8-validate - '@meteora-ag/dlmm@1.3.9(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@meteora-ag/dlmm@1.3.10(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana-developers/helpers': 2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@solana-developers/helpers': 2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -39437,7 +39438,7 @@ snapshots: dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana-developers/helpers': 2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana-developers/helpers': 2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 @@ -39453,7 +39454,7 @@ snapshots: dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana-developers/helpers': 2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@solana-developers/helpers': 2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) bn.js: 5.2.1 @@ -39860,7 +39861,7 @@ snapshots: - utf-8-validate - zod - '@noble/ciphers@1.0.0': {} + '@noble/ciphers@1.2.1': {} '@noble/curves@1.2.0': dependencies: @@ -39874,10 +39875,6 @@ snapshots: dependencies: '@noble/hashes': 1.4.0 - '@noble/curves@1.6.0': - dependencies: - '@noble/hashes': 1.5.0 - '@noble/curves@1.7.0': dependencies: '@noble/hashes': 1.6.0 @@ -40007,11 +40004,11 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': dependencies: debug: 4.4.0(supports-color@8.1.1) ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color @@ -42380,7 +42377,7 @@ snapshots: '@react-icons/all-files': 4.1.0(react@19.0.0) '@types/big.js': 6.2.2 '@types/bn.js': 5.1.6 - '@types/lodash': 4.17.14 + '@types/lodash': 4.17.15 big.js: 6.2.2 bn.js: 5.2.1 lodash: 4.17.21 @@ -42508,11 +42505,11 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-json@6.1.0(rollup@4.32.0)': + '@rollup/plugin-json@6.1.0(rollup@4.32.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@rollup/pluginutils': 5.1.4(rollup@4.32.1) optionalDependencies: - rollup: 4.32.0 + rollup: 4.32.1 '@rollup/plugin-node-resolve@15.3.0(rollup@2.79.2)': dependencies: @@ -42579,69 +42576,69 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/pluginutils@5.1.4(rollup@4.32.0)': + '@rollup/pluginutils@5.1.4(rollup@4.32.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.32.0 + rollup: 4.32.1 - '@rollup/rollup-android-arm-eabi@4.32.0': + '@rollup/rollup-android-arm-eabi@4.32.1': optional: true - '@rollup/rollup-android-arm64@4.32.0': + '@rollup/rollup-android-arm64@4.32.1': optional: true - '@rollup/rollup-darwin-arm64@4.32.0': + '@rollup/rollup-darwin-arm64@4.32.1': optional: true - '@rollup/rollup-darwin-x64@4.32.0': + '@rollup/rollup-darwin-x64@4.32.1': optional: true - '@rollup/rollup-freebsd-arm64@4.32.0': + '@rollup/rollup-freebsd-arm64@4.32.1': optional: true - '@rollup/rollup-freebsd-x64@4.32.0': + '@rollup/rollup-freebsd-x64@4.32.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.32.0': + '@rollup/rollup-linux-arm-gnueabihf@4.32.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.32.0': + '@rollup/rollup-linux-arm-musleabihf@4.32.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.32.0': + '@rollup/rollup-linux-arm64-gnu@4.32.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.32.0': + '@rollup/rollup-linux-arm64-musl@4.32.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + '@rollup/rollup-linux-loongarch64-gnu@4.32.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.32.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.32.0': + '@rollup/rollup-linux-riscv64-gnu@4.32.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.32.0': + '@rollup/rollup-linux-s390x-gnu@4.32.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.32.0': + '@rollup/rollup-linux-x64-gnu@4.32.1': optional: true - '@rollup/rollup-linux-x64-musl@4.32.0': + '@rollup/rollup-linux-x64-musl@4.32.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.32.0': + '@rollup/rollup-win32-arm64-msvc@4.32.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.32.0': + '@rollup/rollup-win32-ia32-msvc@4.32.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.32.0': + '@rollup/rollup-win32-x64-msvc@4.32.1': optional: true '@rtsao/scc@1.1.0': {} @@ -42690,12 +42687,6 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 - '@scure/bip32@1.5.0': - dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.9 - '@scure/bip32@1.6.0': dependencies: '@noble/curves': 1.7.0 @@ -42723,11 +42714,6 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 - '@scure/bip39@1.4.0': - dependencies: - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.9 - '@scure/bip39@1.5.0': dependencies: '@noble/hashes': 1.6.1 @@ -43397,7 +43383,7 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@solana-developers/helpers@2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + '@solana-developers/helpers@2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -43412,7 +43398,7 @@ snapshots: - typescript - utf-8-validate - '@solana-developers/helpers@2.6.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@solana-developers/helpers@2.6.0(patch_hash=o7e7p3gymjfe47gpx3v72tckoy)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -45352,7 +45338,7 @@ snapshots: '@tanstack/query-core': 5.62.16 react: 19.0.0 - '@tanstack/react-query@5.65.0(react@19.0.0)': + '@tanstack/react-query@5.65.1(react@19.0.0)': dependencies: '@tanstack/query-core': 5.65.0 react: 19.0.0 @@ -45611,7 +45597,7 @@ snapshots: '@types/bs58@4.0.4': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 base-x: 3.0.10 '@types/cacheable-request@6.0.3': @@ -45642,7 +45628,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.5 + '@types/express-serve-static-core': 5.0.6 '@types/node': 20.17.9 '@types/connect@3.4.38': @@ -45817,7 +45803,7 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.5': + '@types/express-serve-static-core@5.0.6': dependencies: '@types/node': 20.17.9 '@types/qs': 6.9.18 @@ -45834,7 +45820,7 @@ snapshots: '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 5.0.5 + '@types/express-serve-static-core': 5.0.6 '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 @@ -45940,13 +45926,13 @@ snapshots: '@types/lodash.isstring@4.0.9': dependencies: - '@types/lodash': 4.17.14 + '@types/lodash': 4.17.15 '@types/lodash.values@4.3.9': dependencies: - '@types/lodash': 4.17.14 + '@types/lodash': 4.17.15 - '@types/lodash@4.17.14': {} + '@types/lodash@4.17.15': {} '@types/long@4.0.2': {} @@ -46012,7 +45998,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.10.10': + '@types/node@22.12.0': dependencies: undici-types: 6.20.0 @@ -46207,7 +46193,7 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 '@types/ws@8.5.3': dependencies: @@ -46721,10 +46707,10 @@ snapshots: moment: 2.30.1 starknet: 6.18.0(encoding@0.1.13) - '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@swc/helpers' @@ -46745,7 +46731,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46760,11 +46746,11 @@ snapshots: std-env: 3.8.0 test-exclude: 6.0.0 v8-to-istanbul: 9.3.0 - vitest: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46779,11 +46765,11 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46798,7 +46784,7 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color @@ -46839,7 +46825,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -46853,17 +46839,17 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: eslint: 9.19.0(jiti@2.4.2) optionalDependencies: '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) typescript: 5.6.3 - vitest: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@vitest/expect@0.34.6': dependencies: @@ -46911,29 +46897,29 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@20.17.9)(terser@5.37.0))': dependencies: @@ -46943,13 +46929,13 @@ snapshots: optionalDependencies: vite: 5.4.12(@types/node@20.17.9)(terser@5.37.0) - '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 3.0.2 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) '@vitest/pretty-format@2.1.4': dependencies: @@ -50200,7 +50186,7 @@ snapshots: loupe: 3.1.2 pathval: 2.0.0 - chain-registry@1.69.106: + chain-registry@1.69.107: dependencies: '@chain-registry/types': 0.50.57 @@ -50861,9 +50847,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 typescript: 5.6.3 @@ -50985,13 +50971,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -51865,7 +51851,7 @@ snapshots: - bufferutil - utf-8-validate - dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@openzeppelin/contracts': 5.2.0 '@polkadot/api': 15.5.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -51874,11 +51860,11 @@ snapshots: '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) '@prb/math': 4.1.0 dotenv: 16.4.7 - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) solady: 0.0.285 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) typescript: 5.7.3 transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' @@ -51890,11 +51876,11 @@ snapshots: - supports-color - utf-8-validate - dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): + dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): dependencies: assertion-tools: 8.0.0-gamma.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) axios: 0.27.2(debug@4.3.4) - dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) jsonld: 8.3.3(web-streams-polyfill@3.3.3) web3: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -53004,13 +52990,13 @@ snapshots: '@scure/bip32': 1.4.0 '@scure/bip39': 1.3.0 - ethereum-cryptography@3.0.0: + ethereum-cryptography@3.1.0: dependencies: - '@noble/ciphers': 1.0.0 - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/bip32': 1.5.0 - '@scure/bip39': 1.4.0 + '@noble/ciphers': 1.2.1 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 ethereum-types@3.7.1: dependencies: @@ -53244,7 +53230,7 @@ snapshots: eventsource@2.0.2: {} - eventsource@3.0.2: + eventsource@3.0.5: dependencies: eventsource-parser: 3.0.0 @@ -53895,24 +53881,24 @@ snapshots: fsevents@2.3.3: optional: true - fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): + fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 bundle-require: 5.1.0(esbuild@0.24.2) chalk: 4.1.2 @@ -54511,10 +54497,10 @@ snapshots: hard-rejection@2.1.0: {} - hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): + hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): @@ -54548,7 +54534,7 @@ snapshots: - supports-color - utf-8-validate - hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): + hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -54595,7 +54581,7 @@ snapshots: uuid: 8.3.2 ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - bufferutil @@ -55964,16 +55950,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest-cli@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -56098,7 +56084,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.26.7 '@jest/test-sequencer': 29.7.0 @@ -56123,7 +56109,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -56672,12 +56658,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-cli: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -59213,7 +59199,7 @@ snapshots: node-machine-id@1.1.12: {} - node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.10.10): + node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.12.0): dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -59227,7 +59213,7 @@ snapshots: type-is: 1.6.18 optionalDependencies: '@types/express': 5.0.0 - '@types/node': 22.10.10 + '@types/node': 22.12.0 node-releases@2.0.19: {} @@ -60485,7 +60471,7 @@ snapshots: async: 3.2.6 debug: 4.4.0(supports-color@8.1.1) pidusage: 2.0.21 - systeminformation: 5.23.5 + systeminformation: 5.23.8 tx2: 1.0.5 transitivePeerDependencies: - supports-color @@ -60531,7 +60517,7 @@ snapshots: pngjs@5.0.0: {} - pnpm@9.14.4: {} + pnpm@9.15.0: {} points-on-curve@0.2.0: {} @@ -60784,13 +60770,13 @@ snapshots: postcss: 8.5.1 ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@16.18.125)(typescript@5.7.3) - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2): dependencies: @@ -61495,10 +61481,10 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 - pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.6.3)(utf-8-validate@5.0.10): + pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@rollup/plugin-json': 6.1.0(rollup@4.32.0) + '@rollup/plugin-json': 6.1.0(rollup@4.32.1) '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -61509,10 +61495,10 @@ snapshots: - typescript - utf-8-validate - pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10): + pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.1)(typescript@5.7.3)(utf-8-validate@5.0.10): dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@rollup/plugin-json': 6.1.0(rollup@4.32.0) + '@rollup/plugin-json': 6.1.0(rollup@4.32.1) '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -61526,7 +61512,7 @@ snapshots: pumpdotfun-sdk@1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@6.0.5): dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5) - '@rollup/plugin-json': 6.1.0(rollup@4.32.0) + '@rollup/plugin-json': 6.1.0(rollup@4.32.1) '@solana/spl-token': 0.4.6(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@6.0.5) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5) transitivePeerDependencies: @@ -62478,14 +62464,14 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.26.2 - rollup-plugin-visualizer@5.14.0(rollup@4.32.0): + rollup-plugin-visualizer@5.14.0(rollup@4.32.1): dependencies: open: 8.4.2 picomatch: 4.0.2 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.32.0 + rollup: 4.32.1 rollup@2.79.2: optionalDependencies: @@ -62495,29 +62481,29 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.32.0: + rollup@4.32.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.32.0 - '@rollup/rollup-android-arm64': 4.32.0 - '@rollup/rollup-darwin-arm64': 4.32.0 - '@rollup/rollup-darwin-x64': 4.32.0 - '@rollup/rollup-freebsd-arm64': 4.32.0 - '@rollup/rollup-freebsd-x64': 4.32.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.32.0 - '@rollup/rollup-linux-arm-musleabihf': 4.32.0 - '@rollup/rollup-linux-arm64-gnu': 4.32.0 - '@rollup/rollup-linux-arm64-musl': 4.32.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.32.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.32.0 - '@rollup/rollup-linux-riscv64-gnu': 4.32.0 - '@rollup/rollup-linux-s390x-gnu': 4.32.0 - '@rollup/rollup-linux-x64-gnu': 4.32.0 - '@rollup/rollup-linux-x64-musl': 4.32.0 - '@rollup/rollup-win32-arm64-msvc': 4.32.0 - '@rollup/rollup-win32-ia32-msvc': 4.32.0 - '@rollup/rollup-win32-x64-msvc': 4.32.0 + '@rollup/rollup-android-arm-eabi': 4.32.1 + '@rollup/rollup-android-arm64': 4.32.1 + '@rollup/rollup-darwin-arm64': 4.32.1 + '@rollup/rollup-darwin-x64': 4.32.1 + '@rollup/rollup-freebsd-arm64': 4.32.1 + '@rollup/rollup-freebsd-x64': 4.32.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.32.1 + '@rollup/rollup-linux-arm-musleabihf': 4.32.1 + '@rollup/rollup-linux-arm64-gnu': 4.32.1 + '@rollup/rollup-linux-arm64-musl': 4.32.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.32.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.32.1 + '@rollup/rollup-linux-riscv64-gnu': 4.32.1 + '@rollup/rollup-linux-s390x-gnu': 4.32.1 + '@rollup/rollup-linux-x64-gnu': 4.32.1 + '@rollup/rollup-linux-x64-musl': 4.32.1 + '@rollup/rollup-win32-arm64-msvc': 4.32.1 + '@rollup/rollup-win32-ia32-msvc': 4.32.1 + '@rollup/rollup-win32-x64-msvc': 4.32.1 fsevents: 2.3.3 roughjs@4.6.6: @@ -63223,7 +63209,7 @@ snapshots: '@metaplex-foundation/umi-bundle-defaults': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13) '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@meteora-ag/alpha-vault': 1.1.8(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@meteora-ag/dlmm': 1.3.9(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@meteora-ag/dlmm': 1.3.10(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@onsol/tldparser': 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0) '@orca-so/whirlpools-sdk': 0.13.13(@coral-xyz/anchor@0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0))(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0) @@ -63281,15 +63267,15 @@ snapshots: - utf-8-validate - ws - solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@ai-sdk/openai': 1.1.5(zod@3.24.1) '@bonfida/spl-name-service': 3.0.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.107.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) + '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@langchain/core': 0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) '@langchain/groq': 0.1.3(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@langchain/langgraph': 0.2.41(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) @@ -63305,7 +63291,7 @@ snapshots: '@metaplex-foundation/umi-bundle-defaults': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(encoding@0.1.13) '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@meteora-ag/alpha-vault': 1.1.8(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@meteora-ag/dlmm': 1.3.9(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@meteora-ag/dlmm': 1.3.10(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@onsol/tldparser': 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0) '@orca-so/whirlpools-sdk': 0.13.13(@coral-xyz/anchor@0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0))(@solana/spl-token@0.4.9(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(decimal.js@10.5.0) @@ -64020,13 +64006,13 @@ snapshots: dependencies: acorn-node: 1.8.2 - systeminformation@5.23.5: {} + systeminformation@5.23.8: {} tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))): dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) tailwindcss@3.4.17: dependencies: @@ -64055,7 +64041,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -64074,7 +64060,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -64260,7 +64246,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thirdweb@5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): + thirdweb@5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): dependencies: '@coinbase/wallet-sdk': 4.2.4 '@emotion/react': 11.14.0(@types/react@19.0.8)(react@19.0.0) @@ -64538,13 +64524,13 @@ snapshots: trough@2.2.0: {} - trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4): + trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4): dependencies: '@trpc/server': 10.40.0 co-body: 6.2.0 h3: 1.14.0 lodash.clonedeep: 4.5.0 - node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.10.10) + node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.12.0) openapi-types: 12.1.3 zod: 3.22.4 zod-to-json-schema: 3.24.1(zod@3.22.4) @@ -64619,12 +64605,12 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.7) - ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3): + ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -64748,14 +64734,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64768,14 +64754,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64788,14 +64774,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64909,7 +64895,7 @@ snapshots: joycon: 3.1.1 postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@16.18.125)(typescript@5.7.3)) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.32.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 @@ -64933,7 +64919,7 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.32.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -64961,7 +64947,7 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.32.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -64989,7 +64975,7 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.32.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -65901,13 +65887,13 @@ snapshots: - supports-color - terser - vite-node@1.1.3(@types/node@22.10.10)(terser@5.37.0): + vite-node@1.1.3(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -65955,13 +65941,13 @@ snapshots: - supports-color - terser - vite-node@1.2.1(@types/node@22.10.10)(terser@5.37.0): + vite-node@1.2.1(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -65990,12 +65976,12 @@ snapshots: - supports-color - terser - vite-node@2.1.4(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.4(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66007,13 +65993,13 @@ snapshots: - supports-color - terser - vite-node@2.1.5(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.5(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66043,13 +66029,13 @@ snapshots: - supports-color - terser - vite-node@2.1.8(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66079,13 +66065,13 @@ snapshots: - supports-color - terser - vite-node@3.0.2(@types/node@22.10.10)(terser@5.37.0): + vite-node@3.0.2(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66115,12 +66101,12 @@ snapshots: - supports-color - terser - vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: chalk: 4.1.2 debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -66135,13 +66121,13 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript @@ -66161,7 +66147,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: '@types/node': 18.19.74 fsevents: 2.3.3 @@ -66171,19 +66157,19 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: '@types/node': 20.17.9 fsevents: 2.3.3 terser: 5.37.0 - vite@5.4.12(@types/node@22.10.10)(terser@5.37.0): + vite@5.4.12(@types/node@22.12.0)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 fsevents: 2.3.3 terser: 5.37.0 @@ -66191,7 +66177,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: '@types/node': 22.8.4 fsevents: 2.3.3 @@ -66201,7 +66187,7 @@ snapshots: dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: '@types/node': 20.17.9 fsevents: 2.3.3 @@ -66211,13 +66197,13 @@ snapshots: yaml: 2.7.0 optional: true - vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.32.0 + rollup: 4.32.1 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.37.0 @@ -66264,7 +66250,7 @@ snapshots: - supports-color - terser - vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.1.3 '@vitest/runner': 1.1.3 @@ -66284,11 +66270,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.1.3(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.1.3(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66409,7 +66395,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66429,11 +66415,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66445,7 +66431,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66465,11 +66451,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66484,7 +66470,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66520,7 +66506,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66553,10 +66539,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66572,11 +66558,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66589,10 +66575,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66608,11 +66594,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66625,10 +66611,10 @@ snapshots: - supports-color - terser - vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -66644,11 +66630,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.5(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.5(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66664,7 +66650,7 @@ snapshots: vitest@2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66697,10 +66683,10 @@ snapshots: - supports-color - terser - vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66716,11 +66702,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66769,10 +66755,10 @@ snapshots: - supports-color - terser - vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 @@ -66788,11 +66774,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 3.0.2(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 3.0.2(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66808,7 +66794,7 @@ snapshots: vitest@3.0.2(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2