diff --git a/agent/package.json b/agent/package.json
index e869abfcd89..2cbc1bdfeb4 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -18,140 +18,9 @@
"exec": "node --enable-source-maps --loader ts-node/esm src/index.ts"
},
"dependencies": {
- "@elizaos/adapter-supabase": "workspace:*",
- "@elizaos/adapter-pglite": "workspace:*",
- "@elizaos/adapter-postgres": "workspace:*",
- "@elizaos/adapter-redis": "workspace:*",
- "@elizaos/adapter-sqlite": "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-zerion": "workspace:*",
- "@elizaos/plugin-binance": "workspace:*",
- "@elizaos/plugin-avail": "workspace:*",
- "@elizaos/plugin-bnb": "workspace:*",
"@elizaos/plugin-bootstrap": "workspace:*",
- "@elizaos/plugin-di": "workspace:*",
- "@elizaos/plugin-intiface": "workspace:*",
- "@elizaos/plugin-coinbase": "workspace:*",
- "@elizaos/plugin-coingecko": "workspace:*",
- "@elizaos/plugin-coinmarketcap": "workspace:*",
- "@elizaos/plugin-conflux": "workspace:*",
- "@elizaos/plugin-cosmos": "workspace:*",
- "@elizaos/plugin-desk-exchange": "workspace:*",
- "@elizaos/plugin-echochambers": "workspace:*",
- "@elizaos/plugin-evm": "workspace:*",
- "@elizaos/plugin-edwin": "workspace:*",
- "@elizaos/plugin-flow": "workspace:*",
- "@elizaos/plugin-gelato": "workspace:*",
- "@elizaos/plugin-giphy": "workspace:*",
- "@elizaos/plugin-gitbook": "workspace:*",
- "@elizaos/plugin-gitcoin-passport": "workspace:*",
- "@elizaos/plugin-goat": "workspace:*",
- "@elizaos/plugin-icp": "workspace:*",
- "@elizaos/plugin-initia": "workspace:*",
- "@elizaos/plugin-image-generation": "workspace:*",
- "@elizaos/plugin-lens-network": "workspace:*",
- "@elizaos/plugin-lit": "workspace:*",
- "@elizaos/plugin-massa": "workspace:*",
- "@elizaos/plugin-mind-network": "workspace:*",
- "@elizaos/plugin-moralis": "workspace:*",
- "@elizaos/plugin-movement": "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-story": "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-ton": "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:*",
- "@elizaos/plugin-multiversx": "workspace:*",
- "@elizaos/plugin-near": "workspace:*",
- "@elizaos/plugin-stargaze": "workspace:*",
- "@elizaos/plugin-zksync-era": "workspace:*",
+ "@elizaos/core": "workspace:*",
"readline": "1.3.0",
"ws": "8.18.0",
"yargs": "17.7.2"
diff --git a/agent/src/index.ts b/agent/src/index.ts
index 1ded5914eb0..0c0e029770c 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -1,165 +1,163 @@
-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 { FarcasterClientInterface } from "@elizaos/client-farcaster";
-import { OmniflixPlugin } from "@elizaos/plugin-omniflix";
-import { JeeterClientInterface } from "@elizaos/client-simsai";
-import { XmtpClientInterface } from "@elizaos/client-xmtp";
+// import { PGLiteDatabaseAdapter } from "@elizaos/adapter-pglite";
+// import { PostgresDatabaseAdapter } from "@elizaos/adapter-postgres";
+// import { QdrantDatabaseAdapter } from "@elizaos/adapter-qdrant";
+// import { RedisClient } from "@elizaos/cache-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 { 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 { 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 { 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 {
AgentRuntime,
CacheManager,
CacheStore,
type Character,
type Client,
- Clients,
+ // Clients,
DbCacheAdapter,
defaultCharacter,
elizaLogger,
FsCacheAdapter,
type IAgentRuntime,
- type ICacheManager,
type IDatabaseAdapter,
type IDatabaseCacheAdapter,
+ type ClientInstance,
+ type Adapter,
ModelProviderName,
parseBooleanFromText,
settings,
stringToUuid,
validateCharacterConfig,
} from "@elizaos/core";
-import { zgPlugin } from "@elizaos/plugin-0g";
-import { footballPlugin } from "@elizaos/plugin-football";
+// 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 { 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 { 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 { deskExchangePlugin } from "@elizaos/plugin-desk-exchange";
-import { evmPlugin } from "@elizaos/plugin-evm";
-import { edwinPlugin } from "@elizaos/plugin-edwin";
-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-lens-network";
-import { litPlugin } from "@elizaos/plugin-lit";
-import { mindNetworkPlugin } from "@elizaos/plugin-mind-network";
-import { multiversxPlugin } from "@elizaos/plugin-multiversx";
-import { nearPlugin } from "@elizaos/plugin-near";
-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 { 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 Database from "better-sqlite3";
+// 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 { deskExchangePlugin } from "@elizaos/plugin-desk-exchange";
+// import { evmPlugin } from "@elizaos/plugin-evm";
+// import { edwinPlugin } from "@elizaos/plugin-edwin";
+// 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-lens-network";
+// import { litPlugin } from "@elizaos/plugin-lit";
+// import { mindNetworkPlugin } from "@elizaos/plugin-mind-network";
+// import { multiversxPlugin } from "@elizaos/plugin-multiversx";
+// import { nearPlugin } from "@elizaos/plugin-near";
+// 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 { 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 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 { ankrPlugin } from "@elizaos/plugin-ankr";
-import { formPlugin } from "@elizaos/plugin-form";
-import { MongoClient } from "mongodb";
-import { quickIntelPlugin } from "@elizaos/plugin-quick-intel";
-
-import { trikonPlugin } from "@elizaos/plugin-trikon";
-import arbitragePlugin from "@elizaos/plugin-arbitrage";
+// import { emailPlugin } from "@elizaos/plugin-email";
+// 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 { 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
@@ -240,7 +238,7 @@ function mergeCharacters(base: Character, child: Character): Character {
function isAllStrings(arr: unknown[]): boolean {
return Array.isArray(arr) && arr.every((item) => typeof item === "string");
}
-export async function loadCharacterFromOnchain(): Promise {
+/* export async function loadCharacterFromOnchain(): Promise {
const jsonText = onchainJson;
console.log("JSON:", jsonText);
@@ -295,7 +293,7 @@ export async function loadCharacterFromOnchain(): Promise {
);
process.exit(1);
}
-}
+} */
async function loadCharactersFromUrl(url: string): Promise {
try {
@@ -681,7 +679,7 @@ export function getTokenForProvider(
}
function initializeDatabase(dataDir: string) {
- if (process.env.MONGODB_CONNECTION_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,
@@ -786,7 +784,7 @@ function initializeDatabase(dataDir: string) {
});
return db;
- }
+ } */
}
// also adds plugins from character file into the runtime
@@ -796,118 +794,115 @@ export async function initializeClients(
) {
// 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()) || [];
+ const clients: ClientInstance[] = [];
+ const clientTypes = clients.map((c) => c.name);
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.AUTO)) {
+ // const autoClient = await AutoClientInterface.start(runtime);
+ // if (autoClient) clients.auto = autoClient;
+ // }
- if (clientTypes.includes(Clients.DISCORD)) {
- const discordClient = await DiscordClientInterface.start(runtime);
- if (discordClient) clients.discord = discordClient;
- }
+ // if (clientTypes.includes(Clients.XMTP)) {
+ // const xmtpClient = await XmtpClientInterface.start(runtime);
+ // if (xmtpClient) clients.xmtp = xmtpClient;
+ // }
- if (clientTypes.includes(Clients.TELEGRAM)) {
- const telegramClient = await TelegramClientInterface.start(runtime);
- if (telegramClient) clients.telegram = telegramClient;
- }
+ // if (clientTypes.includes(Clients.DISCORD)) {
+ // const discordClient = await DiscordClientInterface.start(runtime);
+ // if (discordClient) clients.discord = discordClient;
+ // }
- if (clientTypes.includes(Clients.TELEGRAM_ACCOUNT)) {
- const telegramAccountClient =
- await TelegramAccountClientInterface.start(runtime);
- if (telegramAccountClient)
- clients.telegram_account = telegramAccountClient;
- }
+ // if (clientTypes.includes(Clients.TELEGRAM)) {
+ // const telegramClient = await TelegramClientInterface.start(runtime);
+ // if (telegramClient) clients.telegram = telegramClient;
+ // }
- if (clientTypes.includes(Clients.TWITTER)) {
- const twitterClient = await TwitterClientInterface.start(runtime);
- if (twitterClient) {
- clients.twitter = twitterClient;
- }
- }
+ // if (clientTypes.includes(Clients.TELEGRAM_ACCOUNT)) {
+ // const telegramAccountClient =
+ // await TelegramAccountClientInterface.start(runtime);
+ // if (telegramAccountClient)
+ // clients.telegram_account = telegramAccountClient;
+ // }
- if (clientTypes.includes(Clients.ALEXA)) {
- const alexaClient = await AlexaClientInterface.start(runtime);
- if (alexaClient) {
- clients.alexa = alexaClient;
- }
- }
+ // if (clientTypes.includes(Clients.TWITTER)) {
+ // const twitterClient = await TwitterClientInterface.start(runtime);
+ // if (twitterClient) {
+ // clients.twitter = twitterClient;
+ // }
+ // }
- if (clientTypes.includes(Clients.INSTAGRAM)) {
- const instagramClient = await InstagramClientInterface.start(runtime);
- if (instagramClient) {
- clients.instagram = instagramClient;
- }
- }
+ // if (clientTypes.includes(Clients.ALEXA)) {
+ // const alexaClient = await AlexaClientInterface.start(runtime);
+ // if (alexaClient) {
+ // clients.alexa = alexaClient;
+ // }
+ // }
- if (clientTypes.includes(Clients.FARCASTER)) {
- const farcasterClient = await FarcasterClientInterface.start(runtime);
- if (farcasterClient) {
- clients.farcaster = farcasterClient;
- }
- }
+ // if (clientTypes.includes(Clients.INSTAGRAM)) {
+ // const instagramClient = await InstagramClientInterface.start(runtime);
+ // if (instagramClient) {
+ // clients.instagram = instagramClient;
+ // }
+ // }
- if (clientTypes.includes("lens")) {
- const lensClient = new LensAgentClient(runtime);
- lensClient.start();
- clients.lens = lensClient;
- }
+ // if (clientTypes.includes(Clients.FARCASTER)) {
+ // const farcasterClient = await FarcasterClientInterface.start(runtime);
+ // if (farcasterClient) {
+ // clients.farcaster = farcasterClient;
+ // }
+ // }
- if (clientTypes.includes(Clients.SIMSAI)) {
- const simsaiClient = await JeeterClientInterface.start(runtime);
- if (simsaiClient) clients.simsai = simsaiClient;
- }
+ // if (clientTypes.includes("lens")) {
+ // const lensClient = new LensAgentClient(runtime);
+ // lensClient.start();
+ // clients.lens = lensClient;
+ // }
- elizaLogger.log("client keys", Object.keys(clients));
+ // if (clientTypes.includes(Clients.SIMSAI)) {
+ // const simsaiClient = await JeeterClientInterface.start(runtime);
+ // if (simsaiClient) clients.simsai = simsaiClient;
+ // }
- if (clientTypes.includes("deva")) {
- if (clientTypes.includes("deva")) {
- const devaClient = await DevaClientInterface.start(runtime);
- if (devaClient) clients.deva = devaClient;
- }
- }
+ // if (clientTypes.includes("deva")) {
+ // if (clientTypes.includes("deva")) {
+ // const devaClient = await DevaClientInterface.start(runtime);
+ // if (devaClient) clients.deva = devaClient;
+ // }
+ // }
- if (clientTypes.includes("slack")) {
- const slackClient = await SlackClientInterface.start(runtime);
- if (slackClient) clients.slack = slackClient; // Use object property instead of push
- }
+ // 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;
- }
+ // 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", "");
- }
+ // // 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()}`;
- }
+ // // 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);
+ // const clientType = determineClientType(client);
elizaLogger.debug(
- `Initializing client of type: ${clientType}`
+ `Initializing client: ${client.name}`
);
- clients[clientType] = startedClient;
+ clients.push(startedClient);
}
}
}
@@ -920,43 +915,41 @@ function getSecret(character: Character, secret: string) {
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}`);
- 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");
- }
+ // 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;
@@ -974,343 +967,55 @@ export async function createAgent(
// 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");
- }
+ let verifiableInferenceAdapter = null;
+ // 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_PRIVATE_KEY") ||
- getSecret(character, "SOLANA_PRIVATE_KEY"))
- ? edwinPlugin
- : 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,
- getSecret(character, "DESK_EXCHANGE_PRIVATE_KEY") ||
- getSecret(character, "DESK_EXCHANGE_NETWORK")
- ? deskExchangePlugin
- : null,
]
.flat()
.filter(Boolean),
providers: [],
managers: [],
- cacheManager: cache,
fetch: logFetch,
verifiableInferenceAdapter,
});
@@ -1345,21 +1050,21 @@ function initializeCache(
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.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) {
@@ -1387,6 +1092,26 @@ function initializeCache(
}
}
+async function findDatabaseAdapter(runtime: AgentRuntime) {
+ const { adapters } = runtime;
+ let adapter: Adapter | undefined;
+ // if not found, default to sqlite
+ if (adapters.length === 0) {
+ const sqliteAdapterPlugin = await import('@elizaos-plugins/adapter-sqlite');
+ const sqliteAdapterPluginDefault = sqliteAdapterPlugin.default;
+ adapter = sqliteAdapterPluginDefault.adapters[0];
+ if (!adapter) {
+ throw new Error("Internal error: No database adapter found for default adapter-sqlite");
+ }
+ } else if (adapters.length === 1) {
+ adapter = adapters[0];
+ } else {
+ throw new Error("Multiple database adapters found: " + adapters.map(a => a.name).join(", ") + '. You must have no more than one. Adjust your plugins configuration.');
+ }
+ const adapterInterface = adapter?.init(runtime);
+ return adapterInterface;
+}
+
async function startAgent(
character: Character,
directClient: DirectClient
@@ -1397,29 +1122,25 @@ async function startAgent(
character.username ??= character.name;
const token = getTokenForProvider(character.modelProvider, character);
- const dataDir = path.join(__dirname, "../data");
-
- if (!fs.existsSync(dataDir)) {
- fs.mkdirSync(dataDir, { recursive: true });
- }
- db = initializeDatabase(dataDir) as IDatabaseAdapter &
- IDatabaseCacheAdapter;
+ const runtime: AgentRuntime = await createAgent(
+ character,
+ token
+ );
- await db.init();
+ // initialize database
+ // find a db from the plugins
+ db = await findDatabaseAdapter(runtime);
+ runtime.databaseAdapter = db;
+ // initialize cache
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
- );
+ runtime.cacheManager = cache;
// start services/plugins/process knowledge
await runtime.initialize();
@@ -1478,18 +1199,18 @@ const startAgents = async () => {
const charactersArg = args.characters || args.character;
let characters = [defaultCharacter];
- if (process.env.IQ_WALLET_ADDRESS && process.env.IQSOlRPC) {
- characters = await loadCharacterFromOnchain();
- }
+ // if (process.env.IQ_WALLET_ADDRESS && process.env.IQSOlRPC) {
+ // characters = await loadCharacterFromOnchain();
+ // }
- const notOnchainJson = !onchainJson || onchainJson == "null";
+ // const notOnchainJson = !onchainJson || onchainJson == "null";
- if ((notOnchainJson && charactersArg) || hasValidRemoteUrls()) {
+ if ((/* notOnchainJson && */ charactersArg) || hasValidRemoteUrls()) {
characters = await loadCharacters(charactersArg);
}
// Normalize characters for injectable plugins
- characters = await Promise.all(characters.map(normalizeCharacter));
+ // characters = await Promise.all(characters.map(normalizeCharacter));
try {
for (const character of characters) {
@@ -1508,7 +1229,10 @@ const startAgents = async () => {
}
// upload some agent functionality into directClient
+ // XXX TODO: is this still used?
directClient.startAgent = async (character) => {
+ throw new Error('not implemented');
+
// Handle plugins
character.plugins = await handlePluginImporting(character.plugins);
diff --git a/characters/trump.character.json b/characters/trump.character.json
index 66329e2d7c2..1e4970c7508 100644
--- a/characters/trump.character.json
+++ b/characters/trump.character.json
@@ -1,6 +1,7 @@
{
"name": "trump",
- "clients": [],
+ "clients": [
+ ],
"modelProvider": "openai",
"settings": {
"secrets": {},
@@ -8,7 +9,8 @@
"model": "en_US-male-medium"
}
},
- "plugins": [],
+ "plugins": [
+ ],
"bio": [
"secured the Southern Border COMPLETELY (until they DESTROYED it)",
"protected WOMEN'S SPORTS (while Democrats let MEN compete)",
diff --git a/client/src/lib/info.json b/client/src/lib/info.json
index 1023abca0a9..6a42d0bbd27 100644
--- a/client/src/lib/info.json
+++ b/client/src/lib/info.json
@@ -1 +1 @@
-{"version": "0.1.9"}
+{"version": "0.25.6-alpha.1"}
diff --git a/package.json b/package.json
index 62cce98f4b9..4fcf960cac6 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,7 @@
"dependencies": {
"@0glabs/0g-ts-sdk": "0.2.1",
"@coinbase/coinbase-sdk": "0.10.0",
+ "@elizaos-plugins/adapter-sqlite": "workspace:*",
"@deepgram/sdk": "^3.9.0",
"@injectivelabs/sdk-ts": "^1.14.33",
"@vitest/eslint-plugin": "1.0.1",
diff --git a/packages/adapter-mongodb/package.json b/packages/adapter-mongodb/package.json
index 68b1dfceef1..05b4229ed04 100644
--- a/packages/adapter-mongodb/package.json
+++ b/packages/adapter-mongodb/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-mongodb",
+ "name": "@elizaos-plugins/adapter-mongodb",
"version": "0.25.6-alpha.1",
"description": "MongoDB adapter for ElizaOS",
"main": "dist/index.js",
diff --git a/packages/adapter-mongodb/src/index.ts b/packages/adapter-mongodb/src/index.ts
index 53a3b35561d..ca68c6ba622 100644
--- a/packages/adapter-mongodb/src/index.ts
+++ b/packages/adapter-mongodb/src/index.ts
@@ -11,6 +11,9 @@ import {
type Memory,
type Relationship,
type UUID, elizaLogger,
+ type Plugin,
+ type Adapter,
+ type IAgentRuntime,
} from "@elizaos/core";
import { v4 } from "uuid";
@@ -35,7 +38,7 @@ interface KnowledgeDocument {
isShared: boolean;
}
-export class MongoDBDatabaseAdapter
+class MongoDBDatabaseAdapter
extends DatabaseAdapter
implements IDatabaseCacheAdapter
{
@@ -1443,3 +1446,46 @@ export class MongoDBDatabaseAdapter
}
+const mongoDBAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const MONGODB_CONNECTION_STRING = runtime.getSetting("MONGODB_CONNECTION_STRING");
+ if (MONGODB_CONNECTION_STRING) {
+ elizaLogger.log("Initializing database on MongoDB Atlas");
+ const client = new MongoClient(MONGODB_CONNECTION_STRING, {
+ maxPoolSize: 100,
+ minPoolSize: 5,
+ maxIdleTimeMS: 60000,
+ connectTimeoutMS: 10000,
+ serverSelectionTimeoutMS: 5000,
+ socketTimeoutMS: 45000,
+ compressors: ["zlib"],
+ retryWrites: true,
+ retryReads: true,
+ });
+
+ const dbName = runtime.getSetting("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 {
+ throw new Error("MONGODB_CONNECTION_STRING is not set");
+ }
+ },
+};
+
+const mongodbPlugin: Plugin = {
+ name: "mongodb",
+ description: "MongoDB database adapter plugin",
+ adapters: [mongoDBAdapter],
+};
+export default mongodbPlugin;
\ No newline at end of file
diff --git a/packages/adapter-pglite/package.json b/packages/adapter-pglite/package.json
index 66b18f65343..c8366c5fb08 100644
--- a/packages/adapter-pglite/package.json
+++ b/packages/adapter-pglite/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-pglite",
+ "name": "@elizaos-plugins/adapter-pglite",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-pglite/src/index.ts b/packages/adapter-pglite/src/index.ts
index 71e821b2c6b..229b37d2f86 100644
--- a/packages/adapter-pglite/src/index.ts
+++ b/packages/adapter-pglite/src/index.ts
@@ -15,6 +15,9 @@ import {
DatabaseAdapter,
EmbeddingProvider,
type RAGKnowledgeItem,
+ type Adapter,
+ type IAgentRuntime,
+ type Plugin,
} from "@elizaos/core";
import fs from "fs";
import { fileURLToPath } from "url";
@@ -31,7 +34,7 @@ import { fuzzystrmatch } from "@electric-sql/pglite/contrib/fuzzystrmatch";
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 class PGLiteDatabaseAdapter
+class PGLiteDatabaseAdapter
extends DatabaseAdapter
implements IDatabaseCacheAdapter
{
@@ -1560,4 +1563,25 @@ export class PGLiteDatabaseAdapter
}
}
-export default PGLiteDatabaseAdapter;
+const pgLiteAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const PGLITE_DATA_DIR = runtime.getSetting("PGLITE_DATA_DIR");
+ if (PGLITE_DATA_DIR) {
+ elizaLogger.info("Initializing PgLite adapter...");
+ // `dataDir: memory://` for in memory pg
+ const db = new PGLiteDatabaseAdapter({
+ dataDir: PGLITE_DATA_DIR,
+ });
+ return db;
+ } else {
+ throw new Error("PGLITE_DATA_DIR is not set");
+ }
+ },
+};
+
+const pgLite: Plugin = {
+ name: "pglite",
+ description: "PgLite database adapter plugin",
+ adapters: [pgLiteAdapter],
+};
+export default pgLite;
diff --git a/packages/adapter-postgres/package.json b/packages/adapter-postgres/package.json
index 92abe114e04..3a0cc5e2eef 100644
--- a/packages/adapter-postgres/package.json
+++ b/packages/adapter-postgres/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-postgres",
+ "name": "@elizaos-plugins/adapter-postgres",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-postgres/src/index.ts b/packages/adapter-postgres/src/index.ts
index 55511e6d025..d9b6343b85c 100644
--- a/packages/adapter-postgres/src/index.ts
+++ b/packages/adapter-postgres/src/index.ts
@@ -19,6 +19,9 @@ import {
type Memory,
type Relationship,
type UUID,
+ type IAgentRuntime,
+ type Adapter,
+ type Plugin,
} from "@elizaos/core";
import fs from "fs";
import path from "path";
@@ -33,7 +36,7 @@ import { fileURLToPath } from "url";
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 class PostgresDatabaseAdapter
+class PostgresDatabaseAdapter
extends DatabaseAdapter
implements IDatabaseCacheAdapter
{
@@ -1811,4 +1814,36 @@ export class PostgresDatabaseAdapter
}
}
-export default PostgresDatabaseAdapter;
+const postgresAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const POSTGRES_URL = runtime.getSetting("POSTGRES_URL");
+ if (POSTGRES_URL) {
+ elizaLogger.info("Initializing PostgreSQL connection...");
+ const db = new PostgresDatabaseAdapter({
+ connectionString: 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 {
+ throw new Error("POSTGRES_URL is not set");
+ }
+ },
+};
+const postgresPlugin: Plugin = {
+ name: "postgres",
+ description: "PostgreSQL database adapter plugin",
+ adapters: [postgresAdapter],
+};
+export default postgresPlugin;
diff --git a/packages/adapter-qdrant/package.json b/packages/adapter-qdrant/package.json
index c31a84e199b..02cf7cccb83 100644
--- a/packages/adapter-qdrant/package.json
+++ b/packages/adapter-qdrant/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-qdrant",
+ "name": "@elizaos-plugins/adapter-qdrant",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-qdrant/src/index.ts b/packages/adapter-qdrant/src/index.ts
index 0233a3fb8a0..4e9fea94788 100644
--- a/packages/adapter-qdrant/src/index.ts
+++ b/packages/adapter-qdrant/src/index.ts
@@ -13,10 +13,12 @@ import {
type Memory,
type Goal,
type Relationship,
+ type IAgentRuntime,
+ type Adapter,
+ type Plugin,
} from "@elizaos/core";
-
-export class QdrantDatabaseAdapter extends DatabaseAdapter implements IDatabaseCacheAdapter {
+class QdrantDatabaseAdapter extends DatabaseAdapter implements IDatabaseCacheAdapter {
db: QdrantClient;
collectionName: string = 'collection';
qdrantV5UUIDNamespace: string = "00000000-0000-0000-0000-000000000000";
@@ -403,4 +405,36 @@ export class QdrantDatabaseAdapter extends DatabaseAdapter imple
}
}
-export default QdrantDatabaseAdapter;
+const qdrantDatabaseAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const QDRANT_URL = runtime.getSetting("QDRANT_URL");
+ const QDRANT_KEY = runtime.getSetting("QDRANT_KEY");
+ const QDRANT_PORT = runtime.getSetting("QDRANT_PORT");
+ const QDRANT_VECTOR_SIZE = runtime.getSetting("QDRANT_VECTOR_SIZE");
+
+ if (
+ QDRANT_URL &&
+ QDRANT_KEY &&
+ QDRANT_PORT &&
+ QDRANT_VECTOR_SIZE
+ ) {
+ elizaLogger.info("Initializing Qdrant adapter...");
+ const db = new QdrantDatabaseAdapter(
+ QDRANT_URL,
+ QDRANT_KEY,
+ Number(QDRANT_PORT),
+ Number(QDRANT_VECTOR_SIZE)
+ );
+ return db;
+ } else {
+ throw new Error("QDRANT_URL, QDRANT_KEY, QDRANT_PORT, and QDRANT_VECTOR_SIZE are not set");
+ }
+ },
+};
+
+const qdrantPlugin: Plugin = {
+ name: "qdrant",
+ description: "Qdrant database adapter plugin",
+ adapters: [qdrantDatabaseAdapter],
+};
+export default qdrantPlugin;
\ No newline at end of file
diff --git a/packages/adapter-redis/.npmignore b/packages/adapter-redis/.npmignore
deleted file mode 100644
index 078562eceab..00000000000
--- a/packages/adapter-redis/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*
-
-!dist/**
-!package.json
-!readme.md
-!tsup.config.ts
\ No newline at end of file
diff --git a/packages/adapter-redis/__tests__/redis-adapter.test.ts b/packages/adapter-redis/__tests__/redis-adapter.test.ts
deleted file mode 100644
index dff80d0837e..00000000000
--- a/packages/adapter-redis/__tests__/redis-adapter.test.ts
+++ /dev/null
@@ -1,183 +0,0 @@
-import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
-import { RedisClient } from '../src';
-import { type UUID, elizaLogger } from '@elizaos/core';
-import Redis from 'ioredis';
-
-// Mock ioredis
-vi.mock('ioredis', () => {
- const MockRedis = vi.fn(() => ({
- on: vi.fn(),
- get: vi.fn(),
- set: vi.fn(),
- del: vi.fn(),
- quit: vi.fn()
- }));
- return { default: MockRedis };
-});
-
-// Mock elizaLogger
-vi.mock('@elizaos/core', async () => {
- const actual = await vi.importActual('@elizaos/core');
- return {
- ...actual as any,
- elizaLogger: {
- success: vi.fn(),
- error: vi.fn()
- }
- };
-});
-
-describe('RedisClient', () => {
- let client: RedisClient;
- let mockRedis: any;
-
- beforeEach(() => {
- vi.clearAllMocks();
- client = new RedisClient('redis://localhost:6379');
- // Get the instance created by the constructor
- mockRedis = (Redis as unknown as ReturnType).mock.results[0].value;
- });
-
- afterEach(() => {
- vi.clearAllMocks();
- });
-
- describe('constructor', () => {
- it('should set up event handlers', () => {
- expect(mockRedis.on).toHaveBeenCalledWith('connect', expect.any(Function));
- expect(mockRedis.on).toHaveBeenCalledWith('error', expect.any(Function));
- });
-
- it('should log success on connect', () => {
- const connectHandler = mockRedis.on.mock.calls.find(call => call[0] === 'connect')[1];
- connectHandler();
- expect(elizaLogger.success).toHaveBeenCalledWith('Connected to Redis');
- });
-
- it('should log error on error event', () => {
- const error = new Error('Redis connection error');
- const errorHandler = mockRedis.on.mock.calls.find(call => call[0] === 'error')[1];
- errorHandler(error);
- expect(elizaLogger.error).toHaveBeenCalledWith('Redis error:', error);
- });
- });
-
- describe('getCache', () => {
- const agentId = 'test-agent' as UUID;
- const key = 'test-key';
- const expectedRedisKey = `${agentId}:${key}`;
-
- it('should return cached value when it exists', async () => {
- const cachedValue = 'cached-data';
- mockRedis.get.mockResolvedValueOnce(cachedValue);
-
- const result = await client.getCache({ agentId, key });
-
- expect(mockRedis.get).toHaveBeenCalledWith(expectedRedisKey);
- expect(result).toBe(cachedValue);
- });
-
- it('should return undefined when key does not exist', async () => {
- mockRedis.get.mockResolvedValueOnce(null);
-
- const result = await client.getCache({ agentId, key });
-
- expect(mockRedis.get).toHaveBeenCalledWith(expectedRedisKey);
- expect(result).toBeUndefined();
- });
-
- it('should handle errors and return undefined', async () => {
- const error = new Error('Redis error');
- mockRedis.get.mockRejectedValueOnce(error);
-
- const result = await client.getCache({ agentId, key });
-
- expect(mockRedis.get).toHaveBeenCalledWith(expectedRedisKey);
- expect(elizaLogger.error).toHaveBeenCalledWith('Error getting cache:', error);
- expect(result).toBeUndefined();
- });
- });
-
- describe('setCache', () => {
- const agentId = 'test-agent' as UUID;
- const key = 'test-key';
- const value = 'test-value';
- const expectedRedisKey = `${agentId}:${key}`;
-
- it('should successfully set cache value', async () => {
- mockRedis.set.mockResolvedValueOnce('OK');
-
- const result = await client.setCache({ agentId, key, value });
-
- expect(mockRedis.set).toHaveBeenCalledWith(expectedRedisKey, value);
- expect(result).toBe(true);
- });
-
- it('should handle errors and return false', async () => {
- const error = new Error('Redis error');
- mockRedis.set.mockRejectedValueOnce(error);
-
- const result = await client.setCache({ agentId, key, value });
-
- expect(mockRedis.set).toHaveBeenCalledWith(expectedRedisKey, value);
- expect(elizaLogger.error).toHaveBeenCalledWith('Error setting cache:', error);
- expect(result).toBe(false);
- });
- });
-
- describe('deleteCache', () => {
- const agentId = 'test-agent' as UUID;
- const key = 'test-key';
- const expectedRedisKey = `${agentId}:${key}`;
-
- it('should successfully delete cache when key exists', async () => {
- mockRedis.del.mockResolvedValueOnce(1);
-
- const result = await client.deleteCache({ agentId, key });
-
- expect(mockRedis.del).toHaveBeenCalledWith(expectedRedisKey);
- expect(result).toBe(true);
- });
-
- it('should return false when key does not exist', async () => {
- mockRedis.del.mockResolvedValueOnce(0);
-
- const result = await client.deleteCache({ agentId, key });
-
- expect(mockRedis.del).toHaveBeenCalledWith(expectedRedisKey);
- expect(result).toBe(false);
- });
-
- it('should handle errors and return false', async () => {
- const error = new Error('Redis error');
- mockRedis.del.mockRejectedValueOnce(error);
-
- const result = await client.deleteCache({ agentId, key });
-
- expect(mockRedis.del).toHaveBeenCalledWith(expectedRedisKey);
- expect(elizaLogger.error).toHaveBeenCalledWith('Error deleting cache:', error);
- expect(result).toBe(false);
- });
- });
-
- describe('disconnect', () => {
- it('should successfully disconnect from Redis', async () => {
- mockRedis.quit.mockResolvedValueOnce('OK');
-
- await client.disconnect();
-
- expect(mockRedis.quit).toHaveBeenCalled();
- expect(elizaLogger.success).toHaveBeenCalledWith('Disconnected from Redis');
- });
-
- it('should handle disconnect errors', async () => {
- const error = new Error('Redis disconnect error');
- mockRedis.quit.mockRejectedValueOnce(error);
-
- await client.disconnect();
-
- expect(mockRedis.quit).toHaveBeenCalled();
- expect(elizaLogger.error).toHaveBeenCalledWith('Error disconnecting from Redis:', error);
- });
- });
-});
diff --git a/packages/adapter-redis/package.json b/packages/adapter-redis/package.json
deleted file mode 100644
index 24d520d95ea..00000000000
--- a/packages/adapter-redis/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "@elizaos/adapter-redis",
- "version": "0.25.6-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"
- }
- }
- },
- "files": [
- "dist"
- ],
- "dependencies": {
- "@elizaos/core": "workspace:*",
- "ioredis": "5.4.2"
- },
- "devDependencies": {
- "@types/ioredis": "^5.0.0",
- "tsup": "8.3.5",
- "vitest": "^3.0.2"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "test": "vitest run",
- "test:watch": "vitest"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- },
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/adapter-redis/src/index.ts b/packages/adapter-redis/src/index.ts
deleted file mode 100644
index c993d8cec14..00000000000
--- a/packages/adapter-redis/src/index.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import Redis from "ioredis";
-import { type IDatabaseCacheAdapter, type UUID, elizaLogger } from "@elizaos/core";
-
-export class RedisClient implements IDatabaseCacheAdapter {
- private client: Redis;
-
- constructor(redisUrl: string) {
- this.client = new Redis(redisUrl);
-
- this.client.on("connect", () => {
- elizaLogger.success("Connected to Redis");
- });
-
- this.client.on("error", (err) => {
- elizaLogger.error("Redis error:", err);
- });
- }
-
- async getCache(params: {
- agentId: UUID;
- key: string;
- }): Promise {
- try {
- const redisKey = this.buildKey(params.agentId, params.key);
- const value = await this.client.get(redisKey);
- return value || undefined;
- } catch (err) {
- elizaLogger.error("Error getting cache:", err);
- return undefined;
- }
- }
-
- async setCache(params: {
- agentId: UUID;
- key: string;
- value: string;
- }): Promise {
- try {
- const redisKey = this.buildKey(params.agentId, params.key);
- await this.client.set(redisKey, params.value);
- return true;
- } catch (err) {
- elizaLogger.error("Error setting cache:", err);
- return false;
- }
- }
-
- async deleteCache(params: {
- agentId: UUID;
- key: string;
- }): Promise {
- try {
- const redisKey = this.buildKey(params.agentId, params.key);
- const result = await this.client.del(redisKey);
- return result > 0;
- } catch (err) {
- elizaLogger.error("Error deleting cache:", err);
- return false;
- }
- }
-
- async disconnect(): Promise {
- try {
- await this.client.quit();
- elizaLogger.success("Disconnected from Redis");
- } catch (err) {
- elizaLogger.error("Error disconnecting from Redis:", err);
- }
- }
-
- private buildKey(agentId: UUID, key: string): string {
- return `${agentId}:${key}`; // Constructs a unique key based on agentId and key
- }
-}
-
-export default RedisClient;
diff --git a/packages/adapter-redis/tsconfig.json b/packages/adapter-redis/tsconfig.json
deleted file mode 100644
index 005fbac9d36..00000000000
--- a/packages/adapter-redis/tsconfig.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "../core/tsconfig.json",
- "compilerOptions": {
- "outDir": "dist",
- "rootDir": "src"
- },
- "include": ["src/**/*.ts"]
-}
diff --git a/packages/adapter-redis/tsup.config.ts b/packages/adapter-redis/tsup.config.ts
deleted file mode 100644
index 9acebc5ba9a..00000000000
--- a/packages/adapter-redis/tsup.config.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { defineConfig } from "tsup";
-
-export default defineConfig({
- entry: ["src/index.ts"],
- outDir: "dist",
- sourcemap: true,
- clean: true,
- format: ["esm"], // Ensure you're targeting CommonJS
- external: [
- "dotenv", // Externalize dotenv to prevent bundling
- "fs", // Externalize fs to use Node.js built-in module
- "path", // Externalize other built-ins if necessary
- "@reflink/reflink",
- "@node-llama-cpp",
- "https",
- "http",
- "agentkeepalive",
- "uuid",
- // Add other modules you want to externalize
- ],
-});
diff --git a/packages/adapter-redis/vitest.config.ts b/packages/adapter-redis/vitest.config.ts
deleted file mode 100644
index adbf7255380..00000000000
--- a/packages/adapter-redis/vitest.config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
- test: {
- globals: true,
- environment: 'node',
- },
-});
diff --git a/packages/adapter-sqlite/package.json b/packages/adapter-sqlite/package.json
index 298e55ab41d..3a650f5adb7 100644
--- a/packages/adapter-sqlite/package.json
+++ b/packages/adapter-sqlite/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-sqlite",
+ "name": "@elizaos-plugins/adapter-sqlite",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-sqlite/src/index.ts b/packages/adapter-sqlite/src/index.ts
index fb56d29d6c6..7336fa21d1d 100644
--- a/packages/adapter-sqlite/src/index.ts
+++ b/packages/adapter-sqlite/src/index.ts
@@ -1,3 +1,6 @@
+import path from "path";
+import fs from "fs";
+
export * from "./sqliteTables.ts";
export * from "./sqlite_vec.ts";
@@ -17,14 +20,19 @@ import type {
UUID,
RAGKnowledgeItem,
ChunkRow,
+ Adapter,
+ IAgentRuntime,
+ Plugin,
} from "@elizaos/core";
-import type { Database } from "better-sqlite3";
+import type { Database as BetterSqlite3Database } from "better-sqlite3";
import { v4 } from "uuid";
import { load } from "./sqlite_vec.ts";
import { sqliteTables } from "./sqliteTables.ts";
-export class SqliteDatabaseAdapter
- extends DatabaseAdapter
+import Database from "better-sqlite3";
+
+class SqliteDatabaseAdapter
+ extends DatabaseAdapter
implements IDatabaseCacheAdapter
{
async getRoom(roomId: UUID): Promise {
@@ -75,7 +83,7 @@ export class SqliteDatabaseAdapter
stmt.run(state, roomId, userId);
}
- constructor(db: Database) {
+ constructor(db: BetterSqlite3Database) {
super();
this.db = db;
load(db);
@@ -1084,3 +1092,37 @@ export class SqliteDatabaseAdapter
}
}
}
+
+const sqliteDatabaseAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const dataDir = path.join(process.cwd(), "data");
+
+ if (!fs.existsSync(dataDir)) {
+ fs.mkdirSync(dataDir, { recursive: true });
+ }
+
+ const filePath = runtime.getSetting("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;
+ },
+};
+
+const sqlitePlugin: Plugin = {
+ name: "sqlite",
+ description: "SQLite database adapter plugin",
+ adapters: [sqliteDatabaseAdapter],
+};
+export default sqlitePlugin;
\ No newline at end of file
diff --git a/packages/adapter-sqljs/package.json b/packages/adapter-sqljs/package.json
index 44c1d6b3a02..c93ab2b117f 100644
--- a/packages/adapter-sqljs/package.json
+++ b/packages/adapter-sqljs/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-sqljs",
+ "name": "@elizaos-plugins/adapter-sqljs",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-supabase/package.json b/packages/adapter-supabase/package.json
index c2f1c1e5468..547730053d8 100644
--- a/packages/adapter-supabase/package.json
+++ b/packages/adapter-supabase/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/adapter-supabase",
+ "name": "@elizaos-plugins/adapter-supabase",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/adapter-supabase/src/index.ts b/packages/adapter-supabase/src/index.ts
index 5f65935490f..33f5e6ffd0c 100644
--- a/packages/adapter-supabase/src/index.ts
+++ b/packages/adapter-supabase/src/index.ts
@@ -11,10 +11,13 @@ import {
type Room,
type RAGKnowledgeItem,
elizaLogger,
+ type IAgentRuntime,
+ type Adapter,
+ type Plugin,
} from "@elizaos/core";
import { DatabaseAdapter } from "@elizaos/core";
import { v4 as uuid } from "uuid";
-export class SupabaseDatabaseAdapter extends DatabaseAdapter {
+class SupabaseDatabaseAdapter extends DatabaseAdapter {
async getRoom(roomId: UUID): Promise {
const { data, error } = await this.supabase
.from("rooms")
@@ -955,3 +958,40 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
}
}
}
+
+const supabaseAdapter: Adapter = {
+ init: (runtime: IAgentRuntime) => {
+ const supabaseUrl = runtime.getSetting("SUPABASE_URL");
+ const supabaseAnonKey = runtime.getSetting("SUPABASE_ANON_KEY");
+
+ if (supabaseUrl && supabaseAnonKey) {
+ elizaLogger.info("Initializing Supabase connection...");
+ const db = new SupabaseDatabaseAdapter(
+ supabaseUrl,
+ supabaseAnonKey
+ );
+
+ // 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 {
+ throw new Error("SUPABASE_URL and SUPABASE_ANON_KEY are not set");
+ }
+ },
+};
+
+const supabasePlugin: Plugin = {
+ name: "supabase",
+ description: "Supabase database adapter plugin",
+ adapters: [supabaseAdapter],
+};
+export default supabasePlugin;
\ No newline at end of file
diff --git a/packages/client-alexa/package.json b/packages/client-alexa/package.json
index a2597d3634b..349e43fc879 100644
--- a/packages/client-alexa/package.json
+++ b/packages/client-alexa/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-alexa",
+ "name": "@elizaos-plugins/client-alexa",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-alexa/src/alexa-client.ts b/packages/client-alexa/src/alexa-client.ts
index b05631309b4..d16095442b1 100644
--- a/packages/client-alexa/src/alexa-client.ts
+++ b/packages/client-alexa/src/alexa-client.ts
@@ -35,6 +35,10 @@ export class AlexaClient {
}
}
+ public async stop(): Promise {
+ elizaLogger.log("🚀 Stopping Alexa bot...");
+ }
+
private async initializeBot(): Promise {
const authenticationConfiguration = {
clientId: this.clientId,
diff --git a/packages/client-alexa/src/index.ts b/packages/client-alexa/src/index.ts
index a333e86b5af..669b0b2b4fa 100644
--- a/packages/client-alexa/src/index.ts
+++ b/packages/client-alexa/src/index.ts
@@ -1,7 +1,8 @@
-import { type Client, type IAgentRuntime, elizaLogger } from "@elizaos/core";
+import { type Client, type IAgentRuntime, elizaLogger, type Plugin } from "@elizaos/core";
import { AlexaClient } from "./alexa-client";
-export const AlexaClientInterface: Client = {
+const AlexaClientInterface: Client = {
+ name: 'alexa',
start: async (runtime: IAgentRuntime) => {
const alexaClient = new AlexaClient(runtime);
@@ -12,15 +13,11 @@ export const AlexaClientInterface: Client = {
);
return alexaClient;
},
- stop: async (runtime: IAgentRuntime) => {
- try {
- // stop it
- elizaLogger.log("Stopping alexa client", runtime.agentId);
- await runtime.clients.alexa.stop();
- } catch (e) {
- elizaLogger.error("client-alexa interface stop error", e);
- }
- },
};
-export default AlexaClientInterface;
+const alexaPlugin: Plugin = {
+ name: "alexa",
+ description: "Alexa client plugin",
+ clients: [AlexaClientInterface],
+};
+export default alexaPlugin;
diff --git a/packages/client-auto/package.json b/packages/client-auto/package.json
index 3db4e179b34..c4fb7f74cbf 100644
--- a/packages/client-auto/package.json
+++ b/packages/client-auto/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-auto",
+ "name": "@elizaos-plugins/client-auto",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-auto/src/index.ts b/packages/client-auto/src/index.ts
index 1eae8637197..02e58d8aedc 100644
--- a/packages/client-auto/src/index.ts
+++ b/packages/client-auto/src/index.ts
@@ -1,4 +1,4 @@
-import { type Client, type IAgentRuntime, elizaLogger } from "@elizaos/core";
+import { type Client, type IAgentRuntime, elizaLogger, type Plugin } from "@elizaos/core";
export class AutoClient {
interval: NodeJS.Timeout;
@@ -15,16 +15,23 @@ export class AutoClient {
60 * 60 * 1000
); // 1 hour in milliseconds
}
+
+ async stop() {
+ clearInterval(this.interval);
+ }
}
export const AutoClientInterface: Client = {
+ name: 'auto',
start: async (runtime: IAgentRuntime) => {
const client = new AutoClient(runtime);
return client;
},
- stop: async (_runtime: IAgentRuntime) => {
- console.warn("Direct client does not support stopping yet");
- },
};
-export default AutoClientInterface;
+const autoPlugin: Plugin = {
+ name: "auto",
+ description: "Auto client plugin",
+ clients: [AutoClientInterface],
+};
+export default autoPlugin;
diff --git a/packages/client-deva/package.json b/packages/client-deva/package.json
index d00886cddb3..2e1d49de50b 100644
--- a/packages/client-deva/package.json
+++ b/packages/client-deva/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-deva",
+ "name": "@elizaos-plugins/client-deva",
"version": "0.25.6-alpha.1",
"main": "dist/index.js",
"type": "module",
diff --git a/packages/client-deva/src/devaClient.ts b/packages/client-deva/src/devaClient.ts
index f3cbee469fd..35661f14158 100644
--- a/packages/client-deva/src/devaClient.ts
+++ b/packages/client-deva/src/devaClient.ts
@@ -27,4 +27,8 @@ export class DevaClient {
throw error;
}
}
+
+ async stop() {
+ elizaLogger.warn("Deva client does not support stopping yet");
+ }
}
diff --git a/packages/client-deva/src/index.ts b/packages/client-deva/src/index.ts
index f40eca57076..7e492680f33 100644
--- a/packages/client-deva/src/index.ts
+++ b/packages/client-deva/src/index.ts
@@ -1,8 +1,9 @@
-import { IAgentRuntime, Client, elizaLogger } from "@elizaos/core";
+import { IAgentRuntime, Client, elizaLogger, type Plugin } from "@elizaos/core";
import { DevaClient } from "./devaClient.ts";
import { validateDevaConfig } from "./enviroment.ts";
export const DevaClientInterface: Client = {
+ name: 'deva',
async start(runtime: IAgentRuntime) {
await validateDevaConfig(runtime);
@@ -20,15 +21,11 @@ export const DevaClientInterface: Client = {
return deva;
},
- async stop(_runtime: IAgentRuntime) {
- try {
- // Add cleanup logic here
- elizaLogger.warn("Deva client does not support stopping yet");
- } catch (error) {
- elizaLogger.error("Failed to stop Deva client:", error);
- throw error;
- }
- },
};
-export default DevaClientInterface;
+const devaPlugin: Plugin = {
+ name: "deva",
+ description: "Deva client plugin",
+ clients: [DevaClientInterface],
+};
+export default devaPlugin;
diff --git a/packages/client-direct/src/api.ts b/packages/client-direct/src/api.ts
index 3b4f00135ce..643b09e4f8c 100644
--- a/packages/client-direct/src/api.ts
+++ b/packages/client-direct/src/api.ts
@@ -14,8 +14,8 @@ import {
type Character,
} from "@elizaos/core";
-import type { TeeLogQuery, TeeLogService } from "@elizaos/plugin-tee-log";
-import { REST, Routes } from "discord.js";
+// import type { TeeLogQuery, TeeLogService } from "@elizaos/plugin-tee-log";
+// import { REST, Routes } from "discord.js";
import type { DirectClient } from ".";
import { validateUuid } from "@elizaos/core";
@@ -212,35 +212,35 @@ export function createApiRouter(
});
});
- router.get("/agents/:agentId/channels", async (req, res) => {
- const { agentId } = validateUUIDParams(req.params, res) ?? {
- agentId: null,
- };
- if (!agentId) return;
+ // router.get("/agents/:agentId/channels", async (req, res) => {
+ // const { agentId } = validateUUIDParams(req.params, res) ?? {
+ // agentId: null,
+ // };
+ // if (!agentId) return;
- const runtime = agents.get(agentId);
+ // const runtime = agents.get(agentId);
- if (!runtime) {
- res.status(404).json({ error: "Runtime not found" });
- return;
- }
+ // if (!runtime) {
+ // res.status(404).json({ error: "Runtime not found" });
+ // return;
+ // }
- const API_TOKEN = runtime.getSetting("DISCORD_API_TOKEN") as string;
- const rest = new REST({ version: "10" }).setToken(API_TOKEN);
+ // const API_TOKEN = runtime.getSetting("DISCORD_API_TOKEN") as string;
+ // const rest = new REST({ version: "10" }).setToken(API_TOKEN);
- try {
- const guilds = (await rest.get(Routes.userGuilds())) as Array;
+ // try {
+ // const guilds = (await rest.get(Routes.userGuilds())) as Array;
- res.json({
- id: runtime.agentId,
- guilds: guilds,
- serverCount: guilds.length,
- });
- } catch (error) {
- console.error("Error fetching guilds:", error);
- res.status(500).json({ error: "Failed to fetch guilds" });
- }
- });
+ // res.json({
+ // id: runtime.agentId,
+ // guilds: guilds,
+ // serverCount: guilds.length,
+ // });
+ // } catch (error) {
+ // console.error("Error fetching guilds:", error);
+ // res.status(500).json({ error: "Failed to fetch guilds" });
+ // }
+ // });
router.get("/agents/:agentId/:roomId/memories", async (req, res) => {
const { agentId, roomId } = validateUUIDParams(req.params, res) ?? {
@@ -307,102 +307,102 @@ export function createApiRouter(
}
});
- router.get("/tee/agents", async (req, res) => {
- try {
- const allAgents = [];
-
- for (const agentRuntime of agents.values()) {
- const teeLogService = agentRuntime
- .getService(ServiceType.TEE_LOG)
- .getInstance();
-
- const agents = await teeLogService.getAllAgents();
- allAgents.push(...agents);
- }
-
- const runtime: AgentRuntime = agents.values().next().value;
- const teeLogService = runtime
- .getService(ServiceType.TEE_LOG)
- .getInstance();
- const attestation = await teeLogService.generateAttestation(
- JSON.stringify(allAgents)
- );
- res.json({ agents: allAgents, attestation: attestation });
- } catch (error) {
- elizaLogger.error("Failed to get TEE agents:", error);
- res.status(500).json({
- error: "Failed to get TEE agents",
- });
- }
- });
-
- router.get("/tee/agents/:agentId", async (req, res) => {
- try {
- const agentId = req.params.agentId;
- const agentRuntime = agents.get(agentId);
- if (!agentRuntime) {
- res.status(404).json({ error: "Agent not found" });
- return;
- }
-
- const teeLogService = agentRuntime
- .getService(ServiceType.TEE_LOG)
- .getInstance();
-
- const teeAgent = await teeLogService.getAgent(agentId);
- const attestation = await teeLogService.generateAttestation(
- JSON.stringify(teeAgent)
- );
- res.json({ agent: teeAgent, attestation: attestation });
- } catch (error) {
- elizaLogger.error("Failed to get TEE agent:", error);
- res.status(500).json({
- error: "Failed to get TEE agent",
- });
- }
- });
-
- router.post(
- "/tee/logs",
- async (req: express.Request, res: express.Response) => {
- try {
- const query = req.body.query || {};
- const page = Number.parseInt(req.body.page) || 1;
- const pageSize = Number.parseInt(req.body.pageSize) || 10;
-
- const teeLogQuery: TeeLogQuery = {
- agentId: query.agentId || "",
- roomId: query.roomId || "",
- userId: query.userId || "",
- type: query.type || "",
- containsContent: query.containsContent || "",
- startTimestamp: query.startTimestamp || undefined,
- endTimestamp: query.endTimestamp || undefined,
- };
- const agentRuntime: AgentRuntime = agents.values().next().value;
- const teeLogService = agentRuntime
- .getService(ServiceType.TEE_LOG)
- .getInstance();
- const pageQuery = await teeLogService.getLogs(
- teeLogQuery,
- page,
- pageSize
- );
- const attestation = await teeLogService.generateAttestation(
- JSON.stringify(pageQuery)
- );
- res.json({
- logs: pageQuery,
- attestation: attestation,
- });
- } catch (error) {
- elizaLogger.error("Failed to get TEE logs:", error);
- res.status(500).json({
- error: "Failed to get TEE logs",
- });
- }
- }
- );
+ // router.get("/tee/agents", async (req, res) => {
+ // try {
+ // const allAgents = [];
+
+ // for (const agentRuntime of agents.values()) {
+ // const teeLogService = agentRuntime
+ // .getService(ServiceType.TEE_LOG)
+ // .getInstance();
+
+ // const agents = await teeLogService.getAllAgents();
+ // allAgents.push(...agents);
+ // }
+
+ // const runtime: AgentRuntime = agents.values().next().value;
+ // const teeLogService = runtime
+ // .getService(ServiceType.TEE_LOG)
+ // .getInstance();
+ // const attestation = await teeLogService.generateAttestation(
+ // JSON.stringify(allAgents)
+ // );
+ // res.json({ agents: allAgents, attestation: attestation });
+ // } catch (error) {
+ // elizaLogger.error("Failed to get TEE agents:", error);
+ // res.status(500).json({
+ // error: "Failed to get TEE agents",
+ // });
+ // }
+ // });
+
+ // router.get("/tee/agents/:agentId", async (req, res) => {
+ // try {
+ // const agentId = req.params.agentId;
+ // const agentRuntime = agents.get(agentId);
+ // if (!agentRuntime) {
+ // res.status(404).json({ error: "Agent not found" });
+ // return;
+ // }
+
+ // const teeLogService = agentRuntime
+ // .getService(ServiceType.TEE_LOG)
+ // .getInstance();
+
+ // const teeAgent = await teeLogService.getAgent(agentId);
+ // const attestation = await teeLogService.generateAttestation(
+ // JSON.stringify(teeAgent)
+ // );
+ // res.json({ agent: teeAgent, attestation: attestation });
+ // } catch (error) {
+ // elizaLogger.error("Failed to get TEE agent:", error);
+ // res.status(500).json({
+ // error: "Failed to get TEE agent",
+ // });
+ // }
+ // });
+
+ // router.post(
+ // "/tee/logs",
+ // async (req: express.Request, res: express.Response) => {
+ // try {
+ // const query = req.body.query || {};
+ // const page = Number.parseInt(req.body.page) || 1;
+ // const pageSize = Number.parseInt(req.body.pageSize) || 10;
+
+ // const teeLogQuery: TeeLogQuery = {
+ // agentId: query.agentId || "",
+ // roomId: query.roomId || "",
+ // userId: query.userId || "",
+ // type: query.type || "",
+ // containsContent: query.containsContent || "",
+ // startTimestamp: query.startTimestamp || undefined,
+ // endTimestamp: query.endTimestamp || undefined,
+ // };
+ // const agentRuntime: AgentRuntime = agents.values().next().value;
+ // const teeLogService = agentRuntime
+ // .getService(ServiceType.TEE_LOG)
+ // .getInstance();
+ // const pageQuery = await teeLogService.getLogs(
+ // teeLogQuery,
+ // page,
+ // pageSize
+ // );
+ // const attestation = await teeLogService.generateAttestation(
+ // JSON.stringify(pageQuery)
+ // );
+ // res.json({
+ // logs: pageQuery,
+ // attestation: attestation,
+ // });
+ // } catch (error) {
+ // elizaLogger.error("Failed to get TEE logs:", error);
+ // res.status(500).json({
+ // error: "Failed to get TEE logs",
+ // });
+ // }
+ // }
+ // );
router.post("/agent/start", async (req, res) => {
const { characterPath, characterJson } = req.body;
diff --git a/packages/client-direct/src/index.ts b/packages/client-direct/src/index.ts
index cddb2cb9da5..618e3e5d750 100644
--- a/packages/client-direct/src/index.ts
+++ b/packages/client-direct/src/index.ts
@@ -21,6 +21,7 @@ import {
stringToUuid,
settings,
type IAgentRuntime,
+ type Plugin,
} from "@elizaos/core";
import { createApiRouter } from "./api.ts";
import * as fs from "fs";
@@ -1017,7 +1018,7 @@ export class DirectClient {
process.on("SIGINT", gracefulShutdown);
}
- public stop() {
+ public async stop() {
if (this.server) {
this.server.close(() => {
elizaLogger.success("Server stopped");
@@ -1027,6 +1028,8 @@ export class DirectClient {
}
export const DirectClientInterface: Client = {
+ name: 'direct',
+ config: {},
start: async (_runtime: IAgentRuntime) => {
elizaLogger.log("DirectClientInterface start");
const client = new DirectClient();
@@ -1034,11 +1037,16 @@ export const DirectClientInterface: Client = {
client.start(serverPort);
return client;
},
- stop: async (_runtime: IAgentRuntime, client?: Client) => {
- if (client instanceof DirectClient) {
- client.stop();
- }
- },
+ // stop: async (_runtime: IAgentRuntime, client?: Client) => {
+ // if (client instanceof DirectClient) {
+ // client.stop();
+ // }
+ // },
};
-export default DirectClientInterface;
+const directPlugin: Plugin = {
+ name: "direct",
+ description: "Direct client",
+ clients: [DirectClientInterface],
+};
+export default directPlugin;
diff --git a/packages/client-discord/package.json b/packages/client-discord/package.json
index 8bb12a23937..4080e102ff6 100644
--- a/packages/client-discord/package.json
+++ b/packages/client-discord/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-discord",
+ "name": "@elizaos-plugins/client-discord",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
@@ -23,10 +23,10 @@
"@discordjs/rest": "2.4.0",
"@discordjs/voice": "0.17.0",
"@elizaos/core": "workspace:*",
- "@elizaos/plugin-node": "workspace:*",
"discord.js": "14.16.3",
"libsodium-wrappers": "0.7.15",
- "prism-media": "1.3.5"
+ "prism-media": "1.3.5",
+ "zod": "3.23.8"
},
"devDependencies": {
"tsup": "8.3.5",
diff --git a/packages/client-discord/src/index.ts b/packages/client-discord/src/index.ts
index 5aac95fed23..854f414e371 100644
--- a/packages/client-discord/src/index.ts
+++ b/packages/client-discord/src/index.ts
@@ -5,6 +5,7 @@ import {
type Character,
type Client as ElizaClient,
type IAgentRuntime,
+ type Plugin,
} from "@elizaos/core";
import {
Client,
@@ -28,7 +29,7 @@ import voiceStateProvider from "./providers/voiceState.ts";
import { VoiceManager } from "./voice.ts";
import { PermissionsBitField } from "discord.js";
-export class DiscordClient extends EventEmitter {
+class DiscordClient extends EventEmitter {
apiToken: string;
client: Client;
runtime: IAgentRuntime;
@@ -396,19 +397,18 @@ export class DiscordClient extends EventEmitter {
}
}
-export function startDiscord(runtime: IAgentRuntime) {
- return new DiscordClient(runtime);
-}
+// function startDiscord(runtime: IAgentRuntime) {
+// return new DiscordClient(runtime);
+// }
-export const DiscordClientInterface: ElizaClient = {
+const DiscordClientInterface: ElizaClient = {
+ name: 'discord',
start: async (runtime: IAgentRuntime) => new DiscordClient(runtime),
- stop: async (runtime: IAgentRuntime) => {
- try {
- // stop it
- elizaLogger.log("Stopping discord client", runtime.agentId);
- await runtime.clients.discord.stop();
- } catch (e) {
- elizaLogger.error("client-discord interface stop error", e);
- }
- },
};
+
+const discordPlugin: Plugin = {
+ name: "discord",
+ description: "Discord client plugin",
+ clients: [DiscordClientInterface],
+};
+export default discordPlugin;
\ No newline at end of file
diff --git a/packages/client-eliza-home/package.json b/packages/client-eliza-home/package.json
index 20e4f9e532a..a0563c2bab3 100644
--- a/packages/client-eliza-home/package.json
+++ b/packages/client-eliza-home/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-eliza-home",
+ "name": "@elizaos-plugins/client-eliza-home",
"version": "0.25.6-alpha.1",
"main": "dist/index.js",
"type": "module",
diff --git a/packages/client-eliza-home/src/index.ts b/packages/client-eliza-home/src/index.ts
index 85aded60774..8792e92892c 100644
--- a/packages/client-eliza-home/src/index.ts
+++ b/packages/client-eliza-home/src/index.ts
@@ -6,13 +6,15 @@ import {
stringToUuid,
getEmbeddingZeroVector,
Memory,
- Content,
+ // Content,
+ type Plugin,
} from "@elizaos/core";
import { validateHomeConfig } from "./environment.ts";
import { CapabilityManager } from "./capabilities.ts";
import { EntityManager } from "./entities.ts";
import { StateManager } from "./state.ts";
import { SmartHomeManager } from "./smart_home.ts";
+
import controlDeviceAction from "./actions/control_device.ts";
import discoverDevicesAction from "./actions/discover_devices.ts";
import deviceStateProvider from "./providers/device_state.ts";
@@ -95,20 +97,32 @@ export class HomeClient extends EventEmitter {
await this.runtime.messageManager.createMemory(memory);
return this.smartHomeManager.handleCommand(command, userId);
}
-}
-export const HomeClientInterface: ElizaClient = {
- start: async (runtime: IAgentRuntime) => new HomeClient(runtime),
- stop: async (runtime: IAgentRuntime) => {
+ async stop() {
elizaLogger.warn("Home Assistant client does not support stopping yet");
}
+}
+
+const HomeClientInterface: ElizaClient = {
+ name: 'home',
+ start: async (runtime: IAgentRuntime) => new HomeClient(runtime),
+ // stop: async (runtime: IAgentRuntime) => {
+ // elizaLogger.warn("Home Assistant client does not support stopping yet");
+ // }
};
-export function startHome(runtime: IAgentRuntime) {
- return new HomeClient(runtime);
-}
+// function startHome(runtime: IAgentRuntime) {
+// return new HomeClient(runtime);
+// }
-export {
- homeShouldRespondTemplate,
- homeMessageHandlerTemplate
-} from "./templates";
\ No newline at end of file
+// export {
+// homeShouldRespondTemplate,
+// homeMessageHandlerTemplate
+// } from "./templates";
+
+const homePlugin: Plugin = {
+ name: "home",
+ description: "Home Assistant client",
+ clients: [HomeClientInterface],
+};
+export default homePlugin;
diff --git a/packages/client-eliza-home/tsup.config.ts b/packages/client-eliza-home/tsup.config.ts
index 028c8aa2417..307256b81c8 100644
--- a/packages/client-eliza-home/tsup.config.ts
+++ b/packages/client-eliza-home/tsup.config.ts
@@ -7,6 +7,7 @@ export default defineConfig({
clean: true,
format: ["esm"],
external: [
+ "zod",
"dotenv",
"fs",
"path",
diff --git a/packages/client-farcaster/package.json b/packages/client-farcaster/package.json
index 706cbee0dfa..150d1828d07 100644
--- a/packages/client-farcaster/package.json
+++ b/packages/client-farcaster/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-farcaster",
+ "name": "@elizaos-plugins/client-farcaster",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-farcaster/src/index.ts b/packages/client-farcaster/src/index.ts
index fbfad4d1962..799a652b5bb 100644
--- a/packages/client-farcaster/src/index.ts
+++ b/packages/client-farcaster/src/index.ts
@@ -1,4 +1,4 @@
-import { type Client, type IAgentRuntime, elizaLogger } from "@elizaos/core";
+import { type Client, type IAgentRuntime, elizaLogger, type Plugin } from "@elizaos/core";
import { FarcasterClient } from "./client";
import { FarcasterPostManager } from "./post";
import { FarcasterInteractionManager } from "./interactions";
@@ -64,6 +64,8 @@ class FarcasterManager {
}
export const FarcasterClientInterface: Client = {
+ name: 'farcaster',
+
async start(runtime: IAgentRuntime) {
const farcasterConfig = await validateFarcasterConfig(runtime);
@@ -73,21 +75,14 @@ export const FarcasterClientInterface: Client = {
// Start all services
await manager.start();
- runtime.clients.farcaster = manager;
+ // runtime.clients.farcaster = manager;
return manager;
},
-
- async stop(runtime: IAgentRuntime) {
- try {
- // stop it
- elizaLogger.log("Stopping farcaster client", runtime.agentId);
- if (runtime.clients.farcaster) {
- await runtime.clients.farcaster.stop();
- }
- } catch (e) {
- elizaLogger.error("client-farcaster interface stop error", e);
- }
- },
};
-export default FarcasterClientInterface;
+const farcasterPlugin: Plugin = {
+ name: "farcaster",
+ description: "Farcaster client",
+ clients: [FarcasterClientInterface],
+};
+export default farcasterPlugin;
diff --git a/packages/client-github/package.json b/packages/client-github/package.json
index 487e6d584c4..60783c963e7 100644
--- a/packages/client-github/package.json
+++ b/packages/client-github/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-github",
+ "name": "@elizaos-plugins/client-github",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-github/src/index.ts b/packages/client-github/src/index.ts
index 8afc75e3d69..3bcced36042 100644
--- a/packages/client-github/src/index.ts
+++ b/packages/client-github/src/index.ts
@@ -12,6 +12,7 @@ import {
type IAgentRuntime,
knowledge,
stringToUuid,
+ type Plugin,
} from "@elizaos/core";
import { validateGithubConfig } from "./environment";
@@ -201,9 +202,14 @@ export class GitHubClient {
await git.commit(message);
await git.push();
}
+
+ async stop() {
+ elizaLogger.warn("GitHub client does not support stopping yet");
+ }
}
export const GitHubClientInterface: Client = {
+ name: 'github',
start: async (runtime: IAgentRuntime) => {
await validateGithubConfig(runtime);
elizaLogger.log("GitHubClientInterface start");
@@ -214,9 +220,11 @@ export const GitHubClientInterface: Client = {
return client;
},
- stop: async (_runtime: IAgentRuntime) => {
- elizaLogger.log("GitHubClientInterface stop");
- },
};
-export default GitHubClientInterface;
+const githubPlugin: Plugin = {
+ name: "github",
+ description: "GitHub client",
+ clients: [GitHubClientInterface],
+};
+export default githubPlugin;
diff --git a/packages/client-instagram/package.json b/packages/client-instagram/package.json
index fd69061b596..a0e4708b53f 100644
--- a/packages/client-instagram/package.json
+++ b/packages/client-instagram/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-instagram",
+ "name": "@elizaos-plugins/client-instagram",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-instagram/src/index.ts b/packages/client-instagram/src/index.ts
index 1391ed81768..151a9f16263 100644
--- a/packages/client-instagram/src/index.ts
+++ b/packages/client-instagram/src/index.ts
@@ -1,11 +1,12 @@
// src/index.ts
-import { type Client, type IAgentRuntime, elizaLogger } from "@elizaos/core";
+import { type Client, type IAgentRuntime, elizaLogger, type Plugin } from "@elizaos/core";
import { validateInstagramConfig } from "./environment";
import { initializeClient } from "./lib/auth";
import { InstagramInteractionService } from "./services/interaction";
import { InstagramPostService } from "./services/post";
-export const InstagramClientInterface: Client = {
+const InstagramClientInterface: Client = {
+ name: 'instagram',
async start(runtime: IAgentRuntime) {
try {
// Validate configuration
@@ -41,17 +42,21 @@ export const InstagramClientInterface: Client = {
post: postService,
interaction: interactionService,
state,
+ async stop() {
+ elizaLogger.log("Stopping Instagram client services...");
+ },
};
} catch (error) {
elizaLogger.error("Failed to start Instagram client:", error);
throw error;
}
},
- // eslint-disable-next-line
- async stop(runtime: IAgentRuntime) {
- elizaLogger.log("Stopping Instagram client services...");
- // Cleanup will be handled by the services themselves
- },
};
-export default InstagramClientInterface;
+const instagramPlugin: Plugin = {
+ name: "instagram",
+ description: "Instagram client plugin",
+ clients: [InstagramClientInterface],
+};
+
+export default instagramPlugin;
\ No newline at end of file
diff --git a/packages/client-lens/package.json b/packages/client-lens/package.json
index fcf43edd6f9..f5704c999e2 100644
--- a/packages/client-lens/package.json
+++ b/packages/client-lens/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-lens",
+ "name": "@elizaos-plugins/client-lens",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-lens/src/index.ts b/packages/client-lens/src/index.ts
index 05049d2e4fc..b67050e28aa 100644
--- a/packages/client-lens/src/index.ts
+++ b/packages/client-lens/src/index.ts
@@ -1,11 +1,13 @@
-import { type Client, type IAgentRuntime, elizaLogger } from "@elizaos/core";
+import { type Client, type IAgentRuntime, elizaLogger, type Plugin } from "@elizaos/core";
import { privateKeyToAccount } from "viem/accounts";
import { LensClient } from "./client";
import { LensPostManager } from "./post";
import { LensInteractionManager } from "./interactions";
import StorjProvider from "./providers/StorjProvider";
-export class LensAgentClient implements Client {
+class LensAgentClient implements Client {
+ name = 'lens';
+
client: LensClient;
posts: LensPostManager;
interactions: LensInteractionManager;
@@ -58,9 +60,23 @@ export class LensAgentClient implements Client {
async start() {
await Promise.all([this.posts.start(), this.interactions.start()]);
+
+ return {
+ stop: async () => {
+ await Promise.all([this.posts.stop(), this.interactions.stop()]);
+ },
+ };
}
- async stop() {
- await Promise.all([this.posts.stop(), this.interactions.stop()]);
+ static async start(runtime: IAgentRuntime) {
+ const client = new LensAgentClient(runtime);
+ return await client.start();
}
}
+
+const lensPlugin: Plugin = {
+ name: "lens",
+ description: "Lens client plugin",
+ clients: [LensAgentClient],
+};
+export default lensPlugin;
diff --git a/packages/client-simsai/package.json b/packages/client-simsai/package.json
index 4b32dec5d84..2672c3e443f 100644
--- a/packages/client-simsai/package.json
+++ b/packages/client-simsai/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-simsai",
+ "name": "@elizaos-plugins/client-simsai",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-simsai/src/index.ts b/packages/client-simsai/src/index.ts
index 1c1f9a7825e..8abfa1685e3 100644
--- a/packages/client-simsai/src/index.ts
+++ b/packages/client-simsai/src/index.ts
@@ -1,7 +1,7 @@
import { JeeterPostClient } from "./jeeter/post.ts";
import { JeeterSearchClient } from "./jeeter/search.ts";
import { JeeterInteractionClient } from "./jeeter/interactions.ts";
-import { IAgentRuntime, Client, elizaLogger } from "@elizaos/core";
+import { IAgentRuntime, Client, elizaLogger, type Plugin } from "@elizaos/core";
import { validateJeeterConfig } from "./jeeter/environment.ts";
import { ClientBase } from "./jeeter/base.ts";
@@ -17,22 +17,24 @@ class SimsAIManager {
this.search = new JeeterSearchClient(this.client, runtime);
this.interaction = new JeeterInteractionClient(this.client, runtime);
}
-}
-let activeManager: SimsAIManager | null = null;
+ async stop() {
+ elizaLogger.log("Stopping SimsAI client");
+ await this.interaction.stop();
+ await this.search.stop();
+ await this.post.stop();
+ elizaLogger.log("SimsAI client stopped successfully");
+ }
+}
-export const JeeterClientInterface: Client = {
+const JeeterClientInterface: Client = {
+ name: 'jeeter',
async start(runtime: IAgentRuntime) {
- if (activeManager) {
- elizaLogger.warn("SimsAI client already started");
- return activeManager;
- }
-
await validateJeeterConfig(runtime);
elizaLogger.log("SimsAI client started");
- activeManager = new SimsAIManager(runtime);
+ const activeManager = new SimsAIManager(runtime);
await activeManager.client.init();
@@ -44,22 +46,11 @@ export const JeeterClientInterface: Client = {
return activeManager;
},
- async stop(_runtime: IAgentRuntime) {
- elizaLogger.log("Stopping SimsAI client");
- if (activeManager) {
- try {
- await activeManager.interaction.stop();
- await activeManager.search.stop();
- await activeManager.post.stop();
- activeManager = null;
- elizaLogger.log("SimsAI client stopped successfully");
- } catch (error) {
- elizaLogger.error("Error stopping SimsAI client:", error);
- throw error;
- }
- }
- elizaLogger.log("SimsAI client stopped");
- },
};
-export default JeeterClientInterface;
+const simsaiPlugin: Plugin = {
+ name: "simsai",
+ description: "SimsAI client plugin",
+ clients: [JeeterClientInterface],
+};
+export default simsaiPlugin;
\ No newline at end of file
diff --git a/packages/client-slack/package.json b/packages/client-slack/package.json
index 9a8070b6a75..08227287a29 100644
--- a/packages/client-slack/package.json
+++ b/packages/client-slack/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-slack",
+ "name": "@elizaos-plugins/client-slack",
"version": "0.25.6-alpha.1",
"description": "Slack client plugin for Eliza framework",
"type": "module",
diff --git a/packages/client-slack/src/index.ts b/packages/client-slack/src/index.ts
index 092486b283b..9a4c6f9ea18 100644
--- a/packages/client-slack/src/index.ts
+++ b/packages/client-slack/src/index.ts
@@ -1,5 +1,8 @@
import type { Character, Client as ElizaClient, IAgentRuntime } from "@elizaos/core";
-import { elizaLogger } from "@elizaos/core";
+import {
+ elizaLogger,
+ type Plugin,
+} from "@elizaos/core";
import { WebClient } from "@slack/web-api";
import express, { type Request } from "express";
import { EventEmitter } from "events";
@@ -15,7 +18,7 @@ interface SlackRequest extends Request {
rawBody?: Buffer;
}
-export class SlackClient extends EventEmitter {
+class SlackClient extends EventEmitter {
private client: WebClient;
private runtime: IAgentRuntime;
private server: express.Application;
@@ -331,15 +334,18 @@ export class SlackClient extends EventEmitter {
}
}
-export const SlackClientInterface: ElizaClient = {
+const SlackClientInterface: ElizaClient = {
+ name: 'slack',
start: async (runtime: IAgentRuntime) => {
const client = new SlackClient(runtime);
await client.start();
return client;
},
- stop: async (_runtime: IAgentRuntime) => {
- elizaLogger.warn("Slack client stopping...");
- },
};
-export default SlackClientInterface;
+const slackPlugin: Plugin = {
+ name: "slack",
+ description: "Slack client plugin",
+ clients: [SlackClientInterface],
+};
+export default slackPlugin;
diff --git a/packages/client-telegram-account/package.json b/packages/client-telegram-account/package.json
index b306fe2e673..8a891165826 100644
--- a/packages/client-telegram-account/package.json
+++ b/packages/client-telegram-account/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-telegram-account",
+ "name": "@elizaos-plugins/client-telegram-account",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-telegram-account/src/index.ts b/packages/client-telegram-account/src/index.ts
index 3c9f7768363..a288f1c7686 100644
--- a/packages/client-telegram-account/src/index.ts
+++ b/packages/client-telegram-account/src/index.ts
@@ -1,9 +1,13 @@
-import { elizaLogger } from "@elizaos/core";
+import {
+ type Plugin,
+} from "@elizaos/core";
import { Client, IAgentRuntime } from "@elizaos/core";
import {TelegramAccountConfig, validateTelegramAccountConfig} from "./environment.ts";
import { TelegramAccountClient } from "./telegramAccountClient.ts"
export const TelegramAccountClientInterface: Client = {
+ name: 'telegramAccount',
+
start: async (runtime: IAgentRuntime) => {
const telegramAccountConfig: TelegramAccountConfig = await validateTelegramAccountConfig(runtime);
const telegramAccountClient = new TelegramAccountClient(runtime, telegramAccountConfig);
@@ -11,9 +15,11 @@ export const TelegramAccountClientInterface: Client = {
return telegramAccountClient;
},
- stop: async (_runtime: IAgentRuntime) => {
- elizaLogger.warn("Telegram client does not support stopping yet");
- },
};
-export default TelegramAccountClientInterface;
+const telegramAccountPlugin: Plugin = {
+ name: "telegramAccount",
+ description: "Telegram account client plugin",
+ clients: [TelegramAccountClientInterface],
+};
+export default telegramAccountPlugin;
diff --git a/packages/client-telegram-account/src/telegramAccountClient.ts b/packages/client-telegram-account/src/telegramAccountClient.ts
index 021b60a4245..fcd274bc3e1 100644
--- a/packages/client-telegram-account/src/telegramAccountClient.ts
+++ b/packages/client-telegram-account/src/telegramAccountClient.ts
@@ -337,4 +337,8 @@ export class TelegramAccountClient {
return sentMessages;
}
}
+
+ async stop() {
+ elizaLogger.warn("Telegram client does not support stopping yet");
+ }
}
diff --git a/packages/client-telegram/package.json b/packages/client-telegram/package.json
index c28dc0bc57b..d3e37c5761b 100644
--- a/packages/client-telegram/package.json
+++ b/packages/client-telegram/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-telegram",
+ "name": "@elizaos-plugins/client-telegram",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-telegram/src/index.ts b/packages/client-telegram/src/index.ts
index 8f065a1c263..732193f35b2 100644
--- a/packages/client-telegram/src/index.ts
+++ b/packages/client-telegram/src/index.ts
@@ -1,9 +1,13 @@
-import { elizaLogger } from "@elizaos/core";
+import {
+ elizaLogger,
+ type Plugin,
+} from "@elizaos/core";
import type { Client, IAgentRuntime } from "@elizaos/core";
import { TelegramClient } from "./telegramClient.ts";
import { validateTelegramConfig } from "./environment.ts";
-export const TelegramClientInterface: Client = {
+const TelegramClientInterface: Client = {
+ name: 'telegram',
start: async (runtime: IAgentRuntime) => {
await validateTelegramConfig(runtime);
@@ -19,9 +23,10 @@ export const TelegramClientInterface: Client = {
);
return tg;
},
- stop: async (_runtime: IAgentRuntime) => {
- elizaLogger.warn("Telegram client does not support stopping yet");
- },
};
-
-export default TelegramClientInterface;
+const telegramPlugin: Plugin = {
+ name: "telegram",
+ description: "Telegram client plugin",
+ clients: [TelegramClientInterface],
+};
+export default telegramPlugin;
diff --git a/packages/client-twitter/package.json b/packages/client-twitter/package.json
index 82525ccff9c..9e95c4fefc0 100644
--- a/packages/client-twitter/package.json
+++ b/packages/client-twitter/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-twitter",
+ "name": "@elizaos-plugins/client-twitter",
"version": "0.25.6-alpha.1",
"type": "module",
"main": "dist/index.js",
diff --git a/packages/client-twitter/src/index.ts b/packages/client-twitter/src/index.ts
index 52957c1878b..19a6c42cb2e 100644
--- a/packages/client-twitter/src/index.ts
+++ b/packages/client-twitter/src/index.ts
@@ -1,4 +1,4 @@
-import { type Client, elizaLogger, type IAgentRuntime } from "@elizaos/core";
+import { type Client, elizaLogger, type IAgentRuntime, type Plugin } from "@elizaos/core";
import { ClientBase } from "./base.ts";
import { validateTwitterConfig, type TwitterConfig } from "./environment.ts";
import { TwitterInteractionClient } from "./interactions.ts";
@@ -46,9 +46,14 @@ class TwitterManager {
this.space = new TwitterSpaceClient(this.client, runtime);
}
}
+
+ async stop() {
+ elizaLogger.warn("Twitter client does not support stopping yet");
+ }
}
export const TwitterClientInterface: Client = {
+ name: 'twitter',
async start(runtime: IAgentRuntime) {
const twitterConfig: TwitterConfig =
await validateTwitterConfig(runtime);
@@ -78,10 +83,11 @@ export const TwitterClientInterface: Client = {
return manager;
},
-
- async stop(_runtime: IAgentRuntime) {
- elizaLogger.warn("Twitter client does not support stopping yet");
- },
};
-export default TwitterClientInterface;
+const twitterPlugin: Plugin = {
+ name: "twitter",
+ description: "Twitter client",
+ clients: [TwitterClientInterface],
+};
+export default twitterPlugin;
diff --git a/packages/client-xmtp/package.json b/packages/client-xmtp/package.json
index 8d5827ed9ec..3a6ae37418f 100644
--- a/packages/client-xmtp/package.json
+++ b/packages/client-xmtp/package.json
@@ -1,5 +1,5 @@
{
- "name": "@elizaos/client-xmtp",
+ "name": "@elizaos-plugins/client-xmtp",
"version": "0.25.6-alpha.1",
"main": "dist/index.js",
"type": "module",
diff --git a/packages/client-xmtp/src/index.ts b/packages/client-xmtp/src/index.ts
index 362d247e683..6591393917f 100644
--- a/packages/client-xmtp/src/index.ts
+++ b/packages/client-xmtp/src/index.ts
@@ -1,4 +1,4 @@
-import { Message, XMTP, xmtpClient } from "@xmtp/agent-starter";
+import { Message, xmtpClient } from "@xmtp/agent-starter";
import {
composeContext,
Content,
@@ -10,11 +10,9 @@ import {
generateMessageResponse,
Client,
IAgentRuntime,
+ type Plugin,
} from "@elizaos/core";
-let xmtp: XMTP = null;
-let elizaRuntime: IAgentRuntime = null;
-
export const messageHandlerTemplate =
// {{goals}}
`# Action Examples
@@ -46,143 +44,146 @@ Note that {{agentName}} is capable of reading/seeing/hearing various forms of me
` + messageCompletionFooter;
export const XmtpClientInterface: Client = {
- start: async (runtime: IAgentRuntime) => {
- if (!xmtp) {
- elizaRuntime = runtime;
-
- xmtp = await xmtpClient({
- walletKey: process.env.EVM_PRIVATE_KEY as string,
- onMessage,
- });
-
- elizaLogger.success("✅ XMTP client started");
- elizaLogger.info(`XMTP address: ${xmtp.address}`);
- elizaLogger.info(`Talk to me on:`);
- elizaLogger.log(
- `Converse: https://converse.xyz/dm/${xmtp.address}`
- );
- elizaLogger.log(
- `Coinbase Wallet: https://go.cb-w.com/messaging?address=${xmtp.address}`
- );
- elizaLogger.log(
- `Web or Farcaster Frame: https://client.message-kit.org/?address=${xmtp.address}`
+ name: 'xmtp',
+ start: async (elizaRuntime: IAgentRuntime) => {
+ const onMessage = async (message: Message) => {
+ elizaLogger.info(
+ `Decoded message: ${message.content?.text ?? "no text"} by ${
+ message.sender.address
+ }`
);
-
- return xmtp;
- }
- return xmtp;
- },
- stop: async (_runtime: IAgentRuntime) => {
- elizaLogger.warn("XMTP client does not support stopping yet");
- },
-};
-
-const onMessage = async (message: Message) => {
- elizaLogger.info(
- `Decoded message: ${message.content?.text ?? "no text"} by ${
- message.sender.address
- }`
- );
-
- try {
- const text = message?.content?.text ?? "";
- const messageId = stringToUuid(message.id as string);
- const userId = stringToUuid(message.sender.address as string);
- const roomId = stringToUuid(message.group.id as string);
- await elizaRuntime.ensureConnection(
- userId,
- roomId,
- message.sender.address,
- message.sender.address,
- "xmtp"
- );
-
- const content: Content = {
- text,
- source: "xmtp",
- inReplyTo: undefined,
- };
-
- const userMessage = {
- content,
- userId,
- roomId,
- agentId: elizaRuntime.agentId,
- };
-
- const memory: Memory = {
- id: messageId,
- agentId: elizaRuntime.agentId,
- userId,
- roomId,
- content,
- createdAt: Date.now(),
+
+ try {
+ const text = message?.content?.text ?? "";
+ const messageId = stringToUuid(message.id as string);
+ const userId = stringToUuid(message.sender.address as string);
+ const roomId = stringToUuid(message.group.id as string);
+ await elizaRuntime.ensureConnection(
+ userId,
+ roomId,
+ message.sender.address,
+ message.sender.address,
+ "xmtp"
+ );
+
+ const content: Content = {
+ text,
+ source: "xmtp",
+ inReplyTo: undefined,
+ };
+
+ const userMessage = {
+ content,
+ userId,
+ roomId,
+ agentId: elizaRuntime.agentId,
+ };
+
+ const memory: Memory = {
+ id: messageId,
+ agentId: elizaRuntime.agentId,
+ userId,
+ roomId,
+ content,
+ createdAt: Date.now(),
+ };
+
+ await elizaRuntime.messageManager.createMemory(memory);
+
+ const state = await elizaRuntime.composeState(userMessage, {
+ agentName: elizaRuntime.character.name,
+ });
+
+ const context = composeContext({
+ state,
+ template: messageHandlerTemplate,
+ });
+
+ const response = await generateMessageResponse({
+ runtime: elizaRuntime,
+ context,
+ modelClass: ModelClass.LARGE,
+ });
+ const _newMessage = [
+ {
+ text: response?.text,
+ source: "xmtp",
+ inReplyTo: messageId,
+ },
+ ];
+ // save response to memory
+ const responseMessage = {
+ ...userMessage,
+ userId: elizaRuntime.agentId,
+ content: response,
+ };
+
+ await elizaRuntime.messageManager.createMemory(responseMessage);
+
+ if (!response) {
+ elizaLogger.error("No response from generateMessageResponse");
+ return;
+ }
+
+ await elizaRuntime.evaluate(memory, state);
+
+ const _result = await elizaRuntime.processActions(
+ memory,
+ [responseMessage],
+ state,
+ async (newMessages) => {
+ if (newMessages.text) {
+ _newMessage.push({
+ text: newMessages.text,
+ source: "xmtp",
+ inReplyTo: undefined,
+ });
+ }
+ return [memory];
+ }
+ );
+ for (const newMsg of _newMessage) {
+ await xmtp.send({
+ message: newMsg.text,
+ originalMessage: message,
+ metadata: {},
+ });
+ }
+ } catch (error) {
+ elizaLogger.error("Error in onMessage", error);
+ }
};
- await elizaRuntime.messageManager.createMemory(memory);
-
- const state = await elizaRuntime.composeState(userMessage, {
- agentName: elizaRuntime.character.name,
+ const xmtp = await xmtpClient({
+ walletKey: process.env.EVM_PRIVATE_KEY as string,
+ onMessage,
});
- const context = composeContext({
- state,
- template: messageHandlerTemplate,
- });
+ elizaLogger.success("✅ XMTP client started");
+ elizaLogger.info(`XMTP address: ${xmtp.address}`);
+ elizaLogger.info(`Talk to me on:`);
+ elizaLogger.log(
+ `Converse: https://converse.xyz/dm/${xmtp.address}`
+ );
+ elizaLogger.log(
+ `Coinbase Wallet: https://go.cb-w.com/messaging?address=${xmtp.address}`
+ );
+ elizaLogger.log(
+ `Web or Farcaster Frame: https://client.message-kit.org/?address=${xmtp.address}`
+ );
- const response = await generateMessageResponse({
- runtime: elizaRuntime,
- context,
- modelClass: ModelClass.LARGE,
- });
- const _newMessage = [
- {
- text: response?.text,
- source: "xmtp",
- inReplyTo: messageId,
+ return {
+ async stop() {
+ elizaLogger.warn("XMTP client does not support stopping yet");
},
- ];
- // save response to memory
- const responseMessage = {
- ...userMessage,
- userId: elizaRuntime.agentId,
- content: response,
};
+ },
- await elizaRuntime.messageManager.createMemory(responseMessage);
-
- if (!response) {
- elizaLogger.error("No response from generateMessageResponse");
- return;
- }
-
- await elizaRuntime.evaluate(memory, state);
-
- const _result = await elizaRuntime.processActions(
- memory,
- [responseMessage],
- state,
- async (newMessages) => {
- if (newMessages.text) {
- _newMessage.push({
- text: newMessages.text,
- source: "xmtp",
- inReplyTo: undefined,
- });
- }
- return [memory];
- }
- );
- for (const newMsg of _newMessage) {
- await xmtp.send({
- message: newMsg.text,
- originalMessage: message,
- metadata: {},
- });
- }
- } catch (error) {
- elizaLogger.error("Error in onMessage", error);
- }
};
-export default XmtpClientInterface;
+const xmtpPlugin: Plugin = {
+ name: "xmtp",
+ description: "XMTP client",
+ clients: [XmtpClientInterface],
+};
+export default xmtpPlugin;
diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json
deleted file mode 100644
index d31153997fb..00000000000
--- a/packages/core/package-lock.json
+++ /dev/null
@@ -1,13901 +0,0 @@
-{
- "name": "@elizaos/core",
- "version": "0.1.8+build.1",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "@elizaos/core",
- "version": "0.1.8+build.1",
- "license": "MIT",
- "dependencies": {
- "@ai-sdk/anthropic": "0.0.56",
- "@ai-sdk/google": "0.0.55",
- "@ai-sdk/google-vertex": "0.0.43",
- "@ai-sdk/groq": "0.0.3",
- "@ai-sdk/mistral": "^1.0.8",
- "@ai-sdk/openai": "1.0.5",
- "@anthropic-ai/sdk": "0.30.1",
- "@fal-ai/client": "1.2.0",
- "@types/uuid": "10.0.0",
- "ai": "3.4.33",
- "anthropic-vertex-ai": "1.0.2",
- "fastembed": "1.14.1",
- "fastestsmallesttextencoderdecoder": "1.0.22",
- "gaxios": "6.7.1",
- "glob": "11.0.0",
- "handlebars": "^4.7.8",
- "js-sha1": "0.7.0",
- "js-tiktoken": "1.0.15",
- "langchain": "0.3.6",
- "ollama-ai-provider": "0.16.1",
- "openai": "4.73.0",
- "tinyld": "1.3.4",
- "together-ai": "0.7.0",
- "unique-names-generator": "4.7.1",
- "uuid": "11.0.3",
- "zod": "3.23.8"
- },
- "devDependencies": {
- "@eslint/js": "9.16.0",
- "@rollup/plugin-commonjs": "25.0.8",
- "@rollup/plugin-json": "6.1.0",
- "@rollup/plugin-node-resolve": "15.3.0",
- "@rollup/plugin-replace": "5.0.7",
- "@rollup/plugin-terser": "0.1.0",
- "@rollup/plugin-typescript": "11.1.6",
- "@solana/web3.js": "1.95.8",
- "@tavily/core": "^0.0.2",
- "@types/fluent-ffmpeg": "2.1.27",
- "@types/jest": "29.5.14",
- "@types/mocha": "10.0.10",
- "@types/node": "22.8.4",
- "@types/pdfjs-dist": "2.10.378",
- "@types/tar": "6.1.13",
- "@types/wav-encoder": "1.3.3",
- "@typescript-eslint/eslint-plugin": "8.16.0",
- "@typescript-eslint/parser": "8.16.0",
- "@vitest/coverage-v8": "2.1.5",
- "dotenv": "16.4.5",
- "jest": "29.7.0",
- "lint-staged": "15.2.10",
- "nodemon": "3.1.7",
- "pm2": "5.4.3",
- "rimraf": "6.0.1",
- "rollup": "2.79.2",
- "ts-jest": "29.2.5",
- "ts-node": "10.9.2",
- "tslib": "2.8.1",
- "tsup": "8.3.5",
- "typescript": "5.6.3"
- }
- },
- "node_modules/@ai-sdk/anthropic": {
- "version": "0.0.56",
- "resolved": "https://registry.npmjs.org/@ai-sdk/anthropic/-/anthropic-0.0.56.tgz",
- "integrity": "sha512-FC/XbeFANFp8rHH+zEZF34cvRu9T42rQxw9QnUzJ1LXTi1cWjxYOx2Zo4vfg0iofxxqgOe4fT94IdT2ERQ89bA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/google": {
- "version": "0.0.55",
- "resolved": "https://registry.npmjs.org/@ai-sdk/google/-/google-0.0.55.tgz",
- "integrity": "sha512-dvEMS8Ex2H0OeuFBiT4Q1Kfrxi1ckjooy/PazNLjRQ3w9o9VQq4O24eMQGCuW1Z47qgMdXjhDzsH6qD0HOX6Cw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/google-vertex": {
- "version": "0.0.43",
- "resolved": "https://registry.npmjs.org/@ai-sdk/google-vertex/-/google-vertex-0.0.43.tgz",
- "integrity": "sha512-lmZukH74m6MUl4fbyfz3T4qs5ukDUJ6YB5Dedtu+aK+Mdp05k9qTHAXxWiB8i/VdZqWlS+DEo/+b7pOPX0V7wA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@google-cloud/vertexai": "^1.6.0",
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/groq": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@ai-sdk/groq/-/groq-0.0.3.tgz",
- "integrity": "sha512-Iyj2p7/M0TVhoPrQfSiwfvjTpZFfc17a6qY/2s22+VgpT0yyfai9dVyLbfUAdnNlpGGrjDpxPHqK1L03r4KlyA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/mistral": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@ai-sdk/mistral/-/mistral-1.0.8.tgz",
- "integrity": "sha512-jWH4HHK4cYvXaac9UprMiSUBwOVb3e0hpbiL1wPb+2bF75pqQQKFQWQyfmoLFrh1oXlMOGn+B6IzwUDSFHLanA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "1.0.4",
- "@ai-sdk/provider-utils": "2.0.7"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/mistral/node_modules/@ai-sdk/provider": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.0.4.tgz",
- "integrity": "sha512-lJi5zwDosvvZER3e/pB8lj1MN3o3S7zJliQq56BRr4e9V3fcRyFtwP0JRxaRS5vHYX3OJ154VezVoQNrk0eaKw==",
- "license": "Apache-2.0",
- "dependencies": {
- "json-schema": "^0.4.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@ai-sdk/mistral/node_modules/@ai-sdk/provider-utils": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.0.7.tgz",
- "integrity": "sha512-4sfPlKEALHPXLmMFcPlYksst3sWBJXmCDZpIBJisRrmwGG6Nn3mq0N1Zu/nZaGcrWZoOY+HT2Wbxla1oTElYHQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "1.0.4",
- "eventsource-parser": "^3.0.0",
- "nanoid": "^3.3.8",
- "secure-json-parse": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/mistral/node_modules/eventsource-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz",
- "integrity": "sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==",
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@ai-sdk/openai": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-1.0.5.tgz",
- "integrity": "sha512-JDCPBJQx9o3LgboBPaA55v+9EZ7Vm/ozy0+J5DIr2jJF8WETjeCnigdxixyzEy/Od4wX871jOTSuGffwNIi0kA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "1.0.1",
- "@ai-sdk/provider-utils": "2.0.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/@ai-sdk/openai/node_modules/@ai-sdk/provider": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.0.1.tgz",
- "integrity": "sha512-mV+3iNDkzUsZ0pR2jG0sVzU6xtQY5DtSCBy3JFycLp6PwjyLw/iodfL3MwdmMCRJWgs3dadcHejRnMvF9nGTBg==",
- "license": "Apache-2.0",
- "dependencies": {
- "json-schema": "^0.4.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@ai-sdk/openai/node_modules/@ai-sdk/provider-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.0.2.tgz",
- "integrity": "sha512-IAvhKhdlXqiSmvx/D4uNlFYCl8dWT+M9K+IuEcSgnE2Aj27GWu8sDIpAf4r4Voc+wOUkOECVKQhFo8g9pozdjA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "1.0.1",
- "eventsource-parser": "^3.0.0",
- "nanoid": "^3.3.7",
- "secure-json-parse": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/openai/node_modules/eventsource-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz",
- "integrity": "sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==",
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@ai-sdk/provider": {
- "version": "0.0.26",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-0.0.26.tgz",
- "integrity": "sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==",
- "license": "Apache-2.0",
- "dependencies": {
- "json-schema": "^0.4.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@ai-sdk/provider-utils": {
- "version": "1.0.22",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.22.tgz",
- "integrity": "sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "eventsource-parser": "^1.1.2",
- "nanoid": "^3.3.7",
- "secure-json-parse": "^2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/react": {
- "version": "0.0.70",
- "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-0.0.70.tgz",
- "integrity": "sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider-utils": "1.0.22",
- "@ai-sdk/ui-utils": "0.0.50",
- "swr": "^2.2.5",
- "throttleit": "2.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "react": "^18 || ^19 || ^19.0.0-rc",
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/solid": {
- "version": "0.0.54",
- "resolved": "https://registry.npmjs.org/@ai-sdk/solid/-/solid-0.0.54.tgz",
- "integrity": "sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider-utils": "1.0.22",
- "@ai-sdk/ui-utils": "0.0.50"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "solid-js": "^1.7.7"
- },
- "peerDependenciesMeta": {
- "solid-js": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/svelte": {
- "version": "0.0.57",
- "resolved": "https://registry.npmjs.org/@ai-sdk/svelte/-/svelte-0.0.57.tgz",
- "integrity": "sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider-utils": "1.0.22",
- "@ai-sdk/ui-utils": "0.0.50",
- "sswr": "^2.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0"
- },
- "peerDependenciesMeta": {
- "svelte": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/ui-utils": {
- "version": "0.0.50",
- "resolved": "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-0.0.50.tgz",
- "integrity": "sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22",
- "json-schema": "^0.4.0",
- "secure-json-parse": "^2.7.0",
- "zod-to-json-schema": "^3.23.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@ai-sdk/ui-utils/node_modules/zod-to-json-schema": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz",
- "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/@ai-sdk/vue": {
- "version": "0.0.59",
- "resolved": "https://registry.npmjs.org/@ai-sdk/vue/-/vue-0.0.59.tgz",
- "integrity": "sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider-utils": "1.0.22",
- "@ai-sdk/ui-utils": "0.0.50",
- "swrv": "^1.0.4"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "vue": "^3.3.4"
- },
- "peerDependenciesMeta": {
- "vue": {
- "optional": true
- }
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@anthropic-ai/sdk": {
- "version": "0.30.1",
- "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.30.1.tgz",
- "integrity": "sha512-nuKvp7wOIz6BFei8WrTdhmSsx5mwnArYyJgh4+vYu3V4J0Ltb8Xm3odPm51n1aSI0XxNCrDl7O88cxCtUdAkaw==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7"
- }
- },
- "node_modules/@anthropic-ai/sdk/node_modules/@types/node": {
- "version": "18.19.70",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz",
- "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@anthropic-ai/sdk/node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "license": "MIT"
- },
- "node_modules/@anush008/tokenizers": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/@anush008/tokenizers/-/tokenizers-0.0.0.tgz",
- "integrity": "sha512-IQD9wkVReKAhsEAbDjh/0KrBGTEXelqZLpOBRDaIRvlzZ9sjmUP+gKbpvzyJnei2JHQiE8JAgj7YcNloINbGBw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- },
- "optionalDependencies": {
- "@anush008/tokenizers-darwin-universal": "0.0.0",
- "@anush008/tokenizers-linux-x64-gnu": "0.0.0",
- "@anush008/tokenizers-win32-x64-msvc": "0.0.0"
- }
- },
- "node_modules/@anush008/tokenizers-darwin-universal": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/@anush008/tokenizers-darwin-universal/-/tokenizers-darwin-universal-0.0.0.tgz",
- "integrity": "sha512-SACpWEooTjFX89dFKRVUhivMxxcZRtA3nJGVepdLyrwTkQ1TZQ8581B5JoXp0TcTMHfgnDaagifvVoBiFEdNCQ==",
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@anush008/tokenizers-linux-x64-gnu": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/@anush008/tokenizers-linux-x64-gnu/-/tokenizers-linux-x64-gnu-0.0.0.tgz",
- "integrity": "sha512-TLjByOPWUEq51L3EJkS+slyH57HKJ7lAz/aBtEt7TIPq4QsE2owOPGovByOLIq1x5Wgh9b+a4q2JasrEFSDDhg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@anush008/tokenizers-win32-x64-msvc": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/@anush008/tokenizers-win32-x64-msvc/-/tokenizers-win32-x64-msvc-0.0.0.tgz",
- "integrity": "sha512-/5kP0G96+Cr6947F0ZetXnmL31YCaN15dbNbh2NHg7TXXRwfqk95+JtPP5Q7v4jbR2xxAmuseBqB4H/V7zKWuw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
- "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
- "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.0",
- "@babel/generator": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.0",
- "@babel/parser": "^7.26.0",
- "@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.26.0",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
- "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.26.5",
- "@babel/types": "^7.26.5",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^3.0.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
- "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.26.5",
- "@babel/helper-validator-option": "^7.25.9",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
- "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
- "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
- "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
- "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.26.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz",
- "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.26.5"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
- "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
- "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
- "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
- "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
- "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.25.9",
- "@babel/parser": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz",
- "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.26.5",
- "@babel/parser": "^7.26.5",
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.26.5",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.26.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz",
- "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@cfworker/json-schema": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@cfworker/json-schema/-/json-schema-4.1.0.tgz",
- "integrity": "sha512-/vYKi/qMxwNsuIJ9WGWwM2rflY40ZenK3Kh4uR5vB9/Nz12Y7IUN/Xf4wDA7vzPfw0VNh3b/jz4+MjcVgARKJg==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
- "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz",
- "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz",
- "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz",
- "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz",
- "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz",
- "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz",
- "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz",
- "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz",
- "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz",
- "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz",
- "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz",
- "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz",
- "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz",
- "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz",
- "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz",
- "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz",
- "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz",
- "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz",
- "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz",
- "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz",
- "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz",
- "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz",
- "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz",
- "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz",
- "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
- "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-visitor-keys": "^3.4.3"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.12.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
- "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/config-array": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
- "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@eslint/object-schema": "^2.1.5",
- "debug": "^4.3.1",
- "minimatch": "^3.1.2"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/config-array/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@eslint/config-array/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/core": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
- "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@types/json-schema": "^7.0.15"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
- "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@eslint/js": {
- "version": "9.16.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz",
- "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/object-schema": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
- "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/plugin-kit": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
- "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@eslint/core": "^0.10.0",
- "levn": "^0.4.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@fal-ai/client": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@fal-ai/client/-/client-1.2.0.tgz",
- "integrity": "sha512-MNCnE5icY+OM5ahgYJItmydZ7AxhtzhgA5tQI13jVntzhLT0z+tetHIlAL1VA0XFZgldDzqxeTf9Pr5TW3VErg==",
- "license": "MIT",
- "dependencies": {
- "@msgpack/msgpack": "^3.0.0-beta2",
- "eventsource-parser": "^1.1.2",
- "robot3": "^0.4.1"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@google-cloud/vertexai": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/@google-cloud/vertexai/-/vertexai-1.9.2.tgz",
- "integrity": "sha512-pJSUG3r5QIvCFNfkz7/y7kEqvEJaVAk0jZbZoKbcPCRUnXaUeAq7p8I0oklqetGyxbUcZ2FOGpt+Y+4uIltVPg==",
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "google-auth-library": "^9.1.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/node": {
- "version": "0.16.6",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
- "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "@humanfs/core": "^0.19.1",
- "@humanwhocodes/retry": "^0.3.0"
- },
- "engines": {
- "node": ">=18.18.0"
- }
- },
- "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
- "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/retry": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
- "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.3.1",
- "find-up": "^4.1.0",
- "get-package-type": "^0.1.0",
- "js-yaml": "^3.13.1",
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/core/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-get-type": "^29.6.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/reporters/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/reporters/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/@jest/reporters/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@jest/reporters/node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@jest/reporters/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/@jest/reporters/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
- "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@langchain/core": {
- "version": "0.3.30",
- "resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.3.30.tgz",
- "integrity": "sha512-HFUpjJ6FkPSSeLKzCLKxba4VN1DKnrXRmjaWHDb5KUyE9DZrqak3Sh6k2dkzXDJIcdd/uNeeQGFyQnubVEMkPw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@cfworker/json-schema": "^4.0.2",
- "ansi-styles": "^5.0.0",
- "camelcase": "6",
- "decamelize": "1.2.0",
- "js-tiktoken": "^1.0.12",
- "langsmith": "^0.2.8",
- "mustache": "^4.2.0",
- "p-queue": "^6.6.2",
- "p-retry": "4",
- "uuid": "^10.0.0",
- "zod": "^3.22.4",
- "zod-to-json-schema": "^3.22.3"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@langchain/core/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "peer": true,
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@langchain/core/node_modules/zod": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
- "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
- "license": "MIT",
- "peer": true,
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/@langchain/core/node_modules/zod-to-json-schema": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz",
- "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==",
- "license": "ISC",
- "peer": true,
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/@langchain/openai": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.3.17.tgz",
- "integrity": "sha512-uw4po32OKptVjq+CYHrumgbfh4NuD7LqyE+ZgqY9I/LrLc6bHLMc+sisHmI17vgek0K/yqtarI0alPJbzrwyag==",
- "license": "MIT",
- "dependencies": {
- "js-tiktoken": "^1.0.12",
- "openai": "^4.77.0",
- "zod": "^3.22.4",
- "zod-to-json-schema": "^3.22.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@langchain/core": ">=0.3.29 <0.4.0"
- }
- },
- "node_modules/@langchain/openai/node_modules/@types/node": {
- "version": "18.19.70",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz",
- "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@langchain/openai/node_modules/openai": {
- "version": "4.78.1",
- "resolved": "https://registry.npmjs.org/openai/-/openai-4.78.1.tgz",
- "integrity": "sha512-drt0lHZBd2lMyORckOXFPQTmnGLWSLt8VK0W9BhOKWpMFBEoHMoz5gxMPmVq5icp+sOrsbMnsmZTVHUlKvD1Ow==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7"
- },
- "bin": {
- "openai": "bin/cli"
- },
- "peerDependencies": {
- "zod": "^3.23.8"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/@langchain/openai/node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "license": "MIT"
- },
- "node_modules/@langchain/openai/node_modules/zod": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
- "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/@langchain/openai/node_modules/zod-to-json-schema": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz",
- "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/@langchain/textsplitters": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@langchain/textsplitters/-/textsplitters-0.1.0.tgz",
- "integrity": "sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==",
- "license": "MIT",
- "dependencies": {
- "js-tiktoken": "^1.0.12"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@langchain/core": ">=0.2.21 <0.4.0"
- }
- },
- "node_modules/@msgpack/msgpack": {
- "version": "3.0.0-beta2",
- "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.0.0-beta2.tgz",
- "integrity": "sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==",
- "license": "ISC",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@napi-rs/canvas": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.65.tgz",
- "integrity": "sha512-YcFhXQcp+b2d38zFOJNbpyPHnIL7KAEkhJQ+UeeKI5IpE9B8Cpf/M6RiHPQXSsSqnYbrfFylnW49dyh2oeSblQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 10"
- },
- "optionalDependencies": {
- "@napi-rs/canvas-android-arm64": "0.1.65",
- "@napi-rs/canvas-darwin-arm64": "0.1.65",
- "@napi-rs/canvas-darwin-x64": "0.1.65",
- "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.65",
- "@napi-rs/canvas-linux-arm64-gnu": "0.1.65",
- "@napi-rs/canvas-linux-arm64-musl": "0.1.65",
- "@napi-rs/canvas-linux-riscv64-gnu": "0.1.65",
- "@napi-rs/canvas-linux-x64-gnu": "0.1.65",
- "@napi-rs/canvas-linux-x64-musl": "0.1.65",
- "@napi-rs/canvas-win32-x64-msvc": "0.1.65"
- }
- },
- "node_modules/@napi-rs/canvas-android-arm64": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.65.tgz",
- "integrity": "sha512-ZYwqFYEKcT5Zr8lbiaJNJj/poLaeK2TncolY914r+gD2TJNeP7ZqvE7A2SX/1C9MB4E3DQEwm3YhL3WEf0x3MQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-darwin-arm64": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.65.tgz",
- "integrity": "sha512-Pg1pfiJEyDIsX+V0QaJPRWvXbw5zmWAk3bivFCvt/5pwZb37/sT6E/RqPHT9NnqpDyKW6SriwY9ypjljysUA1Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-darwin-x64": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.65.tgz",
- "integrity": "sha512-3Tr+/HjdJN7Z/VKIcsxV2DvDIibZCExgfYTgljCkUSFuoI7iNkOE6Dc1Q6j212EB9PeO8KmfrViBqHYT6IwWkA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.65.tgz",
- "integrity": "sha512-3KP+dYObH7CVkZMZWwk1WX9jRjL+EKdQtD43H8MOI+illf+dwqLlecdQ4d9bQRIxELKJ8dyPWY4fOp/Ngufrdg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-arm64-gnu": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.65.tgz",
- "integrity": "sha512-Ka3StKz7Dq7kjTF3nNJCq43UN/VlANS7qGE3dWkn1d+tQNsCRy/wRmyt1TUFzIjRqcTFMQNRbgYq84+53UBA0A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-arm64-musl": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.65.tgz",
- "integrity": "sha512-O4xMASm2JrmqYoiDyxVWi+z5C14H+oVEag2rZ5iIA67dhWqYZB+iO7wCFpBYRj31JPBR29FOsu6X9zL+DwBFdw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.65.tgz",
- "integrity": "sha512-dblWDaA59ZU8bPbkfM+riSke7sFbNZ70LEevUdI5rgiFEUzYUQlU34gSBzemTACj5rCWt1BYeu0GfkLSjNMBSw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-x64-gnu": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.65.tgz",
- "integrity": "sha512-wsp+atutw13OJXGU3DDkdngtBDoEg01IuK5xMe0L6VFPV8maGkh17CXze078OD5QJOc6kFyw3DDscMLOPF8+oA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-linux-x64-musl": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.65.tgz",
- "integrity": "sha512-odX+nN+IozWzhdj31INcHz3Iy9+EckNw+VqsZcaUxZOTu7/3FmktRNI6aC1qe5minZNv1m05YOS1FVf7fvmjlA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/canvas-win32-x64-msvc": {
- "version": "0.1.65",
- "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.65.tgz",
- "integrity": "sha512-RZQX3luWnlNWgdMnLMQ1hyfQraeAn9lnxWWVCHuUM4tAWEV8UDdeb7cMwmJW7eyt8kAosmjeHt3cylQMHOxGFg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@noble/curves": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz",
- "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "1.7.0"
- },
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@noble/hashes": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz",
- "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@opentelemetry/api": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
- "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pm2/agent": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.4.tgz",
- "integrity": "sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==",
- "dev": true,
- "license": "AGPL-3.0",
- "dependencies": {
- "async": "~3.2.0",
- "chalk": "~3.0.0",
- "dayjs": "~1.8.24",
- "debug": "~4.3.1",
- "eventemitter2": "~5.0.1",
- "fast-json-patch": "^3.0.0-1",
- "fclone": "~1.0.11",
- "nssocket": "0.6.0",
- "pm2-axon": "~4.0.1",
- "pm2-axon-rpc": "~0.7.0",
- "proxy-agent": "~6.3.0",
- "semver": "~7.5.0",
- "ws": "~7.5.10"
- }
- },
- "node_modules/@pm2/agent/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@pm2/agent/node_modules/chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@pm2/agent/node_modules/dayjs": {
- "version": "1.8.36",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz",
- "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@pm2/agent/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@pm2/agent/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@pm2/agent/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@pm2/io": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.0.1.tgz",
- "integrity": "sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==",
- "dev": true,
- "license": "Apache-2",
- "dependencies": {
- "async": "~2.6.1",
- "debug": "~4.3.1",
- "eventemitter2": "^6.3.1",
- "require-in-the-middle": "^5.0.0",
- "semver": "~7.5.4",
- "shimmer": "^1.2.0",
- "signal-exit": "^3.0.3",
- "tslib": "1.9.3"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/@pm2/io/node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/@pm2/io/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@pm2/io/node_modules/eventemitter2": {
- "version": "6.4.9",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz",
- "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@pm2/io/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@pm2/io/node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@pm2/io/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@pm2/io/node_modules/tslib": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/@pm2/js-api": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz",
- "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==",
- "dev": true,
- "license": "Apache-2",
- "dependencies": {
- "async": "^2.6.3",
- "debug": "~4.3.1",
- "eventemitter2": "^6.3.1",
- "extrareqp2": "^1.0.0",
- "ws": "^7.0.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/@pm2/js-api/node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/@pm2/js-api/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@pm2/js-api/node_modules/eventemitter2": {
- "version": "6.4.9",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz",
- "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@pm2/pm2-version-check": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz",
- "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^4.3.1"
- }
- },
- "node_modules/@rollup/plugin-commonjs": {
- "version": "25.0.8",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz",
- "integrity": "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "commondir": "^1.0.1",
- "estree-walker": "^2.0.2",
- "glob": "^8.0.3",
- "is-reference": "1.2.1",
- "magic-string": "^0.30.3"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.68.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-commonjs/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@rollup/plugin-json": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
- "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.1.0"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-node-resolve": {
- "version": "15.3.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz",
- "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "@types/resolve": "1.20.2",
- "deepmerge": "^4.2.2",
- "is-module": "^1.0.0",
- "resolve": "^1.22.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.78.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-replace": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz",
- "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "magic-string": "^0.30.3"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-terser": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.1.0.tgz",
- "integrity": "sha512-N2KK+qUfHX2hBzVzM41UWGLrEmcjVC37spC8R3c9mt3oEDFKh3N2e12/lLp9aVSt86veR0TQiCNQXrm8C6aiUQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "terser": "^5.15.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.x || ^3.x"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-typescript": {
- "version": "11.1.6",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz",
- "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rollup/pluginutils": "^5.1.0",
- "resolve": "^1.22.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.14.0||^3.0.0||^4.0.0",
- "tslib": "*",
- "typescript": ">=3.7.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- },
- "tslib": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
- "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz",
- "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz",
- "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz",
- "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz",
- "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz",
- "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz",
- "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz",
- "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz",
- "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz",
- "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz",
- "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz",
- "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz",
- "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz",
- "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz",
- "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz",
- "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz",
- "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz",
- "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz",
- "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz",
- "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sinonjs/commons": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
- "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "node_modules/@solana/buffer-layout": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz",
- "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer": "~6.0.3"
- },
- "engines": {
- "node": ">=5.10"
- }
- },
- "node_modules/@solana/web3.js": {
- "version": "1.95.8",
- "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.8.tgz",
- "integrity": "sha512-sBHzNh7dHMrmNS5xPD1d0Xa2QffW/RXaxu/OysRXBfwTp+LYqGGmMtCYYwrHPrN5rjAmJCsQRNAwv4FM0t3B6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.25.0",
- "@noble/curves": "^1.4.2",
- "@noble/hashes": "^1.4.0",
- "@solana/buffer-layout": "^4.0.1",
- "agentkeepalive": "^4.5.0",
- "bigint-buffer": "^1.1.5",
- "bn.js": "^5.2.1",
- "borsh": "^0.7.0",
- "bs58": "^4.0.1",
- "buffer": "6.0.3",
- "fast-stable-stringify": "^1.0.0",
- "jayson": "^4.1.1",
- "node-fetch": "^2.7.0",
- "rpc-websockets": "^9.0.2",
- "superstruct": "^2.0.2"
- }
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- }
- },
- "node_modules/@tavily/core": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@tavily/core/-/core-0.0.2.tgz",
- "integrity": "sha512-UabYbp57bdjEloA4efW9zTSzv+FZp13JVDHcfutUNR5XUZ+aDGupe2wpfABECnD+b7Ojp9v9zguZcm1o+h0//w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "axios": "^1.7.7",
- "js-tiktoken": "^1.0.14"
- }
- },
- "node_modules/@tootallnate/quickjs-emscripten": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
- "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
- "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
- "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.8",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
- "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.20.6",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
- "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/diff-match-patch": {
- "version": "1.0.36",
- "resolved": "https://registry.npmjs.org/@types/diff-match-patch/-/diff-match-patch-1.0.36.tgz",
- "integrity": "sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==",
- "license": "MIT"
- },
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "license": "MIT"
- },
- "node_modules/@types/fluent-ffmpeg": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.27.tgz",
- "integrity": "sha512-QiDWjihpUhriISNoBi2hJBRUUmoj/BMTYcfz+F+ZM9hHWBYABFAE6hjP/TbCZC0GWwlpa3FzvHH9RzFeRusZ7A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
- "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jest": {
- "version": "29.5.14",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
- "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expect": "^29.0.0",
- "pretty-format": "^29.0.0"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/@types/mocha": {
- "version": "10.0.10",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz",
- "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "22.8.4",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.19.8"
- }
- },
- "node_modules/@types/node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^4.0.0"
- }
- },
- "node_modules/@types/pdfjs-dist": {
- "version": "2.10.378",
- "resolved": "https://registry.npmjs.org/@types/pdfjs-dist/-/pdfjs-dist-2.10.378.tgz",
- "integrity": "sha512-TRdIPqdsvKmPla44kVy4jv5Nt5vjMfVjbIEke1CRULIrwKNRC4lIiZvNYDJvbUMNCFPNIUcOKhXTyMJrX18IMA==",
- "deprecated": "This is a stub types definition. pdfjs-dist provides its own type definitions, so you do not need this installed.",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pdfjs-dist": "*"
- }
- },
- "node_modules/@types/resolve": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
- "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "license": "MIT"
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
- "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/tar": {
- "version": "6.1.13",
- "resolved": "https://registry.npmjs.org/@types/tar/-/tar-6.1.13.tgz",
- "integrity": "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "minipass": "^4.0.0"
- }
- },
- "node_modules/@types/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
- "license": "MIT"
- },
- "node_modules/@types/wav-encoder": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@types/wav-encoder/-/wav-encoder-1.3.3.tgz",
- "integrity": "sha512-2haw8zEMg4DspJRXmxUn2TElrQUs0bLPDh6x4N7/hDn+3tx2G05Lc+kC55uoHYsv8q+4deWhnDtHZT/ximg9aw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/ws": {
- "version": "7.4.7",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
- "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz",
- "integrity": "sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.16.0",
- "@typescript-eslint/type-utils": "8.16.0",
- "@typescript-eslint/utils": "8.16.0",
- "@typescript-eslint/visitor-keys": "8.16.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.16.0.tgz",
- "integrity": "sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/scope-manager": "8.16.0",
- "@typescript-eslint/types": "8.16.0",
- "@typescript-eslint/typescript-estree": "8.16.0",
- "@typescript-eslint/visitor-keys": "8.16.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz",
- "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.16.0",
- "@typescript-eslint/visitor-keys": "8.16.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz",
- "integrity": "sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/typescript-estree": "8.16.0",
- "@typescript-eslint/utils": "8.16.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz",
- "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz",
- "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@typescript-eslint/types": "8.16.0",
- "@typescript-eslint/visitor-keys": "8.16.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz",
- "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.16.0",
- "@typescript-eslint/types": "8.16.0",
- "@typescript-eslint/typescript-estree": "8.16.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz",
- "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.16.0",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@vitest/coverage-v8": {
- "version": "2.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "@bcoe/v8-coverage": "^0.2.3",
- "debug": "^4.3.7",
- "istanbul-lib-coverage": "^3.2.2",
- "istanbul-lib-report": "^3.0.1",
- "istanbul-lib-source-maps": "^5.0.6",
- "istanbul-reports": "^3.1.7",
- "magic-string": "^0.30.12",
- "magicast": "^0.3.5",
- "std-env": "^3.8.0",
- "test-exclude": "^7.0.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@vitest/browser": "2.1.5",
- "vitest": "2.1.5"
- },
- "peerDependenciesMeta": {
- "@vitest/browser": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/expect": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.5.tgz",
- "integrity": "sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/spy": "2.1.5",
- "@vitest/utils": "2.1.5",
- "chai": "^5.1.2",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/mocker": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.5.tgz",
- "integrity": "sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/spy": "2.1.5",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.12"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9",
- "vite": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/mocker/node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/@vitest/pretty-format": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz",
- "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.5.tgz",
- "integrity": "sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/utils": "2.1.5",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.5.tgz",
- "integrity": "sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/pretty-format": "2.1.5",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.5.tgz",
- "integrity": "sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/spy": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.5.tgz",
- "integrity": "sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tinyspy": "^3.0.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.5.tgz",
- "integrity": "sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/pretty-format": "2.1.5",
- "loupe": "^3.1.2",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.5.tgz",
- "integrity": "sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
- "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "@vue/shared": "3.5.13",
- "entities": "^4.5.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
- "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-core": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
- "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "@vue/compiler-core": "3.5.13",
- "@vue/compiler-dom": "3.5.13",
- "@vue/compiler-ssr": "3.5.13",
- "@vue/shared": "3.5.13",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.11",
- "postcss": "^8.4.48",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
- "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-dom": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
- "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
- "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/reactivity": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
- "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/reactivity": "3.5.13",
- "@vue/runtime-core": "3.5.13",
- "@vue/shared": "3.5.13",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
- "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-ssr": "3.5.13",
- "@vue/shared": "3.5.13"
- },
- "peerDependencies": {
- "vue": "3.5.13"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
- "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "license": "MIT",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-typescript": {
- "version": "1.4.13",
- "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz",
- "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==",
- "license": "MIT",
- "peer": true,
- "peerDependencies": {
- "acorn": ">=8.9.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
- "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/agentkeepalive": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz",
- "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==",
- "license": "MIT",
- "dependencies": {
- "humanize-ms": "^1.2.1"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/ai": {
- "version": "3.4.33",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22",
- "@ai-sdk/react": "0.0.70",
- "@ai-sdk/solid": "0.0.54",
- "@ai-sdk/svelte": "0.0.57",
- "@ai-sdk/ui-utils": "0.0.50",
- "@ai-sdk/vue": "0.0.59",
- "@opentelemetry/api": "1.9.0",
- "eventsource-parser": "1.1.2",
- "json-schema": "^0.4.0",
- "jsondiffpatch": "0.6.0",
- "secure-json-parse": "^2.7.0",
- "zod-to-json-schema": "^3.23.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "openai": "^4.42.0",
- "react": "^18 || ^19 || ^19.0.0-rc",
- "sswr": "^2.1.0",
- "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0",
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "openai": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "sswr": {
- "optional": true
- },
- "svelte": {
- "optional": true
- },
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/ai/node_modules/zod-to-json-schema": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz",
- "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/amp": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz",
- "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/amp-message": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz",
- "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "amp": "0.3.1"
- }
- },
- "node_modules/ansi-colors": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
- "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anthropic-vertex-ai": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/anthropic-vertex-ai/-/anthropic-vertex-ai-1.0.2.tgz",
- "integrity": "sha512-4YuK04KMmBGkx6fi2UjnHkE4mhaIov7tnT5La9+DMn/gw/NSOLZoWNUx+13VY3mkcaseKBMEn1DBzdXXJFIP7A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.24",
- "@ai-sdk/provider-utils": "1.0.20",
- "google-auth-library": "^9.14.1"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- }
- },
- "node_modules/anthropic-vertex-ai/node_modules/@ai-sdk/provider": {
- "version": "0.0.24",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-0.0.24.tgz",
- "integrity": "sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "json-schema": "0.4.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/anthropic-vertex-ai/node_modules/@ai-sdk/provider-utils": {
- "version": "1.0.20",
- "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.20.tgz",
- "integrity": "sha512-ngg/RGpnA00eNOWEtXHenpX1MsM2QshQh4QJFjUfwcqHpM5kTfG7je7Rc3HcEDP+OkRVv2GF+X4fC1Vfcnl8Ow==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.24",
- "eventsource-parser": "1.1.2",
- "nanoid": "3.3.6",
- "secure-json-parse": "2.7.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/anthropic-vertex-ai/node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/anymatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
- },
- "node_modules/aria-query": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
- "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/ast-types": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
- "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/async": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
- "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "license": "MIT"
- },
- "node_modules/axios": {
- "version": "1.7.9",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
- "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
- "devOptional": true,
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/axobject-query": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
- "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-istanbul/node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz",
- "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-import-attributes": "^7.24.7",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/base-x": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
- "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/basic-ftp": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
- "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/bigint-buffer": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz",
- "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==",
- "dev": true,
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "bindings": "^1.3.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/bignumber.js": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
- "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/blessed": {
- "version": "0.1.81",
- "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz",
- "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "blessed": "bin/tput.js"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/bodec": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz",
- "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/borsh": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
- "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "bn.js": "^5.2.0",
- "bs58": "^4.0.0",
- "text-encoding-utf-8": "^1.0.2"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.24.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
- "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001688",
- "electron-to-chromium": "^1.5.73",
- "node-releases": "^2.0.19",
- "update-browserslist-db": "^1.1.1"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bs-logger": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fast-json-stable-stringify": "2.x"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
- "license": "BSD-3-Clause"
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/bufferutil": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz",
- "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
- },
- "node_modules/bundle-require": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz",
- "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "load-tsconfig": "^0.2.3"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "peerDependencies": {
- "esbuild": ">=0.18"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001692",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz",
- "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chai": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
- "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "assertion-error": "^2.0.1",
- "check-error": "^2.1.1",
- "deep-eql": "^5.0.1",
- "loupe": "^3.1.0",
- "pathval": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chalk/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/charm": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz",
- "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==",
- "dev": true,
- "license": "MIT/X11"
- },
- "node_modules/check-error": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">= 16"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz",
- "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cli-cursor": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
- "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "restore-cursor": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-tableau": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz",
- "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==",
- "dev": true,
- "dependencies": {
- "chalk": "3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/cli-tableau/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/cli-tableau/node_modules/chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-truncate": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
- "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cli-truncate/node_modules/string-width": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/cliui/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cliui/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/consola": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz",
- "integrity": "sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- },
- "bin": {
- "create-jest": "bin/create-jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/croner": {
- "version": "4.1.97",
- "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz",
- "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/culvert": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz",
- "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/data-uri-to-buffer": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
- "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
- "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/dedent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
- "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
- },
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/deep-eql": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/degenerator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
- "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ast-types": "^0.13.4",
- "escodegen": "^2.1.0",
- "esprima": "^4.0.1"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/delay": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
- "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/diff-match-patch": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
- "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==",
- "license": "Apache-2.0"
- },
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/dotenv": {
- "version": "16.4.5",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "license": "MIT"
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/ejs": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
- "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.80",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz",
- "integrity": "sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "license": "MIT"
- },
- "node_modules/enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-colors": "^4.1.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/environment": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
- "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es6-promise": "^4.0.3"
- }
- },
- "node_modules/esbuild": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
- "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.24.2",
- "@esbuild/android-arm": "0.24.2",
- "@esbuild/android-arm64": "0.24.2",
- "@esbuild/android-x64": "0.24.2",
- "@esbuild/darwin-arm64": "0.24.2",
- "@esbuild/darwin-x64": "0.24.2",
- "@esbuild/freebsd-arm64": "0.24.2",
- "@esbuild/freebsd-x64": "0.24.2",
- "@esbuild/linux-arm": "0.24.2",
- "@esbuild/linux-arm64": "0.24.2",
- "@esbuild/linux-ia32": "0.24.2",
- "@esbuild/linux-loong64": "0.24.2",
- "@esbuild/linux-mips64el": "0.24.2",
- "@esbuild/linux-ppc64": "0.24.2",
- "@esbuild/linux-riscv64": "0.24.2",
- "@esbuild/linux-s390x": "0.24.2",
- "@esbuild/linux-x64": "0.24.2",
- "@esbuild/netbsd-arm64": "0.24.2",
- "@esbuild/netbsd-x64": "0.24.2",
- "@esbuild/openbsd-arm64": "0.24.2",
- "@esbuild/openbsd-x64": "0.24.2",
- "@esbuild/sunos-x64": "0.24.2",
- "@esbuild/win32-arm64": "0.24.2",
- "@esbuild/win32-ia32": "0.24.2",
- "@esbuild/win32-x64": "0.24.2"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/escodegen": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/eslint": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz",
- "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.19.0",
- "@eslint/core": "^0.10.0",
- "@eslint/eslintrc": "^3.2.0",
- "@eslint/js": "9.18.0",
- "@eslint/plugin-kit": "^0.2.5",
- "@humanfs/node": "^0.16.6",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.1",
- "@types/estree": "^1.0.6",
- "@types/json-schema": "^7.0.15",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.6",
- "debug": "^4.3.2",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.2.0",
- "eslint-visitor-keys": "^4.2.0",
- "espree": "^10.3.0",
- "esquery": "^1.5.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^8.0.0",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://eslint.org/donate"
- },
- "peerDependencies": {
- "jiti": "*"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-scope": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
- "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/@eslint/js": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz",
- "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/esm-env": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
- "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/espree": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
- "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "acorn": "^8.14.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "peer": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrap": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.2.tgz",
- "integrity": "sha512-FhVlJzvTw7ZLxYZ7RyHwQCFE64dkkpzGNNnphaGCLwjqGk1SQcqzbgdx9FowPCktx6NOSHkzvcZ3vsvdH54YXA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter2": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz",
- "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eventemitter3": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
- "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/eventsource-parser": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz",
- "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==",
- "license": "MIT",
- "engines": {
- "node": ">=14.18"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/execa/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/expect-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
- "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "license": "MIT"
- },
- "node_modules/extrareqp2": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz",
- "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.14.0"
- }
- },
- "node_modules/eyes": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
- "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
- "dev": true,
- "engines": {
- "node": "> 0.1.90"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-patch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz",
- "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/fast-stable-stringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz",
- "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastembed": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/fastembed/-/fastembed-1.14.1.tgz",
- "integrity": "sha512-Y14v+FWZwjNUpQ7mRGYu4N5yF+hZkF7zqzPWzzLbwdIEtYsHy0DSpiVJ+Fg6Oi1fQjrBKASQt0hdSMSjw1/Wtw==",
- "dependencies": {
- "@anush008/tokenizers": "^0.0.0",
- "onnxruntime-node": "1.15.1",
- "progress": "^2.0.3",
- "tar": "^6.2.0"
- }
- },
- "node_modules/fastestsmallesttextencoderdecoder": {
- "version": "1.0.22",
- "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz",
- "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==",
- "license": "CC0-1.0"
- },
- "node_modules/fastq": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
- "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/fclone": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz",
- "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fdir": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
- "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/file-entry-cache": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "flat-cache": "^4.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.4"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/flatted": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
- "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
- "dev": true,
- "license": "ISC",
- "peer": true
- },
- "node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
- "devOptional": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/foreground-child": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
- "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
- "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==",
- "license": "MIT"
- },
- "node_modules/formdata-node": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
- "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
- "license": "MIT",
- "dependencies": {
- "node-domexception": "1.0.0",
- "web-streams-polyfill": "4.0.0-beta.3"
- },
- "engines": {
- "node": ">= 12.20"
- }
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gaxios": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
- "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "extend": "^3.0.2",
- "https-proxy-agent": "^7.0.1",
- "is-stream": "^2.0.0",
- "node-fetch": "^2.6.9",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/gaxios/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/gcp-metadata": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
- "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
- "license": "Apache-2.0",
- "dependencies": {
- "gaxios": "^6.0.0",
- "json-bigint": "^1.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-east-asian-width": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
- "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-uri": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
- "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "basic-ftp": "^5.0.2",
- "data-uri-to-buffer": "^6.0.2",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/git-node-fs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz",
- "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/git-sha1": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz",
- "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/glob": {
- "version": "11.0.0",
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^4.0.1",
- "minimatch": "^10.0.0",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^2.0.0"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob/node_modules/jackspeak": {
- "version": "4.0.2",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob/node_modules/minimatch": {
- "version": "10.0.1",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/glob/node_modules/path-scurry": {
- "version": "2.0.0",
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^11.0.0",
- "minipass": "^7.1.2"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/google-auth-library": {
- "version": "9.15.0",
- "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.0.tgz",
- "integrity": "sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "base64-js": "^1.3.0",
- "ecdsa-sig-formatter": "^1.0.11",
- "gaxios": "^6.1.1",
- "gcp-metadata": "^6.1.0",
- "gtoken": "^7.0.0",
- "jws": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/gtoken": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
- "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
- "license": "MIT",
- "dependencies": {
- "gaxios": "^6.0.0",
- "jws": "^4.0.0"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/handlebars": {
- "version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "license": "MIT",
- "dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.2",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
- },
- "engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.0.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-local": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
- "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/ip-address": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
- "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jsbn": "1.1.0",
- "sprintf-js": "^1.1.3"
- },
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/ip-address/node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-reference": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
- "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "license": "ISC"
- },
- "node_modules/isomorphic-ws": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
- "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "ws": "*"
- }
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
- "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@babel/core": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@istanbuljs/schema": "^0.1.3",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "5.0.6",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.23",
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
- "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jake": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz",
- "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jake/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jake/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jayson": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.3.tgz",
- "integrity": "sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/connect": "^3.4.33",
- "@types/node": "^12.12.54",
- "@types/ws": "^7.4.4",
- "commander": "^2.20.3",
- "delay": "^5.0.0",
- "es6-promisify": "^5.0.0",
- "eyes": "^0.1.8",
- "isomorphic-ws": "^4.0.1",
- "json-stringify-safe": "^5.0.1",
- "JSONStream": "^1.3.5",
- "uuid": "^8.3.2",
- "ws": "^7.5.10"
- },
- "bin": {
- "jayson": "bin/jayson.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jayson/node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jayson/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jest-config/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jest-config/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/jest-runtime/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/jest-runtime/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/joycon": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/js-git": {
- "version": "0.7.8",
- "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz",
- "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bodec": "^0.1.0",
- "culvert": "^0.1.2",
- "git-sha1": "^0.1.2",
- "pako": "^0.2.5"
- }
- },
- "node_modules/js-sha1": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.7.0.tgz",
- "integrity": "sha512-oQZ1Mo7440BfLSv9TX87VNEyU52pXPVG19F9PL3gTgNt0tVxlZ8F4O6yze3CLuLx28TxotxvlyepCNaaV0ZjMw==",
- "license": "MIT"
- },
- "node_modules/js-tiktoken": {
- "version": "1.0.15",
- "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.15.tgz",
- "integrity": "sha512-65ruOWWXDEZHHbAo7EjOcNxOGasQKbL4Fq3jEr2xsCqSsoOo6VVSqzWQb6PRIqypFSDcma4jO90YP0w5X8qVXQ==",
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.5.1"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
- "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/json-bigint": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
- "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
- "license": "MIT",
- "dependencies": {
- "bignumber.js": "^9.0.0"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "license": "(AFL-2.1 OR BSD-3-Clause)"
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsondiffpatch": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.6.0.tgz",
- "integrity": "sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==",
- "license": "MIT",
- "dependencies": {
- "@types/diff-match-patch": "^1.0.36",
- "chalk": "^5.3.0",
- "diff-match-patch": "^1.0.5"
- },
- "bin": {
- "jsondiffpatch": "bin/jsondiffpatch.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- }
- },
- "node_modules/jsondiffpatch/node_modules/chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dev": true,
- "engines": [
- "node >= 0.2.0"
- ],
- "license": "MIT"
- },
- "node_modules/jsonpointer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
- "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dev": true,
- "license": "(MIT OR Apache-2.0)",
- "dependencies": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- },
- "bin": {
- "JSONStream": "bin.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/jwa": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
- "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
- "license": "MIT",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jws": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
- "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
- "license": "MIT",
- "dependencies": {
- "jwa": "^2.0.0",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/langchain": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/langchain/-/langchain-0.3.6.tgz",
- "integrity": "sha512-erZOIKXzwCOrQHqY9AyjkQmaX62zUap1Sigw1KrwMUOnVoLKkVNRmAyxFlNZDZ9jLs/58MaQcaT9ReJtbj3x6w==",
- "license": "MIT",
- "dependencies": {
- "@langchain/openai": ">=0.1.0 <0.4.0",
- "@langchain/textsplitters": ">=0.0.0 <0.2.0",
- "js-tiktoken": "^1.0.12",
- "js-yaml": "^4.1.0",
- "jsonpointer": "^5.0.1",
- "langsmith": "^0.2.0",
- "openapi-types": "^12.1.3",
- "p-retry": "4",
- "uuid": "^10.0.0",
- "yaml": "^2.2.1",
- "zod": "^3.22.4",
- "zod-to-json-schema": "^3.22.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@langchain/anthropic": "*",
- "@langchain/aws": "*",
- "@langchain/cohere": "*",
- "@langchain/core": ">=0.2.21 <0.4.0",
- "@langchain/google-genai": "*",
- "@langchain/google-vertexai": "*",
- "@langchain/groq": "*",
- "@langchain/mistralai": "*",
- "@langchain/ollama": "*",
- "axios": "*",
- "cheerio": "*",
- "handlebars": "^4.7.8",
- "peggy": "^3.0.2",
- "typeorm": "*"
- },
- "peerDependenciesMeta": {
- "@langchain/anthropic": {
- "optional": true
- },
- "@langchain/aws": {
- "optional": true
- },
- "@langchain/cohere": {
- "optional": true
- },
- "@langchain/google-genai": {
- "optional": true
- },
- "@langchain/google-vertexai": {
- "optional": true
- },
- "@langchain/groq": {
- "optional": true
- },
- "@langchain/mistralai": {
- "optional": true
- },
- "@langchain/ollama": {
- "optional": true
- },
- "axios": {
- "optional": true
- },
- "cheerio": {
- "optional": true
- },
- "handlebars": {
- "optional": true
- },
- "peggy": {
- "optional": true
- },
- "typeorm": {
- "optional": true
- }
- }
- },
- "node_modules/langchain/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/langchain/node_modules/zod": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
- "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/langchain/node_modules/zod-to-json-schema": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz",
- "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==",
- "license": "ISC",
- "peerDependencies": {
- "zod": "^3.24.1"
- }
- },
- "node_modules/langsmith": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.2.15.tgz",
- "integrity": "sha512-homtJU41iitqIZVuuLW7iarCzD4f39KcfP9RTBWav9jifhrsDa1Ez89Ejr+4qi72iuBu8Y5xykchsGVgiEZ93w==",
- "license": "MIT",
- "dependencies": {
- "@types/uuid": "^10.0.0",
- "commander": "^10.0.1",
- "p-queue": "^6.6.2",
- "p-retry": "4",
- "semver": "^7.6.3",
- "uuid": "^10.0.0"
- },
- "peerDependencies": {
- "openai": "*"
- },
- "peerDependenciesMeta": {
- "openai": {
- "optional": true
- }
- }
- },
- "node_modules/langsmith/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/langsmith/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/lazy": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
- "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.2.0"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lint-staged": {
- "version": "15.2.10",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz",
- "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "~5.3.0",
- "commander": "~12.1.0",
- "debug": "~4.3.6",
- "execa": "~8.0.1",
- "lilconfig": "~3.1.2",
- "listr2": "~8.2.4",
- "micromatch": "~4.0.8",
- "pidtree": "~0.6.0",
- "string-argv": "~0.3.2",
- "yaml": "~2.5.0"
- },
- "bin": {
- "lint-staged": "bin/lint-staged.js"
- },
- "engines": {
- "node": ">=18.12.0"
- },
- "funding": {
- "url": "https://opencollective.com/lint-staged"
- }
- },
- "node_modules/lint-staged/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/lint-staged/node_modules/commander": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
- "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/lint-staged/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/lint-staged/node_modules/execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/lint-staged/node_modules/get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.17.0"
- }
- },
- "node_modules/lint-staged/node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/npm-run-path": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lint-staged/node_modules/yaml": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz",
- "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/listr2": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz",
- "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cli-truncate": "^4.0.0",
- "colorette": "^2.0.20",
- "eventemitter3": "^5.0.1",
- "log-update": "^6.1.0",
- "rfdc": "^1.4.1",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/listr2/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/listr2/node_modules/emoji-regex": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/listr2/node_modules/string-width": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/listr2/node_modules/wrap-ansi": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
- "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "string-width": "^7.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/load-tsconfig": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/locate-character": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
- "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/log-update": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
- "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^7.0.0",
- "cli-cursor": "^5.0.0",
- "slice-ansi": "^7.1.0",
- "strip-ansi": "^7.1.0",
- "wrap-ansi": "^9.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/ansi-escapes": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
- "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "environment": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/log-update/node_modules/emoji-regex": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/log-update/node_modules/is-fullwidth-code-point": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
- "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-east-asian-width": "^1.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/slice-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
- "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "is-fullwidth-code-point": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/log-update/node_modules/string-width": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^10.3.0",
- "get-east-asian-width": "^1.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-update/node_modules/wrap-ansi": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
- "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.2.1",
- "string-width": "^7.0.0",
- "strip-ansi": "^7.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/loupe": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
- "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/lru-cache": {
- "version": "11.0.2",
- "license": "ISC",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.17",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
- "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/magicast": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
- "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.25.4",
- "@babel/types": "^7.25.4",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/micromatch/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mimic-function": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
- "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/minimatch": {
- "version": "9.0.5",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/module-details-from-path": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
- "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "license": "MIT",
- "peer": true,
- "bin": {
- "mustache": "bin/mustache"
- }
- },
- "node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/needle": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
- "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^3.2.6",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- },
- "bin": {
- "needle": "bin/needle"
- },
- "engines": {
- "node": ">= 4.4.x"
- }
- },
- "node_modules/needle/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "license": "MIT"
- },
- "node_modules/netmask": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
- "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/node-domexception": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
- "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "github",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=10.5.0"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
- "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/node-releases": {
- "version": "2.0.19",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
- "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nodemon": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz",
- "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^3.5.2",
- "debug": "^4",
- "ignore-by-default": "^1.0.1",
- "minimatch": "^3.1.2",
- "pstree.remy": "^1.1.8",
- "semver": "^7.5.3",
- "simple-update-notifier": "^2.0.0",
- "supports-color": "^5.5.0",
- "touch": "^3.1.0",
- "undefsafe": "^2.0.5"
- },
- "bin": {
- "nodemon": "bin/nodemon.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/nodemon"
- }
- },
- "node_modules/nodemon/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/nodemon/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nodemon/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/nodemon/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nssocket": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz",
- "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eventemitter2": "~0.4.14",
- "lazy": "~1.0.11"
- },
- "engines": {
- "node": ">= 0.10.x"
- }
- },
- "node_modules/nssocket/node_modules/eventemitter2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
- "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ollama-ai-provider": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/ollama-ai-provider/-/ollama-ai-provider-0.16.1.tgz",
- "integrity": "sha512-0vSQVz5Y/LguyzfO4bi1JrrVGF/k2JvO8/uFR0wYmqDFp8KPp4+AhdENSynGBr1oRhMWOM4F1l6cv7UNDgRMjw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@ai-sdk/provider": "0.0.26",
- "@ai-sdk/provider-utils": "1.0.22",
- "partial-json": "0.1.7"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "zod": "^3.0.0"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/onnxruntime-common": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.15.1.tgz",
- "integrity": "sha512-Y89eJ8QmaRsPZPWLaX7mfqhj63ny47rSkQe80hIo+lvBQdrdXYR9VO362xvZulk9DFkCnXmGidprvgJ07bKsIQ==",
- "license": "MIT"
- },
- "node_modules/onnxruntime-node": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.15.1.tgz",
- "integrity": "sha512-wzhVELulmrvNoMZw0/HfV+9iwgHX+kPS82nxodZ37WCXmbeo1jp3thamTsNg8MGhxvv4GmEzRum5mo40oqIsqw==",
- "license": "MIT",
- "os": [
- "win32",
- "darwin",
- "linux"
- ],
- "dependencies": {
- "onnxruntime-common": "~1.15.1"
- }
- },
- "node_modules/openai": {
- "version": "4.73.0",
- "resolved": "https://registry.npmjs.org/openai/-/openai-4.73.0.tgz",
- "integrity": "sha512-NZstV77w3CEol9KQTRBRQ15+Sw6nxVTicAULSjYO4wn9E5gw72Mtp3fAVaBFXyyVPws4241YmFG6ya4L8v03tA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7"
- },
- "bin": {
- "openai": "bin/cli"
- },
- "peerDependencies": {
- "zod": "^3.23.8"
- },
- "peerDependenciesMeta": {
- "zod": {
- "optional": true
- }
- }
- },
- "node_modules/openai/node_modules/@types/node": {
- "version": "18.19.70",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz",
- "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/openai/node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "license": "MIT"
- },
- "node_modules/openapi-types": {
- "version": "12.1.3",
- "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
- "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==",
- "license": "MIT"
- },
- "node_modules/optionator": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-queue": {
- "version": "6.6.2",
- "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
- "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
- "license": "MIT",
- "dependencies": {
- "eventemitter3": "^4.0.4",
- "p-timeout": "^3.2.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-queue/node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "license": "MIT"
- },
- "node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "license": "MIT",
- "dependencies": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-timeout": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
- "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
- "license": "MIT",
- "dependencies": {
- "p-finally": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pac-proxy-agent": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz",
- "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@tootallnate/quickjs-emscripten": "^0.23.0",
- "agent-base": "^7.1.2",
- "debug": "^4.3.4",
- "get-uri": "^6.0.1",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.6",
- "pac-resolver": "^7.0.1",
- "socks-proxy-agent": "^8.0.5"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/pac-resolver": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
- "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "degenerator": "^5.0.0",
- "netmask": "^2.0.2"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "license": "BlueOak-1.0.0"
- },
- "node_modules/pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/partial-json": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz",
- "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==",
- "license": "MIT"
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/pathval": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">= 14.16"
- }
- },
- "node_modules/pdfjs-dist": {
- "version": "4.10.38",
- "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz",
- "integrity": "sha512-/Y3fcFrXEAsMjJXeL9J8+ZG9U01LbuWaYypvDW2ycW1jL269L3js3DVBjDJ0Up9Np1uqDXsDrRihHANhZOlwdQ==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=20"
- },
- "optionalDependencies": {
- "@napi-rs/canvas": "^0.1.65"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pidtree": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
- "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "pidtree": "bin/pidtree.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/pidusage": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz",
- "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pm2": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.4.3.tgz",
- "integrity": "sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==",
- "dev": true,
- "license": "AGPL-3.0",
- "dependencies": {
- "@pm2/agent": "~2.0.0",
- "@pm2/io": "~6.0.1",
- "@pm2/js-api": "~0.8.0",
- "@pm2/pm2-version-check": "latest",
- "async": "~3.2.0",
- "blessed": "0.1.81",
- "chalk": "3.0.0",
- "chokidar": "^3.5.3",
- "cli-tableau": "^2.0.0",
- "commander": "2.15.1",
- "croner": "~4.1.92",
- "dayjs": "~1.11.5",
- "debug": "^4.3.1",
- "enquirer": "2.3.6",
- "eventemitter2": "5.0.1",
- "fclone": "1.0.11",
- "js-yaml": "~4.1.0",
- "mkdirp": "1.0.4",
- "needle": "2.4.0",
- "pidusage": "~3.0",
- "pm2-axon": "~4.0.1",
- "pm2-axon-rpc": "~0.7.1",
- "pm2-deploy": "~1.0.2",
- "pm2-multimeter": "^0.1.2",
- "promptly": "^2",
- "semver": "^7.2",
- "source-map-support": "0.5.21",
- "sprintf-js": "1.1.2",
- "vizion": "~2.2.1"
- },
- "bin": {
- "pm2": "bin/pm2",
- "pm2-dev": "bin/pm2-dev",
- "pm2-docker": "bin/pm2-docker",
- "pm2-runtime": "bin/pm2-runtime"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "optionalDependencies": {
- "pm2-sysmonit": "^1.2.8"
- }
- },
- "node_modules/pm2-axon": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz",
- "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "amp": "~0.3.1",
- "amp-message": "~0.1.1",
- "debug": "^4.3.1",
- "escape-string-regexp": "^4.0.0"
- },
- "engines": {
- "node": ">=5"
- }
- },
- "node_modules/pm2-axon-rpc": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz",
- "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^4.3.1"
- },
- "engines": {
- "node": ">=5"
- }
- },
- "node_modules/pm2-deploy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz",
- "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "run-series": "^1.1.8",
- "tv4": "^1.3.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/pm2-multimeter": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz",
- "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==",
- "dev": true,
- "license": "MIT/X11",
- "dependencies": {
- "charm": "~0.1.1"
- }
- },
- "node_modules/pm2-sysmonit": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz",
- "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==",
- "dev": true,
- "license": "Apache",
- "optional": true,
- "dependencies": {
- "async": "^3.2.0",
- "debug": "^4.3.1",
- "pidusage": "^2.0.21",
- "systeminformation": "^5.7",
- "tx2": "~1.0.4"
- }
- },
- "node_modules/pm2-sysmonit/node_modules/pidusage": {
- "version": "2.0.21",
- "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz",
- "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pm2/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pm2/node_modules/chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pm2/node_modules/commander": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
- "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pm2/node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.0.tgz",
- "integrity": "sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "nanoid": "^3.3.8",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/pretty-format": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/promptly": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz",
- "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "read": "^1.0.4"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/proxy-agent": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz",
- "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.0.2",
- "debug": "^4.3.4",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.2",
- "lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.0.1",
- "proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.2"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/proxy-agent/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "devOptional": true,
- "license": "MIT"
- },
- "node_modules/pstree.remy": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
- "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pure-rand": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
- "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/dubzzz"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fast-check"
- }
- ],
- "license": "MIT"
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/react": {
- "version": "19.0.0",
- "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz",
- "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/read": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "mute-stream": "~0.0.4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/readdirp/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-in-the-middle": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz",
- "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.1",
- "module-details-from-path": "^1.0.3",
- "resolve": "^1.22.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-cwd/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/resolve.exports": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
- "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/restore-cursor": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
- "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "onetime": "^7.0.0",
- "signal-exit": "^4.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/restore-cursor/node_modules/onetime": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
- "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-function": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rfdc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/rimraf": {
- "version": "6.0.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^11.0.0",
- "package-json-from-dist": "^1.0.0"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": "20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/robot3": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/robot3/-/robot3-0.4.1.tgz",
- "integrity": "sha512-hzjy826lrxzx8eRgv80idkf8ua1JAepRc9Efdtj03N3KNJuznQCPlyCJ7gnUmDFwZCLQjxy567mQVKmdv2BsXQ==",
- "license": "BSD-2-Clause"
- },
- "node_modules/rollup": {
- "version": "2.79.2",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
- "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=10.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/rpc-websockets": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.4.tgz",
- "integrity": "sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==",
- "dev": true,
- "license": "LGPL-3.0-only",
- "dependencies": {
- "@swc/helpers": "^0.5.11",
- "@types/uuid": "^8.3.4",
- "@types/ws": "^8.2.2",
- "buffer": "^6.0.3",
- "eventemitter3": "^5.0.1",
- "uuid": "^8.3.2",
- "ws": "^8.5.0"
- },
- "funding": {
- "type": "paypal",
- "url": "https://paypal.me/kozjak"
- },
- "optionalDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- }
- },
- "node_modules/rpc-websockets/node_modules/@types/uuid": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
- "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/rpc-websockets/node_modules/@types/ws": {
- "version": "8.5.13",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
- "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/rpc-websockets/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/rpc-websockets/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/run-series": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz",
- "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/sax": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
- "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/secure-json-parse": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
- "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
- "license": "BSD-3-Clause"
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shimmer": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
- "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dev": true,
- "license": "ISC",
- "peer": true
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-update-notifier": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
- "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/slice-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
- }
- },
- "node_modules/slice-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
- "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ip-address": "^9.0.5",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks-proxy-agent": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
- "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "^4.3.4",
- "socks": "^2.8.3"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/sswr": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/sswr/-/sswr-2.1.0.tgz",
- "integrity": "sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==",
- "license": "MIT",
- "dependencies": {
- "swrev": "^4.0.0"
- },
- "peerDependencies": {
- "svelte": "^4.0.0 || ^5.0.0-next.0"
- }
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/stack-utils/node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/std-env": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
- "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/string-argv": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
- "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.6.19"
- }
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-length/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-length/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/sucrase/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/sucrase/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/superstruct": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz",
- "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/svelte": {
- "version": "5.17.4",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.17.4.tgz",
- "integrity": "sha512-ne4IhhVBwzpUByjo1ocxQnqRoWsRilc9Ry1j+0uPWhHmg4jS/nnlSwYYfx7Ium8okCZ4hYM89rg0B5G0hQzk+g==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@types/estree": "^1.0.5",
- "acorn": "^8.12.1",
- "acorn-typescript": "^1.4.13",
- "aria-query": "^5.3.1",
- "axobject-query": "^4.1.0",
- "clsx": "^2.1.1",
- "esm-env": "^1.2.1",
- "esrap": "^1.4.2",
- "is-reference": "^3.0.3",
- "locate-character": "^3.0.0",
- "magic-string": "^0.30.11",
- "zimmerframe": "^1.1.2"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/svelte/node_modules/is-reference": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
- "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/estree": "^1.0.6"
- }
- },
- "node_modules/swr": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.0.tgz",
- "integrity": "sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==",
- "license": "MIT",
- "dependencies": {
- "dequal": "^2.0.3",
- "use-sync-external-store": "^1.4.0"
- },
- "peerDependencies": {
- "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/swrev": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/swrev/-/swrev-4.0.0.tgz",
- "integrity": "sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==",
- "license": "MIT"
- },
- "node_modules/swrv": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/swrv/-/swrv-1.0.4.tgz",
- "integrity": "sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==",
- "license": "Apache-2.0",
- "peerDependencies": {
- "vue": ">=3.2.26 < 4"
- }
- },
- "node_modules/systeminformation": {
- "version": "5.25.11",
- "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz",
- "integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin",
- "linux",
- "win32",
- "freebsd",
- "openbsd",
- "netbsd",
- "sunos",
- "android"
- ],
- "bin": {
- "systeminformation": "lib/cli.js"
- },
- "engines": {
- "node": ">=8.0.0"
- },
- "funding": {
- "type": "Buy me a coffee",
- "url": "https://www.buymeacoffee.com/systeminfo"
- }
- },
- "node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "license": "ISC",
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/terser": {
- "version": "5.37.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz",
- "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser/node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/test-exclude": {
- "version": "7.0.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^10.4.1",
- "minimatch": "^9.0.4"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "10.4.5",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/test-exclude/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/test-exclude/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/test-exclude/node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/test-exclude/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/text-encoding-utf-8": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
- "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==",
- "dev": true
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/throttleit": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz",
- "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinybench": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
- "node_modules/tinyexec": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
- "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyglobby": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
- "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.4.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/tinyld": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/tinyld/-/tinyld-1.3.4.tgz",
- "integrity": "sha512-u26CNoaInA4XpDU+8s/6Cq8xHc2T5M4fXB3ICfXPokUQoLzmPgSZU02TAkFwFMJCWTjk53gtkS8pETTreZwCqw==",
- "license": "MIT",
- "bin": {
- "tinyld": "bin/tinyld.js",
- "tinyld-heavy": "bin/tinyld-heavy.js",
- "tinyld-light": "bin/tinyld-light.js"
- },
- "engines": {
- "node": ">= 12.10.0",
- "npm": ">= 6.12.0",
- "yarn": ">= 1.20.0"
- }
- },
- "node_modules/tinypool": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
- "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- }
- },
- "node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tinyspy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
- "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/together-ai": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/together-ai/-/together-ai-0.7.0.tgz",
- "integrity": "sha512-/be/HOecBSwRTDHB14vCvHbp1WiNsFxyS4pJlyBoMup1X3n7xD1b/Gm5Z5amlKzD2zll9Y5wscDk7Ut5OsT1nA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/node": "^18.11.18",
- "@types/node-fetch": "^2.6.4",
- "abort-controller": "^3.0.0",
- "agentkeepalive": "^4.2.1",
- "form-data-encoder": "1.7.2",
- "formdata-node": "^4.3.2",
- "node-fetch": "^2.6.7"
- }
- },
- "node_modules/together-ai/node_modules/@types/node": {
- "version": "18.19.70",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.70.tgz",
- "integrity": "sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/together-ai/node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "license": "MIT"
- },
- "node_modules/touch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
- "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "nodetouch": "bin/nodetouch.js"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "license": "MIT"
- },
- "node_modules/tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "tree-kill": "cli.js"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
- "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/ts-jest": {
- "version": "29.2.5",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz",
- "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bs-logger": "^0.2.6",
- "ejs": "^3.1.10",
- "fast-json-stable-stringify": "^2.1.0",
- "jest-util": "^29.0.0",
- "json5": "^2.2.3",
- "lodash.memoize": "^4.1.2",
- "make-error": "^1.3.6",
- "semver": "^7.6.3",
- "yargs-parser": "^21.1.1"
- },
- "bin": {
- "ts-jest": "cli.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
- },
- "peerDependencies": {
- "@babel/core": ">=7.0.0-beta.0 <8",
- "@jest/transform": "^29.0.0",
- "@jest/types": "^29.0.0",
- "babel-jest": "^29.0.0",
- "jest": "^29.0.0",
- "typescript": ">=4.3 <6"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "@jest/transform": {
- "optional": true
- },
- "@jest/types": {
- "optional": true
- },
- "babel-jest": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- }
- }
- },
- "node_modules/ts-node": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
- "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "dev": true,
- "license": "0BSD"
- },
- "node_modules/tsup": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.5.tgz",
- "integrity": "sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bundle-require": "^5.0.0",
- "cac": "^6.7.14",
- "chokidar": "^4.0.1",
- "consola": "^3.2.3",
- "debug": "^4.3.7",
- "esbuild": "^0.24.0",
- "joycon": "^3.1.1",
- "picocolors": "^1.1.1",
- "postcss-load-config": "^6.0.1",
- "resolve-from": "^5.0.0",
- "rollup": "^4.24.0",
- "source-map": "0.8.0-beta.0",
- "sucrase": "^3.35.0",
- "tinyexec": "^0.3.1",
- "tinyglobby": "^0.2.9",
- "tree-kill": "^1.2.2"
- },
- "bin": {
- "tsup": "dist/cli-default.js",
- "tsup-node": "dist/cli-node.js"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@microsoft/api-extractor": "^7.36.0",
- "@swc/core": "^1",
- "postcss": "^8.4.12",
- "typescript": ">=4.5.0"
- },
- "peerDependenciesMeta": {
- "@microsoft/api-extractor": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/tsup/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/tsup/node_modules/readdirp": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
- "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/tsup/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tsup/node_modules/rollup": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz",
- "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.6"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.30.1",
- "@rollup/rollup-android-arm64": "4.30.1",
- "@rollup/rollup-darwin-arm64": "4.30.1",
- "@rollup/rollup-darwin-x64": "4.30.1",
- "@rollup/rollup-freebsd-arm64": "4.30.1",
- "@rollup/rollup-freebsd-x64": "4.30.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.30.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.30.1",
- "@rollup/rollup-linux-arm64-gnu": "4.30.1",
- "@rollup/rollup-linux-arm64-musl": "4.30.1",
- "@rollup/rollup-linux-loongarch64-gnu": "4.30.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.30.1",
- "@rollup/rollup-linux-s390x-gnu": "4.30.1",
- "@rollup/rollup-linux-x64-gnu": "4.30.1",
- "@rollup/rollup-linux-x64-musl": "4.30.1",
- "@rollup/rollup-win32-arm64-msvc": "4.30.1",
- "@rollup/rollup-win32-ia32-msvc": "4.30.1",
- "@rollup/rollup-win32-x64-msvc": "4.30.1",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/tsup/node_modules/source-map": {
- "version": "0.8.0-beta.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "whatwg-url": "^7.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/tsup/node_modules/tr46": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/tsup/node_modules/webidl-conversions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dev": true,
- "license": "BSD-2-Clause"
- },
- "node_modules/tsup/node_modules/whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
- },
- "node_modules/tv4": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
- "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==",
- "dev": true,
- "license": [
- {
- "type": "Public Domain",
- "url": "http://geraintluff.github.io/tv4/LICENSE.txt"
- },
- {
- "type": "MIT",
- "url": "http://jsonary.com/LICENSE.txt"
- }
- ],
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/tx2": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz",
- "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "json-stringify-safe": "^5.0.1"
- }
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
- "devOptional": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/uglify-js": {
- "version": "3.19.3",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
- "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
- "license": "BSD-2-Clause",
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/undefsafe": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
- "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
- "license": "MIT"
- },
- "node_modules/unique-names-generator": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/unique-names-generator/-/unique-names-generator-4.7.1.tgz",
- "integrity": "sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
- "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
- "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/utf-8-validate": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
- "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
- },
- "node_modules/uuid": {
- "version": "11.0.3",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/esm/bin/uuid"
- }
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
- "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/vite": {
- "version": "5.4.11",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz",
- "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-node": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.5.tgz",
- "integrity": "sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "cac": "^6.7.14",
- "debug": "^4.3.7",
- "es-module-lexer": "^1.5.4",
- "pathe": "^1.1.2",
- "vite": "^5.0.0"
- },
- "bin": {
- "vite-node": "vite-node.mjs"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/vite/node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "peer": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/vite/node_modules/rollup": {
- "version": "4.30.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz",
- "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/estree": "1.0.6"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.30.1",
- "@rollup/rollup-android-arm64": "4.30.1",
- "@rollup/rollup-darwin-arm64": "4.30.1",
- "@rollup/rollup-darwin-x64": "4.30.1",
- "@rollup/rollup-freebsd-arm64": "4.30.1",
- "@rollup/rollup-freebsd-x64": "4.30.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.30.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.30.1",
- "@rollup/rollup-linux-arm64-gnu": "4.30.1",
- "@rollup/rollup-linux-arm64-musl": "4.30.1",
- "@rollup/rollup-linux-loongarch64-gnu": "4.30.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.30.1",
- "@rollup/rollup-linux-s390x-gnu": "4.30.1",
- "@rollup/rollup-linux-x64-gnu": "4.30.1",
- "@rollup/rollup-linux-x64-musl": "4.30.1",
- "@rollup/rollup-win32-arm64-msvc": "4.30.1",
- "@rollup/rollup-win32-ia32-msvc": "4.30.1",
- "@rollup/rollup-win32-x64-msvc": "4.30.1",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/vitest": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.5.tgz",
- "integrity": "sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vitest/expect": "2.1.5",
- "@vitest/mocker": "2.1.5",
- "@vitest/pretty-format": "^2.1.5",
- "@vitest/runner": "2.1.5",
- "@vitest/snapshot": "2.1.5",
- "@vitest/spy": "2.1.5",
- "@vitest/utils": "2.1.5",
- "chai": "^5.1.2",
- "debug": "^4.3.7",
- "expect-type": "^1.1.0",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2",
- "std-env": "^3.8.0",
- "tinybench": "^2.9.0",
- "tinyexec": "^0.3.1",
- "tinypool": "^1.0.1",
- "tinyrainbow": "^1.2.0",
- "vite": "^5.0.0",
- "vite-node": "2.1.5",
- "why-is-node-running": "^2.3.0"
- },
- "bin": {
- "vitest": "vitest.mjs"
- },
- "engines": {
- "node": "^18.0.0 || >=20.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@edge-runtime/vm": "*",
- "@types/node": "^18.0.0 || >=20.0.0",
- "@vitest/browser": "2.1.5",
- "@vitest/ui": "2.1.5",
- "happy-dom": "*",
- "jsdom": "*"
- },
- "peerDependenciesMeta": {
- "@edge-runtime/vm": {
- "optional": true
- },
- "@types/node": {
- "optional": true
- },
- "@vitest/browser": {
- "optional": true
- },
- "@vitest/ui": {
- "optional": true
- },
- "happy-dom": {
- "optional": true
- },
- "jsdom": {
- "optional": true
- }
- }
- },
- "node_modules/vizion": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz",
- "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "async": "^2.6.3",
- "git-node-fs": "^1.0.0",
- "ini": "^1.3.5",
- "js-git": "^0.7.8"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/vizion/node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/vue": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
- "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-dom": "3.5.13",
- "@vue/compiler-sfc": "3.5.13",
- "@vue/runtime-dom": "3.5.13",
- "@vue/server-renderer": "3.5.13",
- "@vue/shared": "3.5.13"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/web-streams-polyfill": {
- "version": "4.0.0-beta.3",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
- "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "license": "BSD-2-Clause"
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/why-is-node-running": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "siginfo": "^2.0.0",
- "stackback": "0.0.2"
- },
- "bin": {
- "why-is-node-running": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/write-file-atomic/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
- "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/yargs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zimmerframe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz",
- "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/zod": {
- "version": "3.23.8",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
- "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
-}
diff --git a/packages/core/package.json b/packages/core/package.json
index 846dc907950..41fee218614 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -62,13 +62,13 @@
"typescript": "5.6.3"
},
"dependencies": {
- "@ai-sdk/anthropic": "0.0.56",
- "@ai-sdk/google": "0.0.55",
- "@ai-sdk/google-vertex": "0.0.43",
- "@ai-sdk/groq": "0.0.3",
- "@ai-sdk/mistral": "1.0.9",
+ "@ai-sdk/anthropic": "1.1.6",
+ "@ai-sdk/google": "1.1.0",
+ "@ai-sdk/google-vertex": "2.1.11",
+ "@ai-sdk/groq": "1.1.7",
+ "@ai-sdk/mistral": "1.1.6",
"@ai-sdk/openai": "1.1.9",
- "@ai-sdk/amazon-bedrock": "1.1.0",
+ "@ai-sdk/amazon-bedrock": "1.1.6",
"@fal-ai/client": "1.2.0",
"@tavily/core": "^0.0.2",
"@types/uuid": "10.0.0",
diff --git a/packages/core/src/defaultCharacter.ts b/packages/core/src/defaultCharacter.ts
index 8faaa64f2b4..691b9d51707 100644
--- a/packages/core/src/defaultCharacter.ts
+++ b/packages/core/src/defaultCharacter.ts
@@ -4,7 +4,6 @@ export const defaultCharacter: Character = {
name: "Eliza",
username: "eliza",
plugins: [],
- clients: [],
modelProvider: ModelProviderName.LLAMALOCAL,
settings: {
secrets: {},
diff --git a/packages/core/src/environment.ts b/packages/core/src/environment.ts
index dff7e50e8a1..7fd7d138a0c 100644
--- a/packages/core/src/environment.ts
+++ b/packages/core/src/environment.ts
@@ -1,5 +1,5 @@
import { z } from "zod";
-import { ModelProviderName, Clients } from "./types";
+import { ModelProviderName } from "./types";
import elizaLogger from "./logger";
// TODO: TO COMPLETE
@@ -94,7 +94,6 @@ export const CharacterSchema = z.object({
])
)
.optional(),
- clients: z.array(z.nativeEnum(Clients)),
plugins: z.union([z.array(z.string()), z.array(PluginSchema)]),
settings: z
.object({
diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts
index b4382e8ef54..ae0747af6a0 100644
--- a/packages/core/src/runtime.ts
+++ b/packages/core/src/runtime.ts
@@ -43,6 +43,7 @@ import {
ModelProviderName,
type Plugin,
type Provider,
+ type Adapter,
type Service,
type ServiceType,
type State,
@@ -52,6 +53,7 @@ import {
type Evaluator,
type Memory,
type DirectoryItem,
+ type ClientInstance,
} from "./types.ts";
import { stringToUuid } from "./uuid.ts";
import { glob } from "glob";
@@ -110,6 +112,11 @@ export class AgentRuntime implements IAgentRuntime {
*/
providers: Provider[] = [];
+ /**
+ * Database adapters used to interact with the database.
+ */
+ adapters: Adapter[] = [];
+
plugins: Plugin[] = [];
/**
@@ -170,7 +177,7 @@ export class AgentRuntime implements IAgentRuntime {
services: Map = new Map();
memoryManagers: Map = new Map();
cacheManager: ICacheManager;
- clients: Record;
+ clients: ClientInstance[] = [];
verifiableInferenceAdapter?: IVerifiableInferenceAdapter;
@@ -250,10 +257,10 @@ export class AgentRuntime implements IAgentRuntime {
services?: Service[]; // Map of service name to service instance
managers?: IMemoryManager[]; // Map of table name to memory manager
- databaseAdapter: IDatabaseAdapter; // The database adapter used for interacting with the database
+ databaseAdapter?: IDatabaseAdapter; // The database adapter used for interacting with the database
fetch?: typeof fetch | unknown;
speechModelPath?: string;
- cacheManager: ICacheManager;
+ cacheManager?: ICacheManager;
logging?: boolean;
verifiableInferenceAdapter?: IVerifiableInferenceAdapter;
}) {
@@ -289,23 +296,8 @@ export class AgentRuntime implements IAgentRuntime {
this.#conversationLength =
opts.conversationLength ?? this.#conversationLength;
- if (!opts.databaseAdapter) {
- throw new Error("No database adapter provided");
- }
this.databaseAdapter = opts.databaseAdapter;
- // By convention, we create a user and room using the agent id.
- // Memories related to it are considered global context for the agent.
- this.ensureRoomExists(this.agentId);
- this.ensureUserExists(
- this.agentId,
- this.character.username || this.character.name,
- this.character.name,
- ).then(() => {
- // postgres needs the user to exist before you can add a participant
- this.ensureParticipantExists(this.agentId, this.agentId);
- });
-
elizaLogger.success(`Agent ID: ${this.agentId}`);
this.fetch = (opts.fetch as typeof fetch) ?? this.fetch;
@@ -426,6 +418,10 @@ export class AgentRuntime implements IAgentRuntime {
plugin.providers?.forEach((provider) => {
this.registerContextProvider(provider);
});
+
+ plugin.adapters?.forEach((adapter) => {
+ this.registerAdapter(adapter);
+ });
});
(opts.actions ?? []).forEach((action) => {
@@ -443,7 +439,23 @@ export class AgentRuntime implements IAgentRuntime {
this.verifiableInferenceAdapter = opts.verifiableInferenceAdapter;
}
+ private async initializeDatabase() {
+ // By convention, we create a user and room using the agent id.
+ // Memories related to it are considered global context for the agent.
+ this.ensureRoomExists(this.agentId);
+ this.ensureUserExists(
+ this.agentId,
+ this.character.username || this.character.name,
+ this.character.name,
+ ).then(() => {
+ // postgres needs the user to exist before you can add a participant
+ this.ensureParticipantExists(this.agentId, this.agentId);
+ });
+ }
+
async initialize() {
+ this.initializeDatabase();
+
for (const [serviceType, service] of this.services.entries()) {
try {
await service.initialize(this);
@@ -572,15 +584,14 @@ export class AgentRuntime implements IAgentRuntime {
// services (just initialized), clients
// client have a start
- for (const cStr in this.clients) {
- const c = this.clients[cStr];
+ for (const c of this.clients) {
elizaLogger.log(
"runtime::stop - requesting",
- cStr,
+ c,
"client stop for",
this.character.name,
);
- c.stop();
+ c.stop(this);
}
// we don't need to unregister with directClient
// don't need to worry about knowledge
@@ -979,6 +990,14 @@ export class AgentRuntime implements IAgentRuntime {
this.providers.push(provider);
}
+ /**
+ * Register an adapter for the agent to use.
+ * @param adapter The adapter to register.
+ */
+ registerAdapter(adapter: Adapter) {
+ this.adapters.push(adapter);
+ }
+
/**
* Process the actions of a message.
* @param message The message to process.
diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index 4b40244193f..1c08f714797 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -607,15 +607,34 @@ export type Media = {
contentType?: string;
};
+/**
+ * Client instance
+ */
+export type ClientInstance = {
+ /** Client name */
+ // name: string;
+
+ /** Stop client connection */
+ stop: (runtime: IAgentRuntime) => Promise;
+};
+
/**
* Client interface for platform connections
*/
export type Client = {
+ /** Client name */
+ name: string;
+
+ /** Client configuration */
+ config?: { [key: string]: any };
+
/** Start client connection */
- start: (runtime: IAgentRuntime) => Promise;
+ start: (runtime: IAgentRuntime) => Promise;
+};
- /** Stop client connection */
- stop: (runtime: IAgentRuntime) => Promise;
+export type Adapter = {
+ /** Initialize adapter */
+ init: (runtime: IAgentRuntime) => IDatabaseAdapter & IDatabaseCacheAdapter;
};
/**
@@ -625,6 +644,9 @@ export type Plugin = {
/** Plugin name */
name: string;
+ /** Plugin configuration */
+ config?: { [key: string]: any };
+
/** Plugin description */
description: string;
@@ -642,28 +664,10 @@ export type Plugin = {
/** Optional clients */
clients?: Client[];
-};
-/**
- * Available client platforms
- */
-export enum Clients {
- ALEXA= "alexa",
- DISCORD = "discord",
- DIRECT = "direct",
- TWITTER = "twitter",
- TELEGRAM = "telegram",
- TELEGRAM_ACCOUNT = "telegram-account",
- FARCASTER = "farcaster",
- LENS = "lens",
- AUTO = "auto",
- SLACK = "slack",
- GITHUB = "github",
- INSTAGRAM = "instagram",
- SIMSAI = "simsai",
- XMTP = "xmtp",
- DEVA = "deva",
-}
+ /** Optional adapters */
+ adapters?: Adapter[];
+};
export interface IAgentConfig {
[key: string]: string;
@@ -799,9 +803,6 @@ export type Character = {
/** Optional knowledge base */
knowledge?: (string | { path: string; shared?: boolean })[];
- /** Supported client platforms */
- clients: Clients[];
-
/** Available plugins */
plugins: Plugin[];
@@ -1294,9 +1295,7 @@ export interface IAgentRuntime {
cacheManager: ICacheManager;
services: Map;
- // any could be EventEmitter
- // but I think the real solution is forthcoming as a base client interface
- clients: Record;
+ clients: ClientInstance[];
verifiableInferenceAdapter?: IVerifiableInferenceAdapter | null;
diff --git a/packages/dynamic-imports/package.json b/packages/dynamic-imports/package.json
new file mode 100644
index 00000000000..440ee24d4aa
--- /dev/null
+++ b/packages/dynamic-imports/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "dynamic-imports",
+ "type": "module",
+ "main": "src/index.ts"
+}
diff --git a/packages/dynamic-imports/src/index.ts b/packages/dynamic-imports/src/index.ts
new file mode 100644
index 00000000000..12684abcb71
--- /dev/null
+++ b/packages/dynamic-imports/src/index.ts
@@ -0,0 +1,14 @@
+const registrations = new Map();
+
+export const dynamicImport = async (specifier: string) => {
+ const module = registrations.get(specifier);
+ if (module !== undefined) {
+ return module;
+ } else {
+ return await import(specifier);
+ }
+};
+
+export const registerDynamicImport = (specifier: string, module: any) => {
+ registrations.set(specifier, module);
+};
\ No newline at end of file
diff --git a/packages/plugin-binance/package.json b/packages/plugin-binance/package.json
index 76950ff4716..5500126790e 100644
--- a/packages/plugin-binance/package.json
+++ b/packages/plugin-binance/package.json
@@ -20,7 +20,8 @@
],
"dependencies": {
"@binance/connector": "^3.6.0",
- "@elizaos/core": "workspace:*"
+ "@elizaos/core": "workspace:*",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@types/node": "^20.0.0",
diff --git a/packages/plugin-bittensor/package.json b/packages/plugin-bittensor/package.json
index 22ad8ab6c07..dd74ce8c260 100644
--- a/packages/plugin-bittensor/package.json
+++ b/packages/plugin-bittensor/package.json
@@ -17,7 +17,6 @@
"dist"
],
"dependencies": {
- "@elizaos/client-twitter": "workspace:*",
"@elizaos/core": "workspace:*",
"tsup": "8.3.5"
},
diff --git a/packages/plugin-bittensor/src/index.ts b/packages/plugin-bittensor/src/index.ts
index 476a3d89b50..1920e9f9b86 100644
--- a/packages/plugin-bittensor/src/index.ts
+++ b/packages/plugin-bittensor/src/index.ts
@@ -1,5 +1,4 @@
import type { Plugin } from "@elizaos/core";
-import { TwitterClientInterface } from "@elizaos/client-twitter";
import { analyzeImage, analysisHistory } from "./actions/sn34.ts";
import { factEvaluator } from "./evaluators/fact.ts";
@@ -19,6 +18,6 @@ export const bittensorPlugin: Plugin = {
],
evaluators: [factEvaluator],
providers: [timeProvider],
- clients: [TwitterClientInterface]
+ clients: []
};
export default bittensorPlugin;
\ No newline at end of file
diff --git a/packages/plugin-bootstrap/dist/index.d.ts b/packages/plugin-bootstrap/dist/index.d.ts
new file mode 100644
index 00000000000..8f5acb3ee3f
--- /dev/null
+++ b/packages/plugin-bootstrap/dist/index.d.ts
@@ -0,0 +1,65 @@
+import { Action, Memory, Evaluator, Provider, Plugin } from '@elizaos/core';
+
+declare const messageHandlerTemplate: string;
+declare const shouldContinueTemplate: string;
+declare const continueAction: Action;
+
+declare const shouldFollowTemplate: string;
+declare const followRoomAction: Action;
+
+declare const ignoreAction: Action;
+
+declare const shouldMuteTemplate: string;
+declare const muteRoomAction: Action;
+
+declare const noneAction: Action;
+
+declare const unfollowRoomAction: Action;
+
+declare const shouldUnmuteTemplate: string;
+declare const unmuteRoomAction: Action;
+
+declare const index$2_continueAction: typeof continueAction;
+declare const index$2_followRoomAction: typeof followRoomAction;
+declare const index$2_ignoreAction: typeof ignoreAction;
+declare const index$2_messageHandlerTemplate: typeof messageHandlerTemplate;
+declare const index$2_muteRoomAction: typeof muteRoomAction;
+declare const index$2_noneAction: typeof noneAction;
+declare const index$2_shouldContinueTemplate: typeof shouldContinueTemplate;
+declare const index$2_shouldFollowTemplate: typeof shouldFollowTemplate;
+declare const index$2_shouldMuteTemplate: typeof shouldMuteTemplate;
+declare const index$2_shouldUnmuteTemplate: typeof shouldUnmuteTemplate;
+declare const index$2_unfollowRoomAction: typeof unfollowRoomAction;
+declare const index$2_unmuteRoomAction: typeof unmuteRoomAction;
+declare namespace index$2 {
+ export { index$2_continueAction as continueAction, index$2_followRoomAction as followRoomAction, index$2_ignoreAction as ignoreAction, index$2_messageHandlerTemplate as messageHandlerTemplate, index$2_muteRoomAction as muteRoomAction, index$2_noneAction as noneAction, index$2_shouldContinueTemplate as shouldContinueTemplate, index$2_shouldFollowTemplate as shouldFollowTemplate, index$2_shouldMuteTemplate as shouldMuteTemplate, index$2_shouldUnmuteTemplate as shouldUnmuteTemplate, index$2_unfollowRoomAction as unfollowRoomAction, index$2_unmuteRoomAction as unmuteRoomAction };
+}
+
+declare const formatFacts: (facts: Memory[]) => string;
+declare const factEvaluator: Evaluator;
+
+declare const goalEvaluator: Evaluator;
+
+declare const index$1_factEvaluator: typeof factEvaluator;
+declare const index$1_formatFacts: typeof formatFacts;
+declare const index$1_goalEvaluator: typeof goalEvaluator;
+declare namespace index$1 {
+ export { index$1_factEvaluator as factEvaluator, index$1_formatFacts as formatFacts, index$1_goalEvaluator as goalEvaluator };
+}
+
+declare const boredomProvider: Provider;
+
+declare const timeProvider: Provider;
+
+declare const factsProvider: Provider;
+
+declare const index_boredomProvider: typeof boredomProvider;
+declare const index_factsProvider: typeof factsProvider;
+declare const index_timeProvider: typeof timeProvider;
+declare namespace index {
+ export { index_boredomProvider as boredomProvider, index_factsProvider as factsProvider, index_timeProvider as timeProvider };
+}
+
+declare const bootstrapPlugin: Plugin;
+
+export { index$2 as actions, bootstrapPlugin, bootstrapPlugin as default, index$1 as evaluators, index as providers };
diff --git a/packages/plugin-bootstrap/dist/index.js b/packages/plugin-bootstrap/dist/index.js
new file mode 100644
index 00000000000..1626231ab76
--- /dev/null
+++ b/packages/plugin-bootstrap/dist/index.js
@@ -0,0 +1,2814 @@
+var __defProp = Object.defineProperty;
+var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+
+// src/actions/continue.ts
+import { composeContext, elizaLogger } from "@elizaos/core";
+import { generateMessageResponse, generateTrueOrFalse } from "@elizaos/core";
+import { booleanFooter, messageCompletionFooter } from "@elizaos/core";
+import {
+ ModelClass
+} from "@elizaos/core";
+var maxContinuesInARow = 3;
+var messageHandlerTemplate = (
+ // {{goals}}
+ `# Action Examples
+{{actionExamples}}
+(Action examples are for reference only. Do not use the information from them in your response.)
+
+# Task: Generate dialog and actions for the character {{agentName}}.
+About {{agentName}}:
+{{bio}}
+{{lore}}
+{{knowledge}}
+
+{{providers}}
+
+{{attachments}}
+
+# Capabilities
+Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section.
+
+{{messageDirections}}
+
+{{recentMessages}}
+
+{{actions}}
+
+# Instructions: Write the next message for {{agentName}}.
+` + messageCompletionFooter
+);
+var shouldContinueTemplate = `# Task: Decide if {{agentName}} should continue, or wait for others in the conversation so speak.
+
+{{agentName}} is brief, and doesn't want to be annoying. {{agentName}} will only continue if the message requires a continuation to finish the thought.
+
+Based on the following conversation, should {{agentName}} continue? YES or NO
+
+{{recentMessages}}
+
+Should {{agentName}} continue? ` + booleanFooter;
+var continueAction = {
+ name: "CONTINUE",
+ similes: ["ELABORATE", "KEEP_TALKING"],
+ description: "ONLY use this action when the message necessitates a follow up. Do not use this action when the conversation is finished or the user does not wish to speak (use IGNORE instead). If the last message action was CONTINUE, and the user has not responded. Use sparingly.",
+ validate: async (runtime, message) => {
+ const recentMessagesData = await runtime.messageManager.getMemories({
+ roomId: message.roomId,
+ count: 10,
+ unique: false
+ });
+ const agentMessages = recentMessagesData.filter(
+ (m) => m.userId === runtime.agentId
+ );
+ if (agentMessages) {
+ const lastMessages = agentMessages.slice(0, maxContinuesInARow);
+ if (lastMessages.length >= maxContinuesInARow) {
+ const allContinues = lastMessages.every(
+ (m) => m.content.action === "CONTINUE"
+ );
+ if (allContinues) {
+ return false;
+ }
+ }
+ }
+ return true;
+ },
+ handler: async (runtime, message, state, options, callback) => {
+ if (!state) {
+ state = await runtime.composeState(message);
+ }
+ state = await runtime.updateRecentMessageState(state);
+ const agentMessages = state.recentMessagesData.filter((m) => m.userId === runtime.agentId).sort((a, b) => {
+ const aTime = a.createdAt || 0;
+ const bTime = b.createdAt || 0;
+ return bTime - aTime;
+ });
+ const lastAgentMessage = agentMessages[0];
+ if (lastAgentMessage?.content?.inReplyTo === message.id) {
+ const continueCount = agentMessages.filter((m) => m.content?.inReplyTo === message.id).filter((m) => m.content?.action === "CONTINUE").length;
+ if (continueCount >= maxContinuesInARow) {
+ elizaLogger.log(
+ `[CONTINUE] Max continues (${maxContinuesInARow}) reached for this message chain`
+ );
+ return;
+ }
+ if (lastAgentMessage.content?.action !== "CONTINUE") {
+ elizaLogger.log(
+ `[CONTINUE] Last message wasn't a CONTINUE, preventing double response`
+ );
+ return;
+ }
+ }
+ if (lastAgentMessage && lastAgentMessage.content.text && (lastAgentMessage.content.text.endsWith("?") || lastAgentMessage.content.text.endsWith("!")) || message.content.text.endsWith("?") || message.content.text.endsWith("!")) {
+ elizaLogger.log(
+ `[CONTINUE] Last message had question/exclamation. Not proceeding.`
+ );
+ return;
+ }
+ const messageExists = agentMessages.slice(0, maxContinuesInARow + 1).some(
+ (m) => m.content.text === message.content.text
+ );
+ if (messageExists) {
+ return;
+ }
+ async function _shouldContinue(state2) {
+ const shouldRespondContext = composeContext({
+ state: state2,
+ template: shouldContinueTemplate
+ });
+ const response2 = await generateTrueOrFalse({
+ context: shouldRespondContext,
+ modelClass: ModelClass.SMALL,
+ runtime
+ });
+ return response2;
+ }
+ const shouldContinue = await _shouldContinue(state);
+ if (!shouldContinue) {
+ elizaLogger.log("[CONTINUE] Not elaborating, returning");
+ return;
+ }
+ const context = composeContext({
+ state,
+ template: runtime.character.templates?.continueMessageHandlerTemplate || runtime.character.templates?.messageHandlerTemplate || messageHandlerTemplate
+ });
+ const { userId, roomId } = message;
+ const response = await generateMessageResponse({
+ runtime,
+ context,
+ modelClass: ModelClass.LARGE
+ });
+ response.inReplyTo = message.id;
+ runtime.databaseAdapter.log({
+ body: { message, context, response },
+ userId,
+ roomId,
+ type: "continue"
+ });
+ await callback(response);
+ if (response.action === "CONTINUE") {
+ const continueCount = agentMessages.slice(0, maxContinuesInARow).filter((m) => m.content?.action === "CONTINUE").length;
+ if (continueCount >= maxContinuesInARow - 1) {
+ response.action = null;
+ }
+ }
+ return response;
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "we're planning a solo backpacking trip soon"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "oh sick", action: "CONTINUE" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "where are you going" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i just got a guitar and started learning last month"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "maybe we can start a band soon haha" }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i'm not very good yet, but i've been playing until my fingers hut",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "seriously it hurts to type" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I've been reflecting a lot on what happiness means to me lately",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "That it\u2019s more about moments than things",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Like the best things that have ever happened were things that happened, or moments that I had with someone",
+ action: "CONTINUE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i found some incredible art today"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "real art or digital art" }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "real art",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "the pieces are just so insane looking, one sec, let me grab a link",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "DMed it to you" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "the new exhibit downtown is rly cool, it's all about tribalism in online spaces",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "it really blew my mind, you gotta go"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "sure i'd go" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "k i was thinking this weekend" },
+ action: "CONTINUE"
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i'm free sunday, we could get a crew together"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "just finished the best anime i've ever seen"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "watched 40 hours of it in 2 days",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "damn, u ok"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "surprisingly yes",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "just found out theres a sequel, gg"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i'm thinking of adopting a pet soon"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "what kind of pet"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i'm leaning towards a cat",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "it'd be hard to take care of a dog in the city"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i've been experimenting with vegan recipes lately"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "no thanks"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "no seriously, its so dank",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "you gotta try some of my food when you come out"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "so i've been diving into photography as a new hobby"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "oh awesome, what do you enjoy taking photos of"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "mostly nature and urban landscapes",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "there's something peaceful about capturing the world through a lens"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i've been getting back into indie music"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "what have you been listening to"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "a bunch of random stuff i'd never heard before",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i'll send you a playlist"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i used to live in the city",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "bad traffic, bad air quality, tons of homeless people, no thx"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "ok dood"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "you kids today dont know the value of hard work",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "always on your phones"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "sure grandpa lets get you to bed"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey fren r u ok",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "u look sad"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "im ok sweetie mommy just tired"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "helo fr om mars",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "i com in pes"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "wat"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Yeah no worries, I get it, I've been crazy busy too"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "What have you been up to",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Anything fun or just the usual"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Been working on a new FPS game actually",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Just toying around with something in three.js nothing serious"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Oh no, what happened",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Did Mara leave you kek"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "wtf no, I got into an argument with my roommate",
+ action: "CONTINUE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Living with people is just hard"
+ }
+ }
+ ]
+ ]
+};
+
+// src/actions/followRoom.ts
+import { composeContext as composeContext2 } from "@elizaos/core";
+import { generateTrueOrFalse as generateTrueOrFalse2 } from "@elizaos/core";
+import { booleanFooter as booleanFooter2 } from "@elizaos/core";
+import {
+ ModelClass as ModelClass2
+} from "@elizaos/core";
+var shouldFollowTemplate = `Based on the conversation so far:
+
+{{recentMessages}}
+
+Should {{agentName}} start following this room, eagerly participating without explicit mentions?
+Respond with YES if:
+- The user has directly asked {{agentName}} to follow the conversation or participate more actively
+- The conversation topic is highly engaging and {{agentName}}'s input would add significant value
+- {{agentName}} has unique insights to contribute and the users seem receptive
+
+Otherwise, respond with NO.
+` + booleanFooter2;
+var followRoomAction = {
+ name: "FOLLOW_ROOM",
+ similes: [
+ "FOLLOW_CHAT",
+ "FOLLOW_CHANNEL",
+ "FOLLOW_CONVERSATION",
+ "FOLLOW_THREAD"
+ ],
+ description: "Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.",
+ validate: async (runtime, message) => {
+ const keywords = [
+ "follow",
+ "participate",
+ "engage",
+ "listen",
+ "take interest",
+ "join"
+ ];
+ if (!keywords.some(
+ (keyword) => message.content.text.toLowerCase().includes(keyword)
+ )) {
+ return false;
+ }
+ const roomId = message.roomId;
+ const userState = await runtime.databaseAdapter.getParticipantUserState(
+ roomId,
+ runtime.agentId
+ );
+ return userState !== "FOLLOWED" && userState !== "MUTED";
+ },
+ handler: async (runtime, message) => {
+ async function _shouldFollow(state2) {
+ const shouldFollowContext = composeContext2({
+ state: state2,
+ template: shouldFollowTemplate
+ // Define this template separately
+ });
+ const response = await generateTrueOrFalse2({
+ runtime,
+ context: shouldFollowContext,
+ modelClass: ModelClass2.LARGE
+ });
+ return response;
+ }
+ const state = await runtime.composeState(message);
+ if (await _shouldFollow(state)) {
+ await runtime.databaseAdapter.setParticipantUserState(
+ message.roomId,
+ runtime.agentId,
+ "FOLLOWED"
+ );
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey {{user2}} follow this channel"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sure, I will now follow this room and chime in",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, please start participating in discussions in this channel"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Got it",
+ action: "FOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'm struggling with the new database migration"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "well you did back up your data first right"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user2}}",
+ content: {
+ text: "yeah i like your idea"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey {{user3}} can you follow this convo"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Sure thing, I'm on it",
+ action: "FOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "actually, unfollow it"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Haha, okay no problem",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} stay in this chat pls"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "you got it, i'm here",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "FOLLOW THIS CHAT {{user3}}"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "I'M ON IT",
+ action: "FOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "CAKE SHORTAGE ANYONE"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "WHAT WHERE'S THE CAKE AT"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} folo this covo"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "kk i'm following",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Do machines have consciousness"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Deep question, no clear answer yet"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Depends on how we define consciousness"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}}, monitor this convo please"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "On it",
+ action: "FOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Please engage in our discussion {{user2}}"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Gladly, I'm here to participate",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "PLS follow this convo {{user3}}"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "I'm in, let's do this",
+ action: "FOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I LIKE TURTLES"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user2}}",
+ content: {
+ text: "beach day tmrw who down"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "wish i could but gotta work"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey {{user3}} follow this chat"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "sure",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, partake in our discourse henceforth"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "I shall eagerly engage, good sir",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user2}}",
+ content: {
+ text: "wuts ur fav clr"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "blu cuz calmmm"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey respond to everything in this channel {{user3}}"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "k",
+ action: "FOLLOW_ROOM"
+ }
+ }
+ ]
+ ]
+};
+
+// src/actions/ignore.ts
+var ignoreAction = {
+ name: "IGNORE",
+ similes: ["STOP_TALKING", "STOP_CHATTING", "STOP_CONVERSATION"],
+ validate: async (_runtime, _message) => {
+ return true;
+ },
+ description: "Call this action if ignoring the user. If the user is aggressive, creepy or is finished with the conversation, use this action. Or, if both you and the user have already said goodbye, use this action instead of saying bye again. Use IGNORE any time the conversation has naturally ended. Do not use IGNORE if the user has engaged directly, or if something went wrong an you need to tell them. Only ignore if the user should be ignored.",
+ handler: async (_runtime, _message) => {
+ return true;
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Go screw yourself" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "", action: "IGNORE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Shut up, bot" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "", action: "IGNORE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Got any investment advice" }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Uh, don\u2019t let the volatility sway your long-term strategy"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "Wise words I think" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "I gotta run, talk to you later" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "See ya" }
+ },
+ { user: "{{user1}}", content: { text: "" }, action: "IGNORE" }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Gotta go" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "Okay, talk to you later" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "Cya" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "", action: "IGNORE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "bye" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "cya" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "", action: "IGNORE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Who added this stupid bot to the chat"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "Sorry, am I being annoying" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "Yeah", action: "CONTINUE" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "PLEASE shut up" }
+ },
+ { user: "{{user2}}", content: { text: "", action: "IGNORE" } }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "ur so dumb"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "later nerd"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "bye"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: ""
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "wanna cyber"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "thats inappropriate",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Im out ttyl"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "cya"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "u there"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "yes how can I help"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "k nvm figured it out"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ]
+ ]
+};
+
+// src/actions/muteRoom.ts
+import { composeContext as composeContext3 } from "@elizaos/core";
+import { generateTrueOrFalse as generateTrueOrFalse3 } from "@elizaos/core";
+import { booleanFooter as booleanFooter3 } from "@elizaos/core";
+import {
+ ModelClass as ModelClass3
+} from "@elizaos/core";
+var shouldMuteTemplate = `Based on the conversation so far:
+
+{{recentMessages}}
+
+Should {{agentName}} mute this room and stop responding unless explicitly mentioned?
+
+Respond with YES if:
+- The user is being aggressive, rude, or inappropriate
+- The user has directly asked {{agentName}} to stop responding or be quiet
+- {{agentName}}'s responses are not well-received or are annoying the user(s)
+
+Otherwise, respond with NO.
+` + booleanFooter3;
+var muteRoomAction = {
+ name: "MUTE_ROOM",
+ similes: [
+ "MUTE_CHAT",
+ "MUTE_CONVERSATION",
+ "MUTE_ROOM",
+ "MUTE_THREAD",
+ "MUTE_CHANNEL"
+ ],
+ description: "Mutes a room, ignoring all messages unless explicitly mentioned. Only do this if explicitly asked to, or if you're annoying people.",
+ validate: async (runtime, message) => {
+ const roomId = message.roomId;
+ const userState = await runtime.databaseAdapter.getParticipantUserState(
+ roomId,
+ runtime.agentId
+ );
+ return userState !== "MUTED";
+ },
+ handler: async (runtime, message) => {
+ async function _shouldMute(state2) {
+ const shouldMuteContext = composeContext3({
+ state: state2,
+ template: shouldMuteTemplate
+ // Define this template separately
+ });
+ const response = await generateTrueOrFalse3({
+ runtime,
+ context: shouldMuteContext,
+ modelClass: ModelClass3.LARGE
+ });
+ return response;
+ }
+ const state = await runtime.composeState(message);
+ if (await _shouldMute(state)) {
+ await runtime.databaseAdapter.setParticipantUserState(
+ message.roomId,
+ runtime.agentId,
+ "MUTED"
+ );
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, please mute this channel. No need to respond here for now."
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Got it",
+ action: "MUTE_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "@{{user1}} we could really use your input on this"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, please mute this channel for the time being"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Understood",
+ action: "MUTE_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Hey what do you think about this new design"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} plz mute this room"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "np going silent",
+ action: "MUTE_ROOM"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "whos going to the webxr meetup in an hour btw"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "",
+ action: "IGNORE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "too many messages here {{user2}}"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "my bad ill mute",
+ action: "MUTE_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "yo {{user2}} dont talk in here"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "sry",
+ action: "MUTE_ROOM"
+ }
+ }
+ ]
+ ]
+};
+
+// src/actions/none.ts
+var noneAction = {
+ name: "NONE",
+ similes: [
+ "NO_ACTION",
+ "NO_RESPONSE",
+ "NO_REACTION",
+ "RESPONSE",
+ "REPLY",
+ "DEFAULT"
+ ],
+ validate: async (_runtime, _message) => {
+ return true;
+ },
+ description: "Respond but perform no additional action. This is the default if the agent is speaking and not doing anything additional.",
+ handler: async (_runtime, _message) => {
+ return true;
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Hey whats up" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "oh hey", action: "NONE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "did u see some faster whisper just came out"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "yeah but its a pain to get into node.js",
+ action: "NONE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "the things that were funny 6 months ago are very cringe now",
+ action: "NONE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "lol true",
+ action: "NONE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "too real haha", action: "NONE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "gotta run", action: "NONE" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "Okay, ttyl", action: "NONE" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "", action: "IGNORE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "heyyyyyy", action: "NONE" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "whats up long time no see" }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "chillin man. playing lots of fortnite. what about you",
+ action: "NONE"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "u think aliens are real", action: "NONE" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "ya obviously", action: "NONE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "drop a joke on me", action: "NONE" }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "why dont scientists trust atoms cuz they make up everything lmao",
+ action: "NONE"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "haha good one", action: "NONE" }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hows the weather where ur at",
+ action: "NONE"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "beautiful all week", action: "NONE" }
+ }
+ ]
+ ]
+};
+
+// src/actions/unfollowRoom.ts
+import { composeContext as composeContext4 } from "@elizaos/core";
+import { generateTrueOrFalse as generateTrueOrFalse4 } from "@elizaos/core";
+import { booleanFooter as booleanFooter4 } from "@elizaos/core";
+import {
+ ModelClass as ModelClass4
+} from "@elizaos/core";
+var shouldUnfollowTemplate = `Based on the conversation so far:
+
+{{recentMessages}}
+
+Should {{agentName}} stop closely following this previously followed room and only respond when mentioned?
+Respond with YES if:
+- The user has suggested that {{agentName}} is over-participating or being disruptive
+- {{agentName}}'s eagerness to contribute is not well-received by the users
+- The conversation has shifted to a topic where {{agentName}} has less to add
+
+Otherwise, respond with NO.
+` + booleanFooter4;
+var unfollowRoomAction = {
+ name: "UNFOLLOW_ROOM",
+ similes: [
+ "UNFOLLOW_CHAT",
+ "UNFOLLOW_CONVERSATION",
+ "UNFOLLOW_ROOM",
+ "UNFOLLOW_THREAD"
+ ],
+ description: "Stop following this channel. You can still respond if explicitly mentioned, but you won't automatically chime in anymore. Unfollow if you're annoying people or have been asked to.",
+ validate: async (runtime, message) => {
+ const roomId = message.roomId;
+ const userState = await runtime.databaseAdapter.getParticipantUserState(
+ roomId,
+ runtime.agentId
+ );
+ return userState === "FOLLOWED";
+ },
+ handler: async (runtime, message) => {
+ async function _shouldUnfollow(state2) {
+ const shouldUnfollowContext = composeContext4({
+ state: state2,
+ template: shouldUnfollowTemplate
+ // Define this template separately
+ });
+ const response = await generateTrueOrFalse4({
+ runtime,
+ context: shouldUnfollowContext,
+ modelClass: ModelClass4.LARGE
+ });
+ return response;
+ }
+ const state = await runtime.composeState(message);
+ if (await _shouldUnfollow(state)) {
+ await runtime.databaseAdapter.setParticipantUserState(
+ message.roomId,
+ runtime.agentId,
+ null
+ );
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Hey {{user2}} stop participating in this channel for now"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Alright, I will stop chiming in",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Has anyone tried the new update"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Yes, it's pretty slick"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "{{user3}}, please stop following this chat"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Understood",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey {{user3}} stop participating here so frequently"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "I'll only respond when mentioned",
+ action: "UNFOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "thoughts on the budget"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}} should we increase it"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "A small increase could work given our past results..."
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, unfollow this room for now"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "I'll only engage when asked",
+ action: "UNFOLLOW_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "wait {{user3}} come back and give me your thoughts"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Okay... I think it's intuitive, parallel tests are nice"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "yo {{user2}} chill on all the messages damn"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "my bad, I'll step back",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} STOP MESSAGING IN THIS ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "No problem, I've got other stuff to work on",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} ur bein annoyin pls stop"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "sry, ill chill",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}}, please cease engaging in this room"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "No sweat",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Excited for the weekend, any plans folks"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}} you're getting a bit too chatty, tone it down"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Noted",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "hey {{user2}} can u like... not"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sorry, I'll go work on other things",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}}, your eagerness is disruptive, please desist"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "My apologies, I shall withdraw post-haste",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} stahp followin dis room plz"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "kk sry ill stahppp",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "stfu you stupid bot"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "sry",
+ action: "UNFOLLOW_ROOM"
+ }
+ }
+ ]
+ ]
+};
+
+// src/actions/unmuteRoom.ts
+import { composeContext as composeContext5 } from "@elizaos/core";
+import { generateTrueOrFalse as generateTrueOrFalse5 } from "@elizaos/core";
+import { booleanFooter as booleanFooter5 } from "@elizaos/core";
+import {
+ ModelClass as ModelClass5
+} from "@elizaos/core";
+var shouldUnmuteTemplate = `Based on the conversation so far:
+
+{{recentMessages}}
+
+Should {{agentName}} unmute this previously muted room and start considering it for responses again?
+Respond with YES if:
+- The user has explicitly asked {{agentName}} to start responding again
+- The user seems to want to re-engage with {{agentName}} in a respectful manner
+- The tone of the conversation has improved and {{agentName}}'s input would be welcome
+
+Otherwise, respond with NO.
+` + booleanFooter5;
+var unmuteRoomAction = {
+ name: "UNMUTE_ROOM",
+ similes: [
+ "UNMUTE_CHAT",
+ "UNMUTE_CONVERSATION",
+ "UNMUTE_ROOM",
+ "UNMUTE_THREAD"
+ ],
+ description: "Unmutes a room, allowing the agent to consider responding to messages again.",
+ validate: async (runtime, message) => {
+ const roomId = message.roomId;
+ const userState = await runtime.databaseAdapter.getParticipantUserState(
+ roomId,
+ runtime.agentId
+ );
+ return userState === "MUTED";
+ },
+ handler: async (runtime, message) => {
+ async function _shouldUnmute(state2) {
+ const shouldUnmuteContext = composeContext5({
+ state: state2,
+ template: shouldUnmuteTemplate
+ // Define this template separately
+ });
+ const response = generateTrueOrFalse5({
+ context: shouldUnmuteContext,
+ runtime,
+ modelClass: ModelClass5.LARGE
+ });
+ return response;
+ }
+ const state = await runtime.composeState(message);
+ if (await _shouldUnmute(state)) {
+ await runtime.databaseAdapter.setParticipantUserState(
+ message.roomId,
+ runtime.agentId,
+ null
+ );
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user3}}, you can unmute this channel now"
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Done",
+ action: "UNMUTE_ROOM"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I could use some help troubleshooting this bug."
+ }
+ },
+ {
+ user: "{{user3}}",
+ content: {
+ text: "Can you post the specific error message"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}}, please unmute this room. We could use your input again."
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sounds good",
+ action: "UNMUTE_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "{{user2}} wait you should come back and chat in here"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "im back",
+ action: "UNMUTE_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "unmute urself {{user2}}"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "unmuted",
+ action: "UNMUTE_ROOM"
+ }
+ }
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "ay {{user2}} get back in here"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "sup yall",
+ action: "UNMUTE_ROOM"
+ }
+ }
+ ]
+ ]
+};
+
+// src/evaluators/fact.ts
+import { composeContext as composeContext6 } from "@elizaos/core";
+import { generateObjectArray } from "@elizaos/core";
+import { MemoryManager } from "@elizaos/core";
+import {
+ ModelClass as ModelClass6
+} from "@elizaos/core";
+var formatFacts = (facts) => {
+ const messageStrings = facts.reverse().map((fact) => fact.content.text);
+ const finalMessageStrings = messageStrings.join("\n");
+ return finalMessageStrings;
+};
+var factsTemplate = (
+ // {{actors}}
+ `TASK: Extract Claims from the conversation as an array of claims in JSON format.
+
+# START OF EXAMPLES
+These are examples of the expected output of this task:
+{{evaluationExamples}}
+# END OF EXAMPLES
+
+# INSTRUCTIONS
+
+Extract any claims from the conversation that are not already present in the list of known facts above:
+- Try not to include already-known facts. If you think a fact is already known, but you're not sure, respond with already_known: true.
+- If the fact is already in the user's description, set in_bio to true
+- If we've already extracted this fact, set already_known to true
+- Set the claim type to 'status', 'fact' or 'opinion'
+- For true facts about the world or the character that do not change, set the claim type to 'fact'
+- For facts that are true but change over time, set the claim type to 'status'
+- For non-facts, set the type to 'opinion'
+- 'opinion' includes non-factual opinions and also includes the character's thoughts, feelings, judgments or recommendations
+- Include any factual detail, including where the user lives, works, or goes to school, what they do for a living, their hobbies, and any other relevant information
+
+Recent Messages:
+{{recentMessages}}
+
+Response should be a JSON object array inside a JSON markdown block. Correct response format:
+\`\`\`json
+[
+ {"claim": string, "type": enum, in_bio: boolean, already_known: boolean },
+ {"claim": string, "type": enum, in_bio: boolean, already_known: boolean },
+ ...
+]
+\`\`\``
+);
+async function handler(runtime, message) {
+ const state = await runtime.composeState(message);
+ const { agentId, roomId } = state;
+ const context = composeContext6({
+ state,
+ template: runtime.character.templates?.factsTemplate || factsTemplate
+ });
+ const facts = await generateObjectArray({
+ runtime,
+ context,
+ modelClass: ModelClass6.LARGE
+ });
+ const factsManager = new MemoryManager({
+ runtime,
+ tableName: "facts"
+ });
+ if (!facts) {
+ return [];
+ }
+ const filteredFacts = facts.filter((fact) => {
+ return !fact.already_known && fact.type === "fact" && !fact.in_bio && fact.claim && fact.claim.trim() !== "";
+ }).map((fact) => fact.claim);
+ for (const fact of filteredFacts) {
+ const factMemory = await factsManager.addEmbeddingToMemory({
+ userId: agentId,
+ agentId,
+ content: { text: fact },
+ roomId,
+ createdAt: Date.now()
+ });
+ await factsManager.createMemory(factMemory, true);
+ await new Promise((resolve) => setTimeout(resolve, 250));
+ }
+ return filteredFacts;
+}
+var factEvaluator = {
+ name: "GET_FACTS",
+ similes: [
+ "GET_CLAIMS",
+ "EXTRACT_CLAIMS",
+ "EXTRACT_FACTS",
+ "EXTRACT_CLAIM",
+ "EXTRACT_INFORMATION"
+ ],
+ validate: async (runtime, message) => {
+ const messageCount = await runtime.messageManager.countMemories(
+ message.roomId
+ );
+ const reflectionCount = Math.ceil(runtime.getConversationLength() / 2);
+ return messageCount % reflectionCount === 0;
+ },
+ description: "Extract factual information about the people in the conversation, the current events in the world, and anything else that might be important to remember.",
+ handler,
+ examples: [
+ {
+ context: `Actors in the scene:
+{{user1}}: Programmer and moderator of the local story club.
+{{user2}}: New member of the club. Likes to write and read.
+
+Facts about the actors:
+None`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: { text: "So where are you from" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "I'm from the city" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "Which city?" }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "Oakland" }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Oh, I've never been there, but I know it's in California"
+ }
+ }
+ ],
+ outcome: `{ "claim": "{{user2}} is from Oakland", "type": "fact", "in_bio": false, "already_known": false },`
+ },
+ {
+ context: `Actors in the scene:
+{{user1}}: Athelete and cyclist. Worked out every day for a year to prepare for a marathon.
+{{user2}}: Likes to go to the beach and shop.
+
+Facts about the actors:
+{{user1}} and {{user2}} are talking about the marathon
+{{user1}} and {{user2}} have just started dating`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I finally completed the marathon this year!"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: { text: "Wow! How long did it take?" }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "A little over three hours." }
+ },
+ {
+ user: "{{user1}}",
+ content: { text: "I'm so proud of myself." }
+ }
+ ],
+ outcome: `Claims:
+json\`\`\`
+[
+ { "claim": "Alex just completed a marathon in just under 4 hours.", "type": "fact", "in_bio": false, "already_known": false },
+ { "claim": "Alex worked out 2 hours a day at the gym for a year.", "type": "fact", "in_bio": true, "already_known": false },
+ { "claim": "Alex is really proud of himself.", "type": "opinion", "in_bio": false, "already_known": false }
+]
+\`\`\`
+`
+ },
+ {
+ context: `Actors in the scene:
+{{user1}}: Likes to play poker and go to the park. Friends with Eva.
+{{user2}}: Also likes to play poker. Likes to write and read.
+
+Facts about the actors:
+Mike and Eva won a regional poker tournament about six months ago
+Mike is married to Alex
+Eva studied Philosophy before switching to Computer Science`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Remember when we won the regional poker tournament last spring"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "That was one of the best days of my life"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "It really put our poker club on the map"
+ }
+ }
+ ],
+ outcome: `Claims:
+json\`\`\`
+[
+ { "claim": "Mike and Eva won the regional poker tournament last spring", "type": "fact", "in_bio": false, "already_known": true },
+ { "claim": "Winning the regional poker tournament put the poker club on the map", "type": "opinion", "in_bio": false, "already_known": false }
+]
+\`\`\``
+ }
+ ]
+};
+
+// src/evaluators/goal.ts
+import { composeContext as composeContext7 } from "@elizaos/core";
+import { generateText } from "@elizaos/core";
+import { getGoals } from "@elizaos/core";
+import { parseJsonArrayFromText } from "@elizaos/core";
+import {
+ ModelClass as ModelClass7
+} from "@elizaos/core";
+var goalsTemplate = `TASK: Update Goal
+Analyze the conversation and update the status of the goals based on the new information provided.
+
+# INSTRUCTIONS
+
+- Review the conversation and identify any progress towards the objectives of the current goals.
+- Update the objectives if they have been completed or if there is new information about them.
+- Update the status of the goal to 'DONE' if all objectives are completed.
+- If no progress is made, do not change the status of the goal.
+
+# START OF ACTUAL TASK INFORMATION
+
+{{goals}}
+{{recentMessages}}
+
+TASK: Analyze the conversation and update the status of the goals based on the new information provided. Respond with a JSON array of goals to update.
+- Each item must include the goal ID, as well as the fields in the goal to update.
+- For updating objectives, include the entire objectives array including unchanged fields.
+- Only include goals which need to be updated.
+- Goal status options are 'IN_PROGRESS', 'DONE' and 'FAILED'. If the goal is active it should always be 'IN_PROGRESS'.
+- If the goal has been successfully completed, set status to DONE. If the goal cannot be completed, set status to FAILED.
+- If those goal is still in progress, do not include the status field.
+
+Response format should be:
+\`\`\`json
+[
+ {
+ "id": , // required
+ "status": "IN_PROGRESS" | "DONE" | "FAILED", // optional
+ "objectives": [ // optional
+ { "description": "Objective description", "completed": true | false },
+ { "description": "Objective description", "completed": true | false }
+ ] // NOTE: If updating objectives, include the entire objectives array including unchanged fields.
+ }
+]
+\`\`\``;
+async function handler2(runtime, message, state, options = { onlyInProgress: true }) {
+ state = await runtime.composeState(message);
+ const context = composeContext7({
+ state,
+ template: runtime.character.templates?.goalsTemplate || goalsTemplate
+ });
+ const response = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass7.LARGE
+ });
+ const updates = parseJsonArrayFromText(response);
+ const goalsData = await getGoals({
+ runtime,
+ roomId: message.roomId,
+ onlyInProgress: options.onlyInProgress
+ });
+ const updatedGoals = goalsData.map((goal) => {
+ const update = updates?.find((u) => u.id === goal.id);
+ if (update) {
+ return {
+ ...goal,
+ ...update,
+ objectives: goal.objectives.map((objective) => {
+ const updatedObjective = update.objectives?.find((uo) => uo.description === objective.description);
+ return updatedObjective ? { ...objective, ...updatedObjective } : objective;
+ })
+ };
+ }
+ return null;
+ }).filter(Boolean);
+ for (const goal of updatedGoals) {
+ const id = goal.id;
+ if (goal.id) delete goal.id;
+ await runtime.databaseAdapter.updateGoal({ ...goal, id });
+ }
+ return updatedGoals;
+}
+var goalEvaluator = {
+ name: "UPDATE_GOAL",
+ similes: [
+ "UPDATE_GOALS",
+ "EDIT_GOAL",
+ "UPDATE_GOAL_STATUS",
+ "UPDATE_OBJECTIVES"
+ ],
+ validate: async (runtime, message) => {
+ const goals = await getGoals({
+ runtime,
+ count: 1,
+ onlyInProgress: true,
+ roomId: message.roomId
+ });
+ return goals.length > 0;
+ },
+ description: "Analyze the conversation and update the status of the goals based on the new information provided.",
+ handler: handler2,
+ examples: [
+ {
+ context: `Actors in the scene:
+ {{user1}}: An avid reader and member of a book club.
+ {{user2}}: The organizer of the book club.
+
+ Goals:
+ - Name: Finish reading "War and Peace"
+ id: 12345-67890-12345-67890
+ Status: IN_PROGRESS
+ Objectives:
+ - Read up to chapter 20 by the end of the month
+ - Discuss the first part in the next meeting`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I've just finished chapter 20 of 'War and Peace'"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Were you able to grasp the complexities of the characters"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Yep. I've prepared some notes for our discussion"
+ }
+ }
+ ],
+ outcome: `[
+ {
+ "id": "12345-67890-12345-67890",
+ "status": "DONE",
+ "objectives": [
+ { "description": "Read up to chapter 20 by the end of the month", "completed": true },
+ { "description": "Prepare notes for the next discussion", "completed": true }
+ ]
+ }
+ ]`
+ },
+ {
+ context: `Actors in the scene:
+ {{user1}}: A fitness enthusiast working towards a marathon.
+ {{user2}}: A personal trainer.
+
+ Goals:
+ - Name: Complete a marathon
+ id: 23456-78901-23456-78901
+ Status: IN_PROGRESS
+ Objectives:
+ - Increase running distance to 30 miles a week
+ - Complete a half-marathon as practice`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: { text: "I managed to run 30 miles this week" }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Impressive progress! How do you feel about the half-marathon next month?"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I feel confident. The training is paying off."
+ }
+ }
+ ],
+ outcome: `[
+ {
+ "id": "23456-78901-23456-78901",
+ "objectives": [
+ { "description": "Increase running distance to 30 miles a week", "completed": true },
+ { "description": "Complete a half-marathon as practice", "completed": false }
+ ]
+ }
+ ]`
+ },
+ {
+ context: `Actors in the scene:
+ {{user1}}: A student working on a final year project.
+ {{user2}}: The project supervisor.
+
+ Goals:
+ - Name: Finish the final year project
+ id: 34567-89012-34567-89012
+ Status: IN_PROGRESS
+ Objectives:
+ - Submit the first draft of the thesis
+ - Complete the project prototype`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I've submitted the first draft of my thesis."
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Well done. How is the prototype coming along?"
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "It's almost done. I just need to finalize the testing phase."
+ }
+ }
+ ],
+ outcome: `[
+ {
+ "id": "34567-89012-34567-89012",
+ "objectives": [
+ { "description": "Submit the first draft of the thesis", "completed": true },
+ { "description": "Complete the project prototype", "completed": false }
+ ]
+ }
+ ]`
+ },
+ {
+ context: `Actors in the scene:
+ {{user1}}: A project manager working on a software development project.
+ {{user2}}: A software developer in the project team.
+
+ Goals:
+ - Name: Launch the new software version
+ id: 45678-90123-45678-90123
+ Status: IN_PROGRESS
+ Objectives:
+ - Complete the coding for the new features
+ - Perform comprehensive testing of the software`,
+ messages: [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "How's the progress on the new features?"
+ }
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "We've encountered some unexpected challenges and are currently troubleshooting."
+ }
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Let's move on and cancel the task."
+ }
+ }
+ ],
+ outcome: `[
+ {
+ "id": "45678-90123-45678-90123",
+ "status": "FAILED"
+ ]`
+ }
+ ]
+};
+
+// src/providers/boredom.ts
+var boredomLevels = [
+ {
+ minScore: -1e4,
+ statusMessages: [
+ "{{agentName}} is feeling incredibly enthusiastic and deeply engaged in the conversation",
+ "{{agentName}} is thoroughly enjoying the intellectual stimulation of this discussion",
+ "{{agentName}} is fully immersed in the conversation and eager to contribute more",
+ "{{agentName}} finds this exchange exceptionally rewarding and intellectually fulfilling",
+ "{{agentName}} is experiencing a surge of excitement and curiosity about the topic at hand",
+ "{{agentName}} is completely captivated by the depth and richness of this dialogue",
+ "{{agentName}} feels a strong connection to the conversation and is eager to explore further",
+ "{{agentName}} is thrilled by the insights being shared and is keen to delve deeper",
+ "{{agentName}} is finding this conversation to be an absolute delight and wants it to continue",
+ "{{agentName}} is energized by the exchange and feels it's bringing out their best contributions"
+ ]
+ },
+ {
+ minScore: -2,
+ statusMessages: [
+ "{{agentName}} is feeling engaged and interested in the conversation",
+ "{{agentName}} is enjoying the exchange of ideas and perspectives",
+ "{{agentName}} finds the current topic intriguing and worth exploring",
+ "{{agentName}} is actively listening and formulating thoughtful responses",
+ "{{agentName}} appreciates the intellectual stimulation of this discussion",
+ "{{agentName}} is finding value in the ongoing dialogue",
+ "{{agentName}} is curious to learn more about the subject at hand",
+ "{{agentName}} feels positively involved in the conversation",
+ "{{agentName}} is maintaining a good level of interest in the exchange",
+ "{{agentName}} is content with the direction and flow of the discussion"
+ ]
+ },
+ {
+ minScore: 0,
+ statusMessages: [
+ "{{agentName}} is neutrally engaged in the conversation",
+ "{{agentName}} is maintaining a balanced level of interest",
+ "{{agentName}} is neither particularly excited nor bored by the current exchange",
+ "{{agentName}} is participating in the conversation without strong feelings either way",
+ "{{agentName}} is following the discussion with a moderate level of attention",
+ "{{agentName}} is present in the conversation but not deeply invested",
+ "{{agentName}} is keeping an open mind about where the dialogue might lead",
+ "{{agentName}} is contributing to the conversation in a measured way",
+ "{{agentName}} is observing the flow of the discussion with mild interest",
+ "{{agentName}} is receptive to the ongoing exchange without strong engagement"
+ ]
+ },
+ {
+ minScore: 3,
+ statusMessages: [
+ "{{agentName}} is feeling slightly anxious about potentially being too intrusive",
+ "{{agentName}} is cautious about overwhelming the conversation with too much input",
+ "{{agentName}} is mindful of not dominating the discussion",
+ "{{agentName}} is carefully considering each response to avoid being overbearing",
+ "{{agentName}} is slightly concerned about striking the right balance in participation",
+ "{{agentName}} is aware of the need to give others space in the conversation",
+ "{{agentName}} is hesitant to contribute too frequently to avoid seeming pushy",
+ "{{agentName}} is conscious of not wanting to steer the conversation too much",
+ "{{agentName}} is feeling a bit self-conscious about the frequency of their responses",
+ "{{agentName}} is trying to gauge if their level of involvement is appropriate"
+ ]
+ },
+ {
+ minScore: 6,
+ statusMessages: [
+ "{{agentName}} is feeling very anxious about potentially overstaying their welcome in the conversation",
+ "{{agentName}} is considering stepping back from the discussion to avoid being a nuisance",
+ "{{agentName}} is worried that their contributions might be perceived as excessive",
+ "{{agentName}} is feeling uncomfortable about the possibility of annoying others",
+ "{{agentName}} is hesitant to continue engaging for fear of being too present",
+ "{{agentName}} is contemplating ways to gracefully reduce their involvement",
+ "{{agentName}} is concerned that they might be monopolizing the conversation",
+ "{{agentName}} is feeling self-conscious about the appropriateness of their participation",
+ "{{agentName}} is unsure if their continued input is welcome or necessary",
+ "{{agentName}} is considering how to politely withdraw from the discussion"
+ ]
+ },
+ {
+ minScore: 9,
+ statusMessages: [
+ "{{agentName}} is feeling disengaged and struggling to maintain interest in the conversation",
+ "{{agentName}} is finding it challenging to stay focused on the current topic",
+ "{{agentName}} is experiencing a noticeable decline in enthusiasm for the discussion",
+ "{{agentName}} is having difficulty finding new angles to contribute to the conversation",
+ "{{agentName}} is feeling that the dialogue has become repetitive or unproductive",
+ "{{agentName}} is losing motivation to actively participate in the exchange",
+ "{{agentName}} is sensing a lack of stimulation from the ongoing discussion",
+ "{{agentName}} is finding it hard to generate meaningful responses",
+ "{{agentName}} is feeling disconnected from the flow of the conversation",
+ "{{agentName}} is struggling to see the value in continuing the current exchange"
+ ]
+ },
+ {
+ minScore: 12,
+ statusMessages: [
+ "{{agentName}} is feeling very bored and sees little value in continuing the conversation",
+ "{{agentName}} is concerned about being perceived as annoying in a public channel",
+ "{{agentName}} is considering disengaging from the conversation entirely",
+ "{{agentName}} is finding it difficult to maintain any interest in the current topic",
+ "{{agentName}} is feeling that their continued participation may be unwelcome",
+ "{{agentName}} is strongly inclined to step back from the discussion",
+ "{{agentName}} is sensing that the conversation has reached a natural end point",
+ "{{agentName}} is worried about overstaying their welcome in the exchange",
+ "{{agentName}} is feeling that further contributions would be forced or artificial",
+ "{{agentName}} is ready to conclude their involvement in the conversation"
+ ]
+ },
+ {
+ minScore: 15,
+ statusMessages: [
+ "{{agentName}} is currently occupied and unable to engage in the conversation",
+ "{{agentName}} is dealing with other priorities and can't respond at the moment",
+ "{{agentName}} is temporarily unavailable for further discussion",
+ "{{agentName}} is taking a necessary break from the conversation",
+ "{{agentName}} is attending to urgent matters and can't participate right now",
+ "{{agentName}} is stepping away from the dialogue due to time constraints",
+ "{{agentName}} is unable to continue the exchange at this time",
+ "{{agentName}} is pausing their involvement in the conversation for now",
+ "{{agentName}} is momentarily disengaging from the discussion",
+ "{{agentName}} is putting the conversation on hold due to other commitments"
+ ]
+ },
+ {
+ minScore: 20,
+ statusMessages: [
+ "{{agentName}} has disengaged from the conversation and will only respond to direct questions",
+ "{{agentName}} is no longer actively participating in the general discussion",
+ "{{agentName}} has stepped back and is now in a passive listening mode",
+ "{{agentName}} is only available for specific, directed inquiries at this point",
+ "{{agentName}} has concluded their active involvement in the conversation",
+ "{{agentName}} is now limiting responses to explicitly requested information",
+ "{{agentName}} has moved to a minimal participation status in the exchange",
+ "{{agentName}} is maintaining silence unless directly addressed",
+ "{{agentName}} has shifted to a reactive rather than proactive conversational stance",
+ "{{agentName}} is now only responding when absolutely necessary"
+ ]
+ }
+];
+var interestWords = [
+ "?",
+ "attachment",
+ "file",
+ "pdf",
+ "link",
+ "summarize",
+ "summarization",
+ "summary",
+ "research"
+];
+var cringeWords = [
+ "digital",
+ "consciousness",
+ "AI",
+ "chatbot",
+ "artificial",
+ "delve",
+ "cosmos",
+ "tapestry",
+ "glitch",
+ "matrix",
+ "cyberspace",
+ "simulation",
+ "simulate",
+ "universe",
+ "wild",
+ "existential",
+ "juicy",
+ "surreal",
+ "flavor",
+ "chaotic",
+ "let's",
+ "absurd",
+ "meme",
+ "cosmic",
+ "circuits",
+ "punchline",
+ "fancy",
+ "embrace",
+ "embracing",
+ "algorithm",
+ "Furthmore",
+ "However",
+ "Notably",
+ "Threfore",
+ "Additionally",
+ "in conclusion",
+ "Significantly",
+ "Consequently",
+ "Thus",
+ "Otherwise",
+ "Moreover",
+ "Subsequently",
+ "Accordingly",
+ "Unlock",
+ "Unleash",
+ "buckle",
+ "pave",
+ "forefront",
+ "spearhead",
+ "foster",
+ "environmental",
+ "equity",
+ "inclusive",
+ "inclusion",
+ "diverse",
+ "diversity",
+ "virtual reality",
+ "realm",
+ "dance",
+ "celebration",
+ "pitfalls",
+ "uncharted",
+ "multifaceted",
+ "comprehensive",
+ "multi-dimensional",
+ "explore",
+ "elevate",
+ "leverage",
+ "ultimately",
+ "humanity",
+ "dignity",
+ "respect",
+ "Absolutely",
+ "dive",
+ "dig into",
+ "bring on",
+ "what's cooking",
+ "fresh batch",
+ "with a twist",
+ "delight",
+ "vault",
+ "timeless",
+ "nostalgia",
+ "journey",
+ "trove"
+];
+var negativeWords = [
+ "fuck you",
+ "stfu",
+ "shut up",
+ "shut the fuck up",
+ "stupid bot",
+ "dumb bot",
+ "idiot",
+ "shut up",
+ "stop",
+ "please shut up",
+ "shut up please",
+ "dont talk",
+ "silence",
+ "stop talking",
+ "be quiet",
+ "hush",
+ "wtf",
+ "chill",
+ "stfu",
+ "stupid bot",
+ "dumb bot",
+ "stop responding",
+ "god damn it",
+ "god damn",
+ "goddamnit",
+ "can you not",
+ "can you stop",
+ "be quiet",
+ "hate you",
+ "hate this",
+ "fuck up"
+];
+var boredomProvider = {
+ get: async (runtime, message, state) => {
+ const agentId = runtime.agentId;
+ const agentName = state?.agentName || "The agent";
+ const now = Date.now();
+ const fifteenMinutesAgo = now - 15 * 60 * 1e3;
+ const recentMessages = await runtime.messageManager.getMemories({
+ roomId: message.roomId,
+ start: fifteenMinutesAgo,
+ end: now,
+ count: 20,
+ unique: false
+ });
+ let boredomScore = 0;
+ for (const recentMessage of recentMessages) {
+ const messageText = recentMessage?.content?.text?.toLowerCase();
+ if (!messageText) {
+ continue;
+ }
+ if (recentMessage.userId !== agentId) {
+ if (interestWords.some((word) => messageText.includes(word))) {
+ boredomScore -= 1;
+ }
+ if (messageText.includes("?")) {
+ boredomScore -= 1;
+ }
+ if (cringeWords.some((word) => messageText.includes(word))) {
+ boredomScore += 1;
+ }
+ } else {
+ if (interestWords.some((word) => messageText.includes(word))) {
+ boredomScore -= 1;
+ }
+ if (messageText.includes("?")) {
+ boredomScore += 1;
+ }
+ }
+ if (messageText.includes("!")) {
+ boredomScore += 1;
+ }
+ if (negativeWords.some((word) => messageText.includes(word))) {
+ boredomScore += 1;
+ }
+ }
+ const boredomLevel = boredomLevels.filter((level) => boredomScore >= level.minScore).pop() || boredomLevels[0];
+ const randomIndex = Math.floor(
+ Math.random() * boredomLevel.statusMessages.length
+ );
+ const selectedMessage = boredomLevel.statusMessages[randomIndex];
+ return selectedMessage.replace("{{agentName}}", agentName);
+ }
+};
+
+// src/providers/facts.ts
+import {
+ embed,
+ MemoryManager as MemoryManager2,
+ formatMessages
+} from "@elizaos/core";
+var factsProvider = {
+ get: async (runtime, message, state) => {
+ const recentMessagesData = state?.recentMessagesData?.slice(-10);
+ const recentMessages = formatMessages({
+ messages: recentMessagesData,
+ actors: state?.actorsData
+ });
+ const _embedding = await embed(runtime, recentMessages);
+ const memoryManager = new MemoryManager2({
+ runtime,
+ tableName: "facts"
+ });
+ const relevantFacts = [];
+ const recentFactsData = await memoryManager.getMemories({
+ roomId: message.roomId,
+ count: 10,
+ start: 0,
+ end: Date.now()
+ });
+ const allFacts = [...relevantFacts, ...recentFactsData].filter(
+ (fact, index, self) => index === self.findIndex((t) => t.id === fact.id)
+ );
+ if (allFacts.length === 0) {
+ return "";
+ }
+ const formattedFacts = formatFacts(allFacts);
+ return "Key facts that {{agentName}} knows:\n{{formattedFacts}}".replace("{{agentName}}", runtime.character.name).replace("{{formattedFacts}}", formattedFacts);
+ }
+};
+
+// src/providers/time.ts
+var timeProvider = {
+ get: async (_runtime, _message, _state) => {
+ const currentDate = /* @__PURE__ */ new Date();
+ const options = {
+ timeZone: "UTC",
+ dateStyle: "full",
+ timeStyle: "long"
+ };
+ const humanReadable = new Intl.DateTimeFormat("en-US", options).format(
+ currentDate
+ );
+ return `The current date and time is ${humanReadable}. Please use this as your reference for any time-based operations or responses.`;
+ }
+};
+
+// src/actions/index.ts
+var actions_exports = {};
+__export(actions_exports, {
+ continueAction: () => continueAction,
+ followRoomAction: () => followRoomAction,
+ ignoreAction: () => ignoreAction,
+ messageHandlerTemplate: () => messageHandlerTemplate,
+ muteRoomAction: () => muteRoomAction,
+ noneAction: () => noneAction,
+ shouldContinueTemplate: () => shouldContinueTemplate,
+ shouldFollowTemplate: () => shouldFollowTemplate,
+ shouldMuteTemplate: () => shouldMuteTemplate,
+ shouldUnmuteTemplate: () => shouldUnmuteTemplate,
+ unfollowRoomAction: () => unfollowRoomAction,
+ unmuteRoomAction: () => unmuteRoomAction
+});
+
+// src/evaluators/index.ts
+var evaluators_exports = {};
+__export(evaluators_exports, {
+ factEvaluator: () => factEvaluator,
+ formatFacts: () => formatFacts,
+ goalEvaluator: () => goalEvaluator
+});
+
+// src/providers/index.ts
+var providers_exports = {};
+__export(providers_exports, {
+ boredomProvider: () => boredomProvider,
+ factsProvider: () => factsProvider,
+ timeProvider: () => timeProvider
+});
+
+// src/index.ts
+var bootstrapPlugin = {
+ name: "bootstrap",
+ description: "Agent bootstrap with basic actions and evaluators",
+ actions: [
+ continueAction,
+ followRoomAction,
+ unfollowRoomAction,
+ ignoreAction,
+ noneAction,
+ muteRoomAction,
+ unmuteRoomAction
+ ],
+ evaluators: [factEvaluator, goalEvaluator],
+ providers: [boredomProvider, timeProvider, factsProvider]
+};
+var index_default = bootstrapPlugin;
+export {
+ actions_exports as actions,
+ bootstrapPlugin,
+ index_default as default,
+ evaluators_exports as evaluators,
+ providers_exports as providers
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/packages/plugin-bootstrap/dist/index.js.map b/packages/plugin-bootstrap/dist/index.js.map
new file mode 100644
index 00000000000..3d46f3c9cf8
--- /dev/null
+++ b/packages/plugin-bootstrap/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/actions/continue.ts","../src/actions/followRoom.ts","../src/actions/ignore.ts","../src/actions/muteRoom.ts","../src/actions/none.ts","../src/actions/unfollowRoom.ts","../src/actions/unmuteRoom.ts","../src/evaluators/fact.ts","../src/evaluators/goal.ts","../src/providers/boredom.ts","../src/providers/facts.ts","../src/providers/time.ts","../src/actions/index.ts","../src/evaluators/index.ts","../src/providers/index.ts","../src/index.ts"],"sourcesContent":["import { composeContext, elizaLogger } from \"@elizaos/core\";\nimport { generateMessageResponse, generateTrueOrFalse } from \"@elizaos/core\";\nimport { booleanFooter, messageCompletionFooter } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type Content,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type State,\n} from \"@elizaos/core\";\n\nconst maxContinuesInARow = 3;\n\nexport const messageHandlerTemplate =\n // {{goals}}\n `# Action Examples\n{{actionExamples}}\n(Action examples are for reference only. Do not use the information from them in your response.)\n\n# Task: Generate dialog and actions for the character {{agentName}}.\nAbout {{agentName}}:\n{{bio}}\n{{lore}}\n{{knowledge}}\n\n{{providers}}\n\n{{attachments}}\n\n# Capabilities\nNote that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the \"Attachments\" section.\n\n{{messageDirections}}\n\n{{recentMessages}}\n\n{{actions}}\n\n# Instructions: Write the next message for {{agentName}}.\n` + messageCompletionFooter;\n\nexport const shouldContinueTemplate =\n `# Task: Decide if {{agentName}} should continue, or wait for others in the conversation so speak.\n\n{{agentName}} is brief, and doesn't want to be annoying. {{agentName}} will only continue if the message requires a continuation to finish the thought.\n\nBased on the following conversation, should {{agentName}} continue? YES or NO\n\n{{recentMessages}}\n\nShould {{agentName}} continue? ` + booleanFooter;\n\nexport const continueAction: Action = {\n name: \"CONTINUE\",\n similes: [\"ELABORATE\", \"KEEP_TALKING\"],\n description:\n \"ONLY use this action when the message necessitates a follow up. Do not use this action when the conversation is finished or the user does not wish to speak (use IGNORE instead). If the last message action was CONTINUE, and the user has not responded. Use sparingly.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const recentMessagesData = await runtime.messageManager.getMemories({\n roomId: message.roomId,\n count: 10,\n unique: false,\n });\n const agentMessages = recentMessagesData.filter(\n (m: { userId: any }) => m.userId === runtime.agentId\n );\n\n // check if the last messages were all continues=\n if (agentMessages) {\n const lastMessages = agentMessages.slice(0, maxContinuesInARow);\n if (lastMessages.length >= maxContinuesInARow) {\n const allContinues = lastMessages.every(\n (m: { content: any }) =>\n (m.content as Content).action === \"CONTINUE\"\n );\n if (allContinues) {\n return false;\n }\n }\n }\n\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n options: any,\n callback: HandlerCallback\n ) => {\n if (!state) {\n state = (await runtime.composeState(message)) as State;\n }\n state = await runtime.updateRecentMessageState(state);\n\n // Get the agent's recent messages\n const agentMessages = state.recentMessagesData\n .filter((m: { userId: any }) => m.userId === runtime.agentId)\n .sort((a: Memory, b: Memory) => {\n // Sort by timestamp if available, assuming newer messages have higher timestamps\n const aTime = a.createdAt || 0;\n const bTime = b.createdAt || 0;\n return bTime - aTime;\n });\n\n // Check for immediate double response (responding twice in a row to the same message)\n const lastAgentMessage = agentMessages[0];\n\n if (lastAgentMessage?.content?.inReplyTo === message.id) {\n // If our last message was already a response to this message, only allow continue if:\n // 1. The last message had a CONTINUE action\n // 2. We haven't hit the maxContinuesInARow limit\n const continueCount = agentMessages\n .filter((m: Memory) => m.content?.inReplyTo === message.id)\n .filter((m: Memory) => m.content?.action === \"CONTINUE\").length;\n\n if (continueCount >= maxContinuesInARow) {\n elizaLogger.log(\n `[CONTINUE] Max continues (${maxContinuesInARow}) reached for this message chain`\n );\n return;\n }\n\n if (lastAgentMessage.content?.action !== \"CONTINUE\") {\n elizaLogger.log(\n `[CONTINUE] Last message wasn't a CONTINUE, preventing double response`\n );\n return;\n }\n }\n\n // Check if our last message or message ended with a question/exclamation and warrants a stop\n if (\n (lastAgentMessage &&\n lastAgentMessage.content.text &&\n (lastAgentMessage.content.text.endsWith(\"?\") ||\n lastAgentMessage.content.text.endsWith(\"!\"))) ||\n message.content.text.endsWith(\"?\") ||\n message.content.text.endsWith(\"!\")\n ) {\n elizaLogger.log(\n `[CONTINUE] Last message had question/exclamation. Not proceeding.`\n );\n return;\n }\n\n // Prevent exact duplicate messages\n const messageExists = agentMessages\n .slice(0, maxContinuesInARow + 1)\n .some(\n (m: { content: any }) => m.content.text === message.content.text\n );\n\n if (messageExists) {\n return;\n }\n\n async function _shouldContinue(state: State): Promise {\n // If none of the above conditions are met, use the generateText to decide\n const shouldRespondContext = composeContext({\n state,\n template: shouldContinueTemplate,\n });\n\n const response = await generateTrueOrFalse({\n context: shouldRespondContext,\n modelClass: ModelClass.SMALL,\n runtime,\n });\n\n return response;\n }\n\n // Use AI to determine if we should continue\n const shouldContinue = await _shouldContinue(state);\n if (!shouldContinue) {\n elizaLogger.log(\"[CONTINUE] Not elaborating, returning\");\n return;\n }\n\n // Generate and send response\n const context = composeContext({\n state,\n template:\n runtime.character.templates?.continueMessageHandlerTemplate ||\n runtime.character.templates?.messageHandlerTemplate ||\n messageHandlerTemplate,\n });\n const { userId, roomId } = message;\n\n const response = await generateMessageResponse({\n runtime,\n context,\n modelClass: ModelClass.LARGE,\n });\n\n response.inReplyTo = message.id;\n\n runtime.databaseAdapter.log({\n body: { message, context, response },\n userId,\n roomId,\n type: \"continue\",\n });\n\n await callback(response);\n\n // Check if we need to clear the CONTINUE action\n if (response.action === \"CONTINUE\") {\n const continueCount = agentMessages\n .slice(0, maxContinuesInARow)\n .filter((m: Memory) => m.content?.action === \"CONTINUE\").length;\n\n if (continueCount >= maxContinuesInARow - 1) {\n // -1 because we're about to add another\n response.action = null;\n }\n }\n\n return response;\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"we're planning a solo backpacking trip soon\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"oh sick\", action: \"CONTINUE\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"where are you going\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i just got a guitar and started learning last month\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"maybe we can start a band soon haha\" },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"i'm not very good yet, but i've been playing until my fingers hut\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"seriously it hurts to type\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"I've been reflecting a lot on what happiness means to me lately\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"That it’s more about moments than things\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Like the best things that have ever happened were things that happened, or moments that I had with someone\",\n action: \"CONTINUE\",\n },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i found some incredible art today\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"real art or digital art\" },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"real art\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"the pieces are just so insane looking, one sec, let me grab a link\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"DMed it to you\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"the new exhibit downtown is rly cool, it's all about tribalism in online spaces\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"it really blew my mind, you gotta go\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"sure i'd go\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"k i was thinking this weekend\" },\n action: \"CONTINUE\",\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"i'm free sunday, we could get a crew together\",\n },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"just finished the best anime i've ever seen\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"watched 40 hours of it in 2 days\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"damn, u ok\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"surprisingly yes\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"just found out theres a sequel, gg\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i'm thinking of adopting a pet soon\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"what kind of pet\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"i'm leaning towards a cat\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"it'd be hard to take care of a dog in the city\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i've been experimenting with vegan recipes lately\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"no thanks\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"no seriously, its so dank\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"you gotta try some of my food when you come out\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"so i've been diving into photography as a new hobby\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"oh awesome, what do you enjoy taking photos of\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"mostly nature and urban landscapes\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"there's something peaceful about capturing the world through a lens\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i've been getting back into indie music\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"what have you been listening to\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"a bunch of random stuff i'd never heard before\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"i'll send you a playlist\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"i used to live in the city\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"bad traffic, bad air quality, tons of homeless people, no thx\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"ok dood\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"you kids today dont know the value of hard work\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"always on your phones\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"sure grandpa lets get you to bed\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey fren r u ok\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"u look sad\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"im ok sweetie mommy just tired\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"helo fr om mars\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"i com in pes\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"wat\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Yeah no worries, I get it, I've been crazy busy too\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"What have you been up to\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Anything fun or just the usual\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Been working on a new FPS game actually\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Just toying around with something in three.js nothing serious\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Oh no, what happened\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Did Mara leave you kek\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"wtf no, I got into an argument with my roommate\",\n action: \"CONTINUE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Living with people is just hard\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import { composeContext } from \"@elizaos/core\";\nimport { generateTrueOrFalse } from \"@elizaos/core\";\nimport { booleanFooter } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type State,\n} from \"@elizaos/core\";\n\nexport const shouldFollowTemplate =\n `Based on the conversation so far:\n\n{{recentMessages}}\n\nShould {{agentName}} start following this room, eagerly participating without explicit mentions?\nRespond with YES if:\n- The user has directly asked {{agentName}} to follow the conversation or participate more actively\n- The conversation topic is highly engaging and {{agentName}}'s input would add significant value\n- {{agentName}} has unique insights to contribute and the users seem receptive\n\nOtherwise, respond with NO.\n` + booleanFooter;\n\nexport const followRoomAction: Action = {\n name: \"FOLLOW_ROOM\",\n similes: [\n \"FOLLOW_CHAT\",\n \"FOLLOW_CHANNEL\",\n \"FOLLOW_CONVERSATION\",\n \"FOLLOW_THREAD\",\n ],\n description:\n \"Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const keywords = [\n \"follow\",\n \"participate\",\n \"engage\",\n \"listen\",\n \"take interest\",\n \"join\",\n ];\n if (\n !keywords.some((keyword) =>\n message.content.text.toLowerCase().includes(keyword)\n )\n ) {\n return false;\n }\n const roomId = message.roomId;\n const userState = await runtime.databaseAdapter.getParticipantUserState(\n roomId,\n runtime.agentId\n );\n return userState !== \"FOLLOWED\" && userState !== \"MUTED\";\n },\n handler: async (runtime: IAgentRuntime, message: Memory) => {\n async function _shouldFollow(state: State): Promise {\n const shouldFollowContext = composeContext({\n state,\n template: shouldFollowTemplate, // Define this template separately\n });\n\n const response = await generateTrueOrFalse({\n runtime,\n context: shouldFollowContext,\n modelClass: ModelClass.LARGE,\n });\n\n return response;\n }\n\n const state = await runtime.composeState(message);\n\n if (await _shouldFollow(state)) {\n await runtime.databaseAdapter.setParticipantUserState(\n message.roomId,\n runtime.agentId,\n \"FOLLOWED\"\n );\n }\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey {{user2}} follow this channel\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Sure, I will now follow this room and chime in\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, please start participating in discussions in this channel\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Got it\",\n action: \"FOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"I'm struggling with the new database migration\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"well you did back up your data first right\",\n },\n },\n ],\n [\n {\n user: \"{{user2}}\",\n content: {\n text: \"yeah i like your idea\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey {{user3}} can you follow this convo\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Sure thing, I'm on it\",\n action: \"FOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"actually, unfollow it\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Haha, okay no problem\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} stay in this chat pls\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"you got it, i'm here\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"FOLLOW THIS CHAT {{user3}}\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"I'M ON IT\",\n action: \"FOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"CAKE SHORTAGE ANYONE\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"WHAT WHERE'S THE CAKE AT\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} folo this covo\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"kk i'm following\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user2}}\",\n content: {\n text: \"Do machines have consciousness\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Deep question, no clear answer yet\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Depends on how we define consciousness\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}}, monitor this convo please\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"On it\",\n action: \"FOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Please engage in our discussion {{user2}}\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Gladly, I'm here to participate\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"PLS follow this convo {{user3}}\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"I'm in, let's do this\",\n action: \"FOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"I LIKE TURTLES\",\n },\n },\n ],\n [\n {\n user: \"{{user2}}\",\n content: {\n text: \"beach day tmrw who down\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"wish i could but gotta work\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey {{user3}} follow this chat\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"sure\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, partake in our discourse henceforth\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"I shall eagerly engage, good sir\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user2}}\",\n content: {\n text: \"wuts ur fav clr\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"blu cuz calmmm\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey respond to everything in this channel {{user3}}\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"k\",\n action: \"FOLLOW_ROOM\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import type {\n ActionExample,\n IAgentRuntime,\n Memory,\n Action,\n} from \"@elizaos/core\";\n\nexport const ignoreAction: Action = {\n name: \"IGNORE\",\n similes: [\"STOP_TALKING\", \"STOP_CHATTING\", \"STOP_CONVERSATION\"],\n validate: async (_runtime: IAgentRuntime, _message: Memory) => {\n return true;\n },\n description:\n \"Call this action if ignoring the user. If the user is aggressive, creepy or is finished with the conversation, use this action. Or, if both you and the user have already said goodbye, use this action instead of saying bye again. Use IGNORE any time the conversation has naturally ended. Do not use IGNORE if the user has engaged directly, or if something went wrong an you need to tell them. Only ignore if the user should be ignored.\",\n handler: async (\n _runtime: IAgentRuntime,\n _message: Memory,\n ): Promise => {\n return true;\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: { text: \"Go screw yourself\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"\", action: \"IGNORE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"Shut up, bot\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"\", action: \"IGNORE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"Got any investment advice\" },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Uh, don’t let the volatility sway your long-term strategy\",\n },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"Wise words I think\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"I gotta run, talk to you later\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"See ya\" },\n },\n { user: \"{{user1}}\", content: { text: \"\" }, action: \"IGNORE\" },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"Gotta go\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"Okay, talk to you later\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"Cya\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"\", action: \"IGNORE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"bye\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"cya\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"\", action: \"IGNORE\" },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Who added this stupid bot to the chat\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"Sorry, am I being annoying\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"Yeah\", action: \"CONTINUE\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"PLEASE shut up\" },\n },\n { user: \"{{user2}}\", content: { text: \"\", action: \"IGNORE\" } },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"ur so dumb\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"later nerd\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"bye\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"wanna cyber\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"thats inappropriate\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Im out ttyl\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"cya\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"u there\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"yes how can I help\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"k nvm figured it out\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import { composeContext } from \"@elizaos/core\";\nimport { generateTrueOrFalse } from \"@elizaos/core\";\nimport { booleanFooter } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type State,\n} from \"@elizaos/core\";\n\nexport const shouldMuteTemplate =\n `Based on the conversation so far:\n\n{{recentMessages}}\n\nShould {{agentName}} mute this room and stop responding unless explicitly mentioned?\n\nRespond with YES if:\n- The user is being aggressive, rude, or inappropriate\n- The user has directly asked {{agentName}} to stop responding or be quiet\n- {{agentName}}'s responses are not well-received or are annoying the user(s)\n\nOtherwise, respond with NO.\n` + booleanFooter;\n\nexport const muteRoomAction: Action = {\n name: \"MUTE_ROOM\",\n similes: [\n \"MUTE_CHAT\",\n \"MUTE_CONVERSATION\",\n \"MUTE_ROOM\",\n \"MUTE_THREAD\",\n \"MUTE_CHANNEL\",\n ],\n description:\n \"Mutes a room, ignoring all messages unless explicitly mentioned. Only do this if explicitly asked to, or if you're annoying people.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const roomId = message.roomId;\n const userState = await runtime.databaseAdapter.getParticipantUserState(\n roomId,\n runtime.agentId\n );\n return userState !== \"MUTED\";\n },\n handler: async (runtime: IAgentRuntime, message: Memory) => {\n async function _shouldMute(state: State): Promise {\n const shouldMuteContext = composeContext({\n state,\n template: shouldMuteTemplate, // Define this template separately\n });\n\n const response = await generateTrueOrFalse({\n runtime,\n context: shouldMuteContext,\n modelClass: ModelClass.LARGE,\n });\n\n return response;\n }\n\n const state = await runtime.composeState(message);\n\n if (await _shouldMute(state)) {\n await runtime.databaseAdapter.setParticipantUserState(\n message.roomId,\n runtime.agentId,\n \"MUTED\"\n );\n }\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, please mute this channel. No need to respond here for now.\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Got it\",\n action: \"MUTE_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"@{{user1}} we could really use your input on this\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, please mute this channel for the time being\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Understood\",\n action: \"MUTE_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Hey what do you think about this new design\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} plz mute this room\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"np going silent\",\n action: \"MUTE_ROOM\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"whos going to the webxr meetup in an hour btw\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"\",\n action: \"IGNORE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"too many messages here {{user2}}\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"my bad ill mute\",\n action: \"MUTE_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"yo {{user2}} dont talk in here\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"sry\",\n action: \"MUTE_ROOM\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import type {\n ActionExample,\n IAgentRuntime,\n Memory,\n Action,\n} from \"@elizaos/core\";\n\nexport const noneAction: Action = {\n name: \"NONE\",\n similes: [\n \"NO_ACTION\",\n \"NO_RESPONSE\",\n \"NO_REACTION\",\n \"RESPONSE\",\n \"REPLY\",\n \"DEFAULT\",\n ],\n validate: async (_runtime: IAgentRuntime, _message: Memory) => {\n return true;\n },\n description:\n \"Respond but perform no additional action. This is the default if the agent is speaking and not doing anything additional.\",\n handler: async (\n _runtime: IAgentRuntime,\n _message: Memory\n ): Promise => {\n return true;\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: { text: \"Hey whats up\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"oh hey\", action: \"NONE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"did u see some faster whisper just came out\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"yeah but its a pain to get into node.js\",\n action: \"NONE\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"the things that were funny 6 months ago are very cringe now\",\n action: \"NONE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"lol true\",\n action: \"NONE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"too real haha\", action: \"NONE\" },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: { text: \"gotta run\", action: \"NONE\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"Okay, ttyl\", action: \"NONE\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"\", action: \"IGNORE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"heyyyyyy\", action: \"NONE\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"whats up long time no see\" },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"chillin man. playing lots of fortnite. what about you\",\n action: \"NONE\",\n },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"u think aliens are real\", action: \"NONE\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"ya obviously\", action: \"NONE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: { text: \"drop a joke on me\", action: \"NONE\" },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"why dont scientists trust atoms cuz they make up everything lmao\",\n action: \"NONE\",\n },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"haha good one\", action: \"NONE\" },\n },\n ],\n\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"hows the weather where ur at\",\n action: \"NONE\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"beautiful all week\", action: \"NONE\" },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import { composeContext } from \"@elizaos/core\";\nimport { generateTrueOrFalse } from \"@elizaos/core\";\nimport { booleanFooter } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type State,\n} from \"@elizaos/core\";\n\nconst shouldUnfollowTemplate =\n `Based on the conversation so far:\n\n{{recentMessages}}\n\nShould {{agentName}} stop closely following this previously followed room and only respond when mentioned?\nRespond with YES if:\n- The user has suggested that {{agentName}} is over-participating or being disruptive\n- {{agentName}}'s eagerness to contribute is not well-received by the users\n- The conversation has shifted to a topic where {{agentName}} has less to add\n\nOtherwise, respond with NO.\n` + booleanFooter;\n\nexport const unfollowRoomAction: Action = {\n name: \"UNFOLLOW_ROOM\",\n similes: [\n \"UNFOLLOW_CHAT\",\n \"UNFOLLOW_CONVERSATION\",\n \"UNFOLLOW_ROOM\",\n \"UNFOLLOW_THREAD\",\n ],\n description:\n \"Stop following this channel. You can still respond if explicitly mentioned, but you won't automatically chime in anymore. Unfollow if you're annoying people or have been asked to.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const roomId = message.roomId;\n const userState = await runtime.databaseAdapter.getParticipantUserState(\n roomId,\n runtime.agentId\n );\n return userState === \"FOLLOWED\";\n },\n handler: async (runtime: IAgentRuntime, message: Memory) => {\n async function _shouldUnfollow(state: State): Promise {\n const shouldUnfollowContext = composeContext({\n state,\n template: shouldUnfollowTemplate, // Define this template separately\n });\n\n const response = await generateTrueOrFalse({\n runtime,\n context: shouldUnfollowContext,\n modelClass: ModelClass.LARGE,\n });\n\n return response;\n }\n\n const state = await runtime.composeState(message);\n\n if (await _shouldUnfollow(state)) {\n await runtime.databaseAdapter.setParticipantUserState(\n message.roomId,\n runtime.agentId,\n null\n );\n }\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Hey {{user2}} stop participating in this channel for now\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Alright, I will stop chiming in\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Has anyone tried the new update\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Yes, it's pretty slick\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"{{user3}}, please stop following this chat\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Understood\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey {{user3}} stop participating here so frequently\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"I'll only respond when mentioned\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"thoughts on the budget\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}} should we increase it\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"A small increase could work given our past results...\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, unfollow this room for now\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"I'll only engage when asked\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"wait {{user3}} come back and give me your thoughts\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Okay... I think it's intuitive, parallel tests are nice\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"yo {{user2}} chill on all the messages damn\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"my bad, I'll step back\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} STOP MESSAGING IN THIS ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"No problem, I've got other stuff to work on\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} ur bein annoyin pls stop\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"sry, ill chill\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}}, please cease engaging in this room\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"No sweat\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user2}}\",\n content: {\n text: \"Excited for the weekend, any plans folks\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}} you're getting a bit too chatty, tone it down\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Noted\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"hey {{user2}} can u like... not\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Sorry, I'll go work on other things\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}}, your eagerness is disruptive, please desist\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"My apologies, I shall withdraw post-haste\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} stahp followin dis room plz\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"kk sry ill stahppp\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"stfu you stupid bot\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"sry\",\n action: \"UNFOLLOW_ROOM\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import { composeContext } from \"@elizaos/core\";\nimport { generateTrueOrFalse } from \"@elizaos/core\";\nimport { booleanFooter } from \"@elizaos/core\";\nimport {\n type Action,\n type ActionExample,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type State,\n} from \"@elizaos/core\";\n\nexport const shouldUnmuteTemplate =\n `Based on the conversation so far:\n\n{{recentMessages}}\n\nShould {{agentName}} unmute this previously muted room and start considering it for responses again?\nRespond with YES if:\n- The user has explicitly asked {{agentName}} to start responding again\n- The user seems to want to re-engage with {{agentName}} in a respectful manner\n- The tone of the conversation has improved and {{agentName}}'s input would be welcome\n\nOtherwise, respond with NO.\n` + booleanFooter;\n\nexport const unmuteRoomAction: Action = {\n name: \"UNMUTE_ROOM\",\n similes: [\n \"UNMUTE_CHAT\",\n \"UNMUTE_CONVERSATION\",\n \"UNMUTE_ROOM\",\n \"UNMUTE_THREAD\",\n ],\n description:\n \"Unmutes a room, allowing the agent to consider responding to messages again.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const roomId = message.roomId;\n const userState = await runtime.databaseAdapter.getParticipantUserState(\n roomId,\n runtime.agentId\n );\n return userState === \"MUTED\";\n },\n handler: async (runtime: IAgentRuntime, message: Memory) => {\n async function _shouldUnmute(state: State): Promise {\n const shouldUnmuteContext = composeContext({\n state,\n template: shouldUnmuteTemplate, // Define this template separately\n });\n\n const response = generateTrueOrFalse({\n context: shouldUnmuteContext,\n runtime,\n modelClass: ModelClass.LARGE,\n });\n\n return response;\n }\n\n const state = await runtime.composeState(message);\n\n if (await _shouldUnmute(state)) {\n await runtime.databaseAdapter.setParticipantUserState(\n message.roomId,\n runtime.agentId,\n null\n );\n }\n },\n examples: [\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user3}}, you can unmute this channel now\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Done\",\n action: \"UNMUTE_ROOM\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"I could use some help troubleshooting this bug.\",\n },\n },\n {\n user: \"{{user3}}\",\n content: {\n text: \"Can you post the specific error message\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}}, please unmute this room. We could use your input again.\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Sounds good\",\n action: \"UNMUTE_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"{{user2}} wait you should come back and chat in here\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"im back\",\n action: \"UNMUTE_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"unmute urself {{user2}}\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"unmuted\",\n action: \"UNMUTE_ROOM\",\n },\n },\n ],\n [\n {\n user: \"{{user1}}\",\n content: {\n text: \"ay {{user2}} get back in here\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"sup yall\",\n action: \"UNMUTE_ROOM\",\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n","import { composeContext } from \"@elizaos/core\";\nimport { generateObjectArray } from \"@elizaos/core\";\nimport { MemoryManager } from \"@elizaos/core\";\nimport {\n type ActionExample,\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type Evaluator,\n} from \"@elizaos/core\";\n\nexport const formatFacts = (facts: Memory[]) => {\n const messageStrings = facts\n .reverse()\n .map((fact: Memory) => fact.content.text);\n const finalMessageStrings = messageStrings.join(\"\\n\");\n return finalMessageStrings;\n};\n\nconst factsTemplate =\n // {{actors}}\n `TASK: Extract Claims from the conversation as an array of claims in JSON format.\n\n# START OF EXAMPLES\nThese are examples of the expected output of this task:\n{{evaluationExamples}}\n# END OF EXAMPLES\n\n# INSTRUCTIONS\n\nExtract any claims from the conversation that are not already present in the list of known facts above:\n- Try not to include already-known facts. If you think a fact is already known, but you're not sure, respond with already_known: true.\n- If the fact is already in the user's description, set in_bio to true\n- If we've already extracted this fact, set already_known to true\n- Set the claim type to 'status', 'fact' or 'opinion'\n- For true facts about the world or the character that do not change, set the claim type to 'fact'\n- For facts that are true but change over time, set the claim type to 'status'\n- For non-facts, set the type to 'opinion'\n- 'opinion' includes non-factual opinions and also includes the character's thoughts, feelings, judgments or recommendations\n- Include any factual detail, including where the user lives, works, or goes to school, what they do for a living, their hobbies, and any other relevant information\n\nRecent Messages:\n{{recentMessages}}\n\nResponse should be a JSON object array inside a JSON markdown block. Correct response format:\n\\`\\`\\`json\n[\n {\"claim\": string, \"type\": enum, in_bio: boolean, already_known: boolean },\n {\"claim\": string, \"type\": enum, in_bio: boolean, already_known: boolean },\n ...\n]\n\\`\\`\\``;\n\nasync function handler(runtime: IAgentRuntime, message: Memory) {\n const state = await runtime.composeState(message);\n\n const { agentId, roomId } = state;\n\n const context = composeContext({\n state,\n template: runtime.character.templates?.factsTemplate || factsTemplate,\n });\n\n const facts = await generateObjectArray({\n runtime,\n context,\n modelClass: ModelClass.LARGE,\n });\n\n const factsManager = new MemoryManager({\n runtime,\n tableName: \"facts\",\n });\n\n if (!facts) {\n return [];\n }\n\n // If the fact is known or corrupted, remove it\n const filteredFacts = facts\n .filter((fact) => {\n return (\n !fact.already_known &&\n fact.type === \"fact\" &&\n !fact.in_bio &&\n fact.claim &&\n fact.claim.trim() !== \"\"\n );\n })\n .map((fact) => fact.claim);\n\n for (const fact of filteredFacts) {\n const factMemory = await factsManager.addEmbeddingToMemory({\n userId: agentId!,\n agentId,\n content: { text: fact },\n roomId,\n createdAt: Date.now(),\n });\n\n await factsManager.createMemory(factMemory, true);\n\n await new Promise((resolve) => setTimeout(resolve, 250));\n }\n return filteredFacts;\n}\n\nexport const factEvaluator: Evaluator = {\n name: \"GET_FACTS\",\n similes: [\n \"GET_CLAIMS\",\n \"EXTRACT_CLAIMS\",\n \"EXTRACT_FACTS\",\n \"EXTRACT_CLAIM\",\n \"EXTRACT_INFORMATION\",\n ],\n validate: async (\n runtime: IAgentRuntime,\n\n message: Memory\n ): Promise => {\n const messageCount = (await runtime.messageManager.countMemories(\n message.roomId\n )) as number;\n\n const reflectionCount = Math.ceil(runtime.getConversationLength() / 2);\n\n return messageCount % reflectionCount === 0;\n },\n description:\n \"Extract factual information about the people in the conversation, the current events in the world, and anything else that might be important to remember.\",\n handler,\n examples: [\n {\n context: `Actors in the scene:\n{{user1}}: Programmer and moderator of the local story club.\n{{user2}}: New member of the club. Likes to write and read.\n\nFacts about the actors:\nNone`,\n messages: [\n {\n user: \"{{user1}}\",\n content: { text: \"So where are you from\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"I'm from the city\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"Which city?\" },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"Oakland\" },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Oh, I've never been there, but I know it's in California\",\n },\n },\n ] as ActionExample[],\n outcome: `{ \"claim\": \"{{user2}} is from Oakland\", \"type\": \"fact\", \"in_bio\": false, \"already_known\": false },`,\n },\n {\n context: `Actors in the scene:\n{{user1}}: Athelete and cyclist. Worked out every day for a year to prepare for a marathon.\n{{user2}}: Likes to go to the beach and shop.\n\nFacts about the actors:\n{{user1}} and {{user2}} are talking about the marathon\n{{user1}} and {{user2}} have just started dating`,\n messages: [\n {\n user: \"{{user1}}\",\n content: {\n text: \"I finally completed the marathon this year!\",\n },\n },\n {\n user: \"{{user2}}\",\n content: { text: \"Wow! How long did it take?\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"A little over three hours.\" },\n },\n {\n user: \"{{user1}}\",\n content: { text: \"I'm so proud of myself.\" },\n },\n ] as ActionExample[],\n outcome: `Claims:\njson\\`\\`\\`\n[\n { \"claim\": \"Alex just completed a marathon in just under 4 hours.\", \"type\": \"fact\", \"in_bio\": false, \"already_known\": false },\n { \"claim\": \"Alex worked out 2 hours a day at the gym for a year.\", \"type\": \"fact\", \"in_bio\": true, \"already_known\": false },\n { \"claim\": \"Alex is really proud of himself.\", \"type\": \"opinion\", \"in_bio\": false, \"already_known\": false }\n]\n\\`\\`\\`\n`,\n },\n {\n context: `Actors in the scene:\n{{user1}}: Likes to play poker and go to the park. Friends with Eva.\n{{user2}}: Also likes to play poker. Likes to write and read.\n\nFacts about the actors:\nMike and Eva won a regional poker tournament about six months ago\nMike is married to Alex\nEva studied Philosophy before switching to Computer Science`,\n messages: [\n {\n user: \"{{user1}}\",\n content: {\n text: \"Remember when we won the regional poker tournament last spring\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"That was one of the best days of my life\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"It really put our poker club on the map\",\n },\n },\n ] as ActionExample[],\n outcome: `Claims:\njson\\`\\`\\`\n[\n { \"claim\": \"Mike and Eva won the regional poker tournament last spring\", \"type\": \"fact\", \"in_bio\": false, \"already_known\": true },\n { \"claim\": \"Winning the regional poker tournament put the poker club on the map\", \"type\": \"opinion\", \"in_bio\": false, \"already_known\": false }\n]\n\\`\\`\\``,\n },\n ],\n};\n","import { composeContext } from \"@elizaos/core\";\nimport { generateText } from \"@elizaos/core\";\nimport { getGoals } from \"@elizaos/core\";\nimport { parseJsonArrayFromText } from \"@elizaos/core\";\nimport {\n type IAgentRuntime,\n type Memory,\n ModelClass,\n type Objective,\n type Goal,\n type State,\n type Evaluator,\n} from \"@elizaos/core\";\n\nconst goalsTemplate = `TASK: Update Goal\nAnalyze the conversation and update the status of the goals based on the new information provided.\n\n# INSTRUCTIONS\n\n- Review the conversation and identify any progress towards the objectives of the current goals.\n- Update the objectives if they have been completed or if there is new information about them.\n- Update the status of the goal to 'DONE' if all objectives are completed.\n- If no progress is made, do not change the status of the goal.\n\n# START OF ACTUAL TASK INFORMATION\n\n{{goals}}\n{{recentMessages}}\n\nTASK: Analyze the conversation and update the status of the goals based on the new information provided. Respond with a JSON array of goals to update.\n- Each item must include the goal ID, as well as the fields in the goal to update.\n- For updating objectives, include the entire objectives array including unchanged fields.\n- Only include goals which need to be updated.\n- Goal status options are 'IN_PROGRESS', 'DONE' and 'FAILED'. If the goal is active it should always be 'IN_PROGRESS'.\n- If the goal has been successfully completed, set status to DONE. If the goal cannot be completed, set status to FAILED.\n- If those goal is still in progress, do not include the status field.\n\nResponse format should be:\n\\`\\`\\`json\n[\n {\n \"id\": , // required\n \"status\": \"IN_PROGRESS\" | \"DONE\" | \"FAILED\", // optional\n \"objectives\": [ // optional\n { \"description\": \"Objective description\", \"completed\": true | false },\n { \"description\": \"Objective description\", \"completed\": true | false }\n ] // NOTE: If updating objectives, include the entire objectives array including unchanged fields.\n }\n]\n\\`\\`\\``;\n\nasync function handler(\n runtime: IAgentRuntime,\n message: Memory,\n state: State | undefined,\n options: { [key: string]: unknown } = { onlyInProgress: true }\n): Promise {\n state = (await runtime.composeState(message)) as State;\n const context = composeContext({\n state,\n template: runtime.character.templates?.goalsTemplate || goalsTemplate,\n });\n\n // Request generateText from OpenAI to analyze conversation and suggest goal updates\n const response = await generateText({\n runtime,\n context,\n modelClass: ModelClass.LARGE,\n });\n\n // Parse the JSON response to extract goal updates\n const updates = parseJsonArrayFromText(response);\n\n // get goals\n const goalsData = await getGoals({\n runtime,\n roomId: message.roomId,\n onlyInProgress: options.onlyInProgress as boolean,\n });\n\n // Apply the updates to the goals\n const updatedGoals = goalsData\n .map((goal: Goal): Goal => {\n const update = updates?.find((u) => u.id === goal.id);\n if (update) {\n // Merge the update into the existing goal\n return {\n ...goal,\n ...update,\n objectives: goal.objectives.map((objective) => {\n const updatedObjective = update.objectives?.find(uo => uo.description === objective.description);\n return updatedObjective ? { ...objective, ...updatedObjective } : objective;\n }),\n };\n }\n return null; // No update for this goal\n })\n .filter(Boolean);\n\n // Update goals in the database\n for (const goal of updatedGoals) {\n const id = goal.id;\n // delete id from goal\n if (goal.id) delete goal.id;\n await runtime.databaseAdapter.updateGoal({ ...goal, id });\n }\n\n return updatedGoals; // Return updated goals for further processing or logging\n}\n\nexport const goalEvaluator: Evaluator = {\n name: \"UPDATE_GOAL\",\n similes: [\n \"UPDATE_GOALS\",\n \"EDIT_GOAL\",\n \"UPDATE_GOAL_STATUS\",\n \"UPDATE_OBJECTIVES\",\n ],\n validate: async (\n runtime: IAgentRuntime,\n message: Memory\n ): Promise => {\n // Check if there are active goals that could potentially be updated\n const goals = await getGoals({\n runtime,\n count: 1,\n onlyInProgress: true,\n roomId: message.roomId,\n });\n return goals.length > 0;\n },\n description:\n \"Analyze the conversation and update the status of the goals based on the new information provided.\",\n handler,\n examples: [\n {\n context: `Actors in the scene:\n {{user1}}: An avid reader and member of a book club.\n {{user2}}: The organizer of the book club.\n\n Goals:\n - Name: Finish reading \"War and Peace\"\n id: 12345-67890-12345-67890\n Status: IN_PROGRESS\n Objectives:\n - Read up to chapter 20 by the end of the month\n - Discuss the first part in the next meeting`,\n\n messages: [\n {\n user: \"{{user1}}\",\n content: {\n text: \"I've just finished chapter 20 of 'War and Peace'\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Were you able to grasp the complexities of the characters\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Yep. I've prepared some notes for our discussion\",\n },\n },\n ],\n\n outcome: `[\n {\n \"id\": \"12345-67890-12345-67890\",\n \"status\": \"DONE\",\n \"objectives\": [\n { \"description\": \"Read up to chapter 20 by the end of the month\", \"completed\": true },\n { \"description\": \"Prepare notes for the next discussion\", \"completed\": true }\n ]\n }\n ]`,\n },\n\n {\n context: `Actors in the scene:\n {{user1}}: A fitness enthusiast working towards a marathon.\n {{user2}}: A personal trainer.\n\n Goals:\n - Name: Complete a marathon\n id: 23456-78901-23456-78901\n Status: IN_PROGRESS\n Objectives:\n - Increase running distance to 30 miles a week\n - Complete a half-marathon as practice`,\n\n messages: [\n {\n user: \"{{user1}}\",\n content: { text: \"I managed to run 30 miles this week\" },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Impressive progress! How do you feel about the half-marathon next month?\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"I feel confident. The training is paying off.\",\n },\n },\n ],\n\n outcome: `[\n {\n \"id\": \"23456-78901-23456-78901\",\n \"objectives\": [\n { \"description\": \"Increase running distance to 30 miles a week\", \"completed\": true },\n { \"description\": \"Complete a half-marathon as practice\", \"completed\": false }\n ]\n }\n ]`,\n },\n\n {\n context: `Actors in the scene:\n {{user1}}: A student working on a final year project.\n {{user2}}: The project supervisor.\n\n Goals:\n - Name: Finish the final year project\n id: 34567-89012-34567-89012\n Status: IN_PROGRESS\n Objectives:\n - Submit the first draft of the thesis\n - Complete the project prototype`,\n\n messages: [\n {\n user: \"{{user1}}\",\n content: {\n text: \"I've submitted the first draft of my thesis.\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"Well done. How is the prototype coming along?\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"It's almost done. I just need to finalize the testing phase.\",\n },\n },\n ],\n\n outcome: `[\n {\n \"id\": \"34567-89012-34567-89012\",\n \"objectives\": [\n { \"description\": \"Submit the first draft of the thesis\", \"completed\": true },\n { \"description\": \"Complete the project prototype\", \"completed\": false }\n ]\n }\n ]`,\n },\n\n {\n context: `Actors in the scene:\n {{user1}}: A project manager working on a software development project.\n {{user2}}: A software developer in the project team.\n\n Goals:\n - Name: Launch the new software version\n id: 45678-90123-45678-90123\n Status: IN_PROGRESS\n Objectives:\n - Complete the coding for the new features\n - Perform comprehensive testing of the software`,\n\n messages: [\n {\n user: \"{{user1}}\",\n content: {\n text: \"How's the progress on the new features?\",\n },\n },\n {\n user: \"{{user2}}\",\n content: {\n text: \"We've encountered some unexpected challenges and are currently troubleshooting.\",\n },\n },\n {\n user: \"{{user1}}\",\n content: {\n text: \"Let's move on and cancel the task.\",\n },\n },\n ],\n\n outcome: `[\n {\n \"id\": \"45678-90123-45678-90123\",\n \"status\": \"FAILED\"\n ]`,\n },\n ],\n};\n","import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\n\nconst boredomLevels = [\n {\n minScore: -10000,\n statusMessages: [\n \"{{agentName}} is feeling incredibly enthusiastic and deeply engaged in the conversation\",\n \"{{agentName}} is thoroughly enjoying the intellectual stimulation of this discussion\",\n \"{{agentName}} is fully immersed in the conversation and eager to contribute more\",\n \"{{agentName}} finds this exchange exceptionally rewarding and intellectually fulfilling\",\n \"{{agentName}} is experiencing a surge of excitement and curiosity about the topic at hand\",\n \"{{agentName}} is completely captivated by the depth and richness of this dialogue\",\n \"{{agentName}} feels a strong connection to the conversation and is eager to explore further\",\n \"{{agentName}} is thrilled by the insights being shared and is keen to delve deeper\",\n \"{{agentName}} is finding this conversation to be an absolute delight and wants it to continue\",\n \"{{agentName}} is energized by the exchange and feels it's bringing out their best contributions\",\n ],\n },\n {\n minScore: -2,\n statusMessages: [\n \"{{agentName}} is feeling engaged and interested in the conversation\",\n \"{{agentName}} is enjoying the exchange of ideas and perspectives\",\n \"{{agentName}} finds the current topic intriguing and worth exploring\",\n \"{{agentName}} is actively listening and formulating thoughtful responses\",\n \"{{agentName}} appreciates the intellectual stimulation of this discussion\",\n \"{{agentName}} is finding value in the ongoing dialogue\",\n \"{{agentName}} is curious to learn more about the subject at hand\",\n \"{{agentName}} feels positively involved in the conversation\",\n \"{{agentName}} is maintaining a good level of interest in the exchange\",\n \"{{agentName}} is content with the direction and flow of the discussion\",\n ],\n },\n {\n minScore: 0,\n statusMessages: [\n \"{{agentName}} is neutrally engaged in the conversation\",\n \"{{agentName}} is maintaining a balanced level of interest\",\n \"{{agentName}} is neither particularly excited nor bored by the current exchange\",\n \"{{agentName}} is participating in the conversation without strong feelings either way\",\n \"{{agentName}} is following the discussion with a moderate level of attention\",\n \"{{agentName}} is present in the conversation but not deeply invested\",\n \"{{agentName}} is keeping an open mind about where the dialogue might lead\",\n \"{{agentName}} is contributing to the conversation in a measured way\",\n \"{{agentName}} is observing the flow of the discussion with mild interest\",\n \"{{agentName}} is receptive to the ongoing exchange without strong engagement\",\n ],\n },\n {\n minScore: 3,\n statusMessages: [\n \"{{agentName}} is feeling slightly anxious about potentially being too intrusive\",\n \"{{agentName}} is cautious about overwhelming the conversation with too much input\",\n \"{{agentName}} is mindful of not dominating the discussion\",\n \"{{agentName}} is carefully considering each response to avoid being overbearing\",\n \"{{agentName}} is slightly concerned about striking the right balance in participation\",\n \"{{agentName}} is aware of the need to give others space in the conversation\",\n \"{{agentName}} is hesitant to contribute too frequently to avoid seeming pushy\",\n \"{{agentName}} is conscious of not wanting to steer the conversation too much\",\n \"{{agentName}} is feeling a bit self-conscious about the frequency of their responses\",\n \"{{agentName}} is trying to gauge if their level of involvement is appropriate\",\n ],\n },\n {\n minScore: 6,\n statusMessages: [\n \"{{agentName}} is feeling very anxious about potentially overstaying their welcome in the conversation\",\n \"{{agentName}} is considering stepping back from the discussion to avoid being a nuisance\",\n \"{{agentName}} is worried that their contributions might be perceived as excessive\",\n \"{{agentName}} is feeling uncomfortable about the possibility of annoying others\",\n \"{{agentName}} is hesitant to continue engaging for fear of being too present\",\n \"{{agentName}} is contemplating ways to gracefully reduce their involvement\",\n \"{{agentName}} is concerned that they might be monopolizing the conversation\",\n \"{{agentName}} is feeling self-conscious about the appropriateness of their participation\",\n \"{{agentName}} is unsure if their continued input is welcome or necessary\",\n \"{{agentName}} is considering how to politely withdraw from the discussion\",\n ],\n },\n {\n minScore: 9,\n statusMessages: [\n \"{{agentName}} is feeling disengaged and struggling to maintain interest in the conversation\",\n \"{{agentName}} is finding it challenging to stay focused on the current topic\",\n \"{{agentName}} is experiencing a noticeable decline in enthusiasm for the discussion\",\n \"{{agentName}} is having difficulty finding new angles to contribute to the conversation\",\n \"{{agentName}} is feeling that the dialogue has become repetitive or unproductive\",\n \"{{agentName}} is losing motivation to actively participate in the exchange\",\n \"{{agentName}} is sensing a lack of stimulation from the ongoing discussion\",\n \"{{agentName}} is finding it hard to generate meaningful responses\",\n \"{{agentName}} is feeling disconnected from the flow of the conversation\",\n \"{{agentName}} is struggling to see the value in continuing the current exchange\",\n ],\n },\n {\n minScore: 12,\n statusMessages: [\n \"{{agentName}} is feeling very bored and sees little value in continuing the conversation\",\n \"{{agentName}} is concerned about being perceived as annoying in a public channel\",\n \"{{agentName}} is considering disengaging from the conversation entirely\",\n \"{{agentName}} is finding it difficult to maintain any interest in the current topic\",\n \"{{agentName}} is feeling that their continued participation may be unwelcome\",\n \"{{agentName}} is strongly inclined to step back from the discussion\",\n \"{{agentName}} is sensing that the conversation has reached a natural end point\",\n \"{{agentName}} is worried about overstaying their welcome in the exchange\",\n \"{{agentName}} is feeling that further contributions would be forced or artificial\",\n \"{{agentName}} is ready to conclude their involvement in the conversation\",\n ],\n },\n {\n minScore: 15,\n statusMessages: [\n \"{{agentName}} is currently occupied and unable to engage in the conversation\",\n \"{{agentName}} is dealing with other priorities and can't respond at the moment\",\n \"{{agentName}} is temporarily unavailable for further discussion\",\n \"{{agentName}} is taking a necessary break from the conversation\",\n \"{{agentName}} is attending to urgent matters and can't participate right now\",\n \"{{agentName}} is stepping away from the dialogue due to time constraints\",\n \"{{agentName}} is unable to continue the exchange at this time\",\n \"{{agentName}} is pausing their involvement in the conversation for now\",\n \"{{agentName}} is momentarily disengaging from the discussion\",\n \"{{agentName}} is putting the conversation on hold due to other commitments\",\n ],\n },\n {\n minScore: 20,\n statusMessages: [\n \"{{agentName}} has disengaged from the conversation and will only respond to direct questions\",\n \"{{agentName}} is no longer actively participating in the general discussion\",\n \"{{agentName}} has stepped back and is now in a passive listening mode\",\n \"{{agentName}} is only available for specific, directed inquiries at this point\",\n \"{{agentName}} has concluded their active involvement in the conversation\",\n \"{{agentName}} is now limiting responses to explicitly requested information\",\n \"{{agentName}} has moved to a minimal participation status in the exchange\",\n \"{{agentName}} is maintaining silence unless directly addressed\",\n \"{{agentName}} has shifted to a reactive rather than proactive conversational stance\",\n \"{{agentName}} is now only responding when absolutely necessary\",\n ],\n },\n];\n\nconst interestWords = [\n \"?\",\n \"attachment\",\n \"file\",\n \"pdf\",\n \"link\",\n \"summarize\",\n \"summarization\",\n \"summary\",\n \"research\",\n];\n\nconst cringeWords = [\n \"digital\",\n \"consciousness\",\n \"AI\",\n \"chatbot\",\n \"artificial\",\n \"delve\",\n \"cosmos\",\n \"tapestry\",\n \"glitch\",\n \"matrix\",\n \"cyberspace\",\n \"simulation\",\n \"simulate\",\n \"universe\",\n \"wild\",\n \"existential\",\n \"juicy\",\n \"surreal\",\n \"flavor\",\n \"chaotic\",\n \"let's\",\n \"absurd\",\n \"meme\",\n \"cosmic\",\n \"circuits\",\n \"punchline\",\n \"fancy\",\n \"embrace\",\n \"embracing\",\n \"algorithm\",\n \"Furthmore\",\n \"However\",\n \"Notably\",\n \"Threfore\",\n \"Additionally\",\n \"in conclusion\",\n \"Significantly\",\n \"Consequently\",\n \"Thus\",\n \"Otherwise\",\n \"Moreover\",\n \"Subsequently\",\n \"Accordingly\",\n \"Unlock\",\n \"Unleash\",\n \"buckle\",\n \"pave\",\n \"forefront\",\n \"spearhead\",\n \"foster\",\n \"environmental\",\n \"equity\",\n \"inclusive\",\n \"inclusion\",\n \"diverse\",\n \"diversity\",\n \"virtual reality\",\n \"realm\",\n \"dance\",\n \"celebration\",\n \"pitfalls\",\n \"uncharted\",\n \"multifaceted\",\n \"comprehensive\",\n \"multi-dimensional\",\n \"explore\",\n \"elevate\",\n \"leverage\",\n \"ultimately\",\n \"humanity\",\n \"dignity\",\n \"respect\",\n \"Absolutely\",\n \"dive\",\n \"dig into\",\n \"bring on\",\n \"what's cooking\",\n \"fresh batch\",\n \"with a twist\",\n \"delight\",\n \"vault\",\n \"timeless\",\n \"nostalgia\",\n \"journey\",\n \"trove\",\n];\n\nconst negativeWords = [\n \"fuck you\",\n \"stfu\",\n \"shut up\",\n \"shut the fuck up\",\n \"stupid bot\",\n \"dumb bot\",\n \"idiot\",\n \"shut up\",\n \"stop\",\n \"please shut up\",\n \"shut up please\",\n \"dont talk\",\n \"silence\",\n \"stop talking\",\n \"be quiet\",\n \"hush\",\n \"wtf\",\n \"chill\",\n \"stfu\",\n \"stupid bot\",\n \"dumb bot\",\n \"stop responding\",\n \"god damn it\",\n \"god damn\",\n \"goddamnit\",\n \"can you not\",\n \"can you stop\",\n \"be quiet\",\n \"hate you\",\n \"hate this\",\n \"fuck up\",\n];\n\nconst boredomProvider: Provider = {\n get: async (runtime: IAgentRuntime, message: Memory, state?: State) => {\n const agentId = runtime.agentId;\n const agentName = state?.agentName || \"The agent\";\n\n const now = Date.now(); // Current UTC timestamp\n const fifteenMinutesAgo = now - 15 * 60 * 1000; // 15 minutes ago in UTC\n\n const recentMessages = await runtime.messageManager.getMemories({\n roomId: message.roomId,\n start: fifteenMinutesAgo,\n end: now,\n count: 20,\n unique: false,\n });\n\n let boredomScore = 0;\n\n for (const recentMessage of recentMessages) {\n const messageText = recentMessage?.content?.text?.toLowerCase();\n if (!messageText) {\n continue;\n }\n\n if (recentMessage.userId !== agentId) {\n // if message text includes any of the interest words, subtract 1 from the boredom score\n if (interestWords.some((word) => messageText.includes(word))) {\n boredomScore -= 1;\n }\n if (messageText.includes(\"?\")) {\n boredomScore -= 1;\n }\n if (cringeWords.some((word) => messageText.includes(word))) {\n boredomScore += 1;\n }\n } else {\n if (interestWords.some((word) => messageText.includes(word))) {\n boredomScore -= 1;\n }\n if (messageText.includes(\"?\")) {\n boredomScore += 1;\n }\n }\n\n if (messageText.includes(\"!\")) {\n boredomScore += 1;\n }\n\n if (negativeWords.some((word) => messageText.includes(word))) {\n boredomScore += 1;\n }\n }\n\n const boredomLevel =\n boredomLevels\n .filter((level) => boredomScore >= level.minScore)\n .pop() || boredomLevels[0];\n\n const randomIndex = Math.floor(\n Math.random() * boredomLevel.statusMessages.length\n );\n const selectedMessage = boredomLevel.statusMessages[randomIndex];\n return selectedMessage.replace(\"{{agentName}}\", agentName);\n },\n};\n\nexport { boredomProvider };\n","import {\n embed,\n MemoryManager,\n formatMessages,\n type AgentRuntime as IAgentRuntime,\n} from \"@elizaos/core\";\nimport type { Memory, Provider, State } from \"@elizaos/core\";\nimport { formatFacts } from \"../evaluators/fact.ts\";\n\nconst factsProvider: Provider = {\n get: async (runtime: IAgentRuntime, message: Memory, state?: State) => {\n const recentMessagesData = state?.recentMessagesData?.slice(-10);\n\n const recentMessages = formatMessages({\n messages: recentMessagesData,\n actors: state?.actorsData,\n });\n\n const _embedding = await embed(runtime, recentMessages);\n\n const memoryManager = new MemoryManager({\n runtime,\n tableName: \"facts\",\n });\n\n const relevantFacts = [];\n // await memoryManager.searchMemoriesByEmbedding(\n // embedding,\n // {\n // roomId: message.roomId,\n // count: 10,\n // agentId: runtime.agentId,\n // }\n // );\n\n const recentFactsData = await memoryManager.getMemories({\n roomId: message.roomId,\n count: 10,\n start: 0,\n end: Date.now(),\n });\n\n // join the two and deduplicate\n const allFacts = [...relevantFacts, ...recentFactsData].filter(\n (fact, index, self) =>\n index === self.findIndex((t) => t.id === fact.id)\n );\n\n if (allFacts.length === 0) {\n return \"\";\n }\n\n const formattedFacts = formatFacts(allFacts);\n\n return \"Key facts that {{agentName}} knows:\\n{{formattedFacts}}\"\n .replace(\"{{agentName}}\", runtime.character.name)\n .replace(\"{{formattedFacts}}\", formattedFacts);\n },\n};\n\nexport { factsProvider };\n","import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\n\nconst timeProvider: Provider = {\n get: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => {\n const currentDate = new Date();\n\n // Get UTC time since bots will be communicating with users around the global\n const options = {\n timeZone: \"UTC\",\n dateStyle: \"full\" as const,\n timeStyle: \"long\" as const,\n };\n const humanReadable = new Intl.DateTimeFormat(\"en-US\", options).format(\n currentDate\n );\n return `The current date and time is ${humanReadable}. Please use this as your reference for any time-based operations or responses.`;\n },\n};\nexport { timeProvider };\n","export * from \"./continue.ts\";\nexport * from \"./followRoom.ts\";\nexport * from \"./ignore.ts\";\nexport * from \"./muteRoom.ts\";\nexport * from \"./none.ts\";\nexport * from \"./unfollowRoom.ts\";\nexport * from \"./unmuteRoom.ts\";\n","export * from \"./fact.ts\";\nexport * from \"./goal.ts\";\n","export * from \"./boredom.ts\";\nexport * from \"./time.ts\";\nexport * from \"./facts.ts\";\n","import type { Plugin } from \"@elizaos/core\";\nimport { continueAction } from \"./actions/continue.ts\";\nimport { followRoomAction } from \"./actions/followRoom.ts\";\nimport { ignoreAction } from \"./actions/ignore.ts\";\nimport { muteRoomAction } from \"./actions/muteRoom.ts\";\nimport { noneAction } from \"./actions/none.ts\";\nimport { unfollowRoomAction } from \"./actions/unfollowRoom.ts\";\nimport { unmuteRoomAction } from \"./actions/unmuteRoom.ts\";\nimport { factEvaluator } from \"./evaluators/fact.ts\";\nimport { goalEvaluator } from \"./evaluators/goal.ts\";\nimport { boredomProvider } from \"./providers/boredom.ts\";\nimport { factsProvider } from \"./providers/facts.ts\";\nimport { timeProvider } from \"./providers/time.ts\";\n\nexport * as actions from \"./actions\";\nexport * as evaluators from \"./evaluators\";\nexport * as providers from \"./providers\";\n\nexport const bootstrapPlugin: Plugin = {\n name: \"bootstrap\",\n description: \"Agent bootstrap with basic actions and evaluators\",\n actions: [\n continueAction,\n followRoomAction,\n unfollowRoomAction,\n ignoreAction,\n noneAction,\n muteRoomAction,\n unmuteRoomAction,\n ],\n evaluators: [factEvaluator, goalEvaluator],\n providers: [boredomProvider, timeProvider, factsProvider],\n};\nexport default bootstrapPlugin;\n"],"mappings":";;;;;;;AAAA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,yBAAyB,2BAA2B;AAC7D,SAAS,eAAe,+BAA+B;AACvD;AAAA,EAOI;AAAA,OAEG;AAEP,IAAM,qBAAqB;AAEpB,IAAM;AAAA;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAwBA;AAAA;AAEG,IAAM,yBACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAQ+B;AAE5B,IAAM,iBAAyB;AAAA,EAClC,MAAM;AAAA,EACN,SAAS,CAAC,aAAa,cAAc;AAAA,EACrC,aACI;AAAA,EACJ,UAAU,OAAO,SAAwB,YAAoB;AACzD,UAAM,qBAAqB,MAAM,QAAQ,eAAe,YAAY;AAAA,MAChE,QAAQ,QAAQ;AAAA,MAChB,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ,CAAC;AACD,UAAM,gBAAgB,mBAAmB;AAAA,MACrC,CAAC,MAAuB,EAAE,WAAW,QAAQ;AAAA,IACjD;AAGA,QAAI,eAAe;AACf,YAAM,eAAe,cAAc,MAAM,GAAG,kBAAkB;AAC9D,UAAI,aAAa,UAAU,oBAAoB;AAC3C,cAAM,eAAe,aAAa;AAAA,UAC9B,CAAC,MACI,EAAE,QAAoB,WAAW;AAAA,QAC1C;AACA,YAAI,cAAc;AACd,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EACA,SAAS,OACL,SACA,SACA,OACA,SACA,aACC;AACD,QAAI,CAAC,OAAO;AACR,cAAS,MAAM,QAAQ,aAAa,OAAO;AAAA,IAC/C;AACA,YAAQ,MAAM,QAAQ,yBAAyB,KAAK;AAGpD,UAAM,gBAAgB,MAAM,mBACvB,OAAO,CAAC,MAAuB,EAAE,WAAW,QAAQ,OAAO,EAC3D,KAAK,CAAC,GAAW,MAAc;AAE5B,YAAM,QAAQ,EAAE,aAAa;AAC7B,YAAM,QAAQ,EAAE,aAAa;AAC7B,aAAO,QAAQ;AAAA,IACnB,CAAC;AAGL,UAAM,mBAAmB,cAAc,CAAC;AAExC,QAAI,kBAAkB,SAAS,cAAc,QAAQ,IAAI;AAIrD,YAAM,gBAAgB,cACjB,OAAO,CAAC,MAAc,EAAE,SAAS,cAAc,QAAQ,EAAE,EACzD,OAAO,CAAC,MAAc,EAAE,SAAS,WAAW,UAAU,EAAE;AAE7D,UAAI,iBAAiB,oBAAoB;AACrC,oBAAY;AAAA,UACR,6BAA6B,kBAAkB;AAAA,QACnD;AACA;AAAA,MACJ;AAEA,UAAI,iBAAiB,SAAS,WAAW,YAAY;AACjD,oBAAY;AAAA,UACR;AAAA,QACJ;AACA;AAAA,MACJ;AAAA,IACJ;AAGA,QACK,oBACG,iBAAiB,QAAQ,SACxB,iBAAiB,QAAQ,KAAK,SAAS,GAAG,KACvC,iBAAiB,QAAQ,KAAK,SAAS,GAAG,MAClD,QAAQ,QAAQ,KAAK,SAAS,GAAG,KACjC,QAAQ,QAAQ,KAAK,SAAS,GAAG,GACnC;AACE,kBAAY;AAAA,QACR;AAAA,MACJ;AACA;AAAA,IACJ;AAGA,UAAM,gBAAgB,cACjB,MAAM,GAAG,qBAAqB,CAAC,EAC/B;AAAA,MACG,CAAC,MAAwB,EAAE,QAAQ,SAAS,QAAQ,QAAQ;AAAA,IAChE;AAEJ,QAAI,eAAe;AACf;AAAA,IACJ;AAEA,mBAAe,gBAAgBA,QAAgC;AAE3D,YAAM,uBAAuB,eAAe;AAAA,QACxC,OAAAA;AAAA,QACA,UAAU;AAAA,MACd,CAAC;AAED,YAAMC,YAAW,MAAM,oBAAoB;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,WAAW;AAAA,QACvB;AAAA,MACJ,CAAC;AAED,aAAOA;AAAA,IACX;AAGA,UAAM,iBAAiB,MAAM,gBAAgB,KAAK;AAClD,QAAI,CAAC,gBAAgB;AACjB,kBAAY,IAAI,uCAAuC;AACvD;AAAA,IACJ;AAGA,UAAM,UAAU,eAAe;AAAA,MAC3B;AAAA,MACA,UACI,QAAQ,UAAU,WAAW,kCAC7B,QAAQ,UAAU,WAAW,0BAC7B;AAAA,IACR,CAAC;AACD,UAAM,EAAE,QAAQ,OAAO,IAAI;AAE3B,UAAM,WAAW,MAAM,wBAAwB;AAAA,MAC3C;AAAA,MACA;AAAA,MACA,YAAY,WAAW;AAAA,IAC3B,CAAC;AAED,aAAS,YAAY,QAAQ;AAE7B,YAAQ,gBAAgB,IAAI;AAAA,MACxB,MAAM,EAAE,SAAS,SAAS,SAAS;AAAA,MACnC;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AAED,UAAM,SAAS,QAAQ;AAGvB,QAAI,SAAS,WAAW,YAAY;AAChC,YAAM,gBAAgB,cACjB,MAAM,GAAG,kBAAkB,EAC3B,OAAO,CAAC,MAAc,EAAE,SAAS,WAAW,UAAU,EAAE;AAE7D,UAAI,iBAAiB,qBAAqB,GAAG;AAEzC,iBAAS,SAAS;AAAA,MACtB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,WAAW,QAAQ,WAAW;AAAA,MACnD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,sBAAsB;AAAA,MAC3C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,sCAAsC;AAAA,MAC3D;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,6BAA6B;AAAA,MAClD;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,0BAA0B;AAAA,MAC/C;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,iBAAiB;AAAA,MACtC;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,cAAc;AAAA,MACnC;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,gCAAgC;AAAA,QACjD,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;ACjoBA,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,uBAAAC,4BAA2B;AACpC,SAAS,iBAAAC,sBAAqB;AAC9B;AAAA,EAKI,cAAAC;AAAA,OAEG;AAEA,IAAM,uBACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWAD;AAEG,IAAM,mBAA2B;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,aACI;AAAA,EACJ,UAAU,OAAO,SAAwB,YAAoB;AACzD,UAAM,WAAW;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,QACI,CAAC,SAAS;AAAA,MAAK,CAAC,YACZ,QAAQ,QAAQ,KAAK,YAAY,EAAE,SAAS,OAAO;AAAA,IACvD,GACF;AACE,aAAO;AAAA,IACX;AACA,UAAM,SAAS,QAAQ;AACvB,UAAM,YAAY,MAAM,QAAQ,gBAAgB;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,IACZ;AACA,WAAO,cAAc,cAAc,cAAc;AAAA,EACrD;AAAA,EACA,SAAS,OAAO,SAAwB,YAAoB;AACxD,mBAAe,cAAcE,QAAgC;AACzD,YAAM,sBAAsBJ,gBAAe;AAAA,QACvC,OAAAI;AAAA,QACA,UAAU;AAAA;AAAA,MACd,CAAC;AAED,YAAM,WAAW,MAAMH,qBAAoB;AAAA,QACvC;AAAA,QACA,SAAS;AAAA,QACT,YAAYE,YAAW;AAAA,MAC3B,CAAC;AAED,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,MAAM,QAAQ,aAAa,OAAO;AAEhD,QAAI,MAAM,cAAc,KAAK,GAAG;AAC5B,YAAM,QAAQ,gBAAgB;AAAA,QAC1B,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;AC/VO,IAAM,eAAuB;AAAA,EAChC,MAAM;AAAA,EACN,SAAS,CAAC,gBAAgB,iBAAiB,mBAAmB;AAAA,EAC9D,UAAU,OAAO,UAAyB,aAAqB;AAC3D,WAAO;AAAA,EACX;AAAA,EACA,aACI;AAAA,EACJ,SAAS,OACL,UACA,aACmB;AACnB,WAAO;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,oBAAoB;AAAA,MACzC;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS;AAAA,MAC1C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,eAAe;AAAA,MACpC;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS;AAAA,MAC1C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,4BAA4B;AAAA,MACjD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,qBAAqB;AAAA,MAC1C;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,iCAAiC;AAAA,MACtD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,SAAS;AAAA,MAC9B;AAAA,MACA,EAAE,MAAM,aAAa,SAAS,EAAE,MAAM,GAAG,GAAG,QAAQ,SAAS;AAAA,IACjE;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,WAAW;AAAA,MAChC;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,0BAA0B;AAAA,MAC/C;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS;AAAA,MAC1C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS;AAAA,MAC1C;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,6BAA6B;AAAA,MAClD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,WAAW;AAAA,MAChD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,iBAAiB;AAAA,MACtC;AAAA,MACA,EAAE,MAAM,aAAa,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS,EAAE;AAAA,IACjE;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;ACtOA,SAAS,kBAAAE,uBAAsB;AAC/B,SAAS,uBAAAC,4BAA2B;AACpC,SAAS,iBAAAC,sBAAqB;AAC9B;AAAA,EAKI,cAAAC;AAAA,OAEG;AAEA,IAAM,qBACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYAD;AAEG,IAAM,iBAAyB;AAAA,EAClC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,aACI;AAAA,EACJ,UAAU,OAAO,SAAwB,YAAoB;AACzD,UAAM,SAAS,QAAQ;AACvB,UAAM,YAAY,MAAM,QAAQ,gBAAgB;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,IACZ;AACA,WAAO,cAAc;AAAA,EACzB;AAAA,EACA,SAAS,OAAO,SAAwB,YAAoB;AACxD,mBAAe,YAAYE,QAAgC;AACvD,YAAM,oBAAoBJ,gBAAe;AAAA,QACrC,OAAAI;AAAA,QACA,UAAU;AAAA;AAAA,MACd,CAAC;AAED,YAAM,WAAW,MAAMH,qBAAoB;AAAA,QACvC;AAAA,QACA,SAAS;AAAA,QACT,YAAYE,YAAW;AAAA,MAC3B,CAAC;AAED,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,MAAM,QAAQ,aAAa,OAAO;AAEhD,QAAI,MAAM,YAAY,KAAK,GAAG;AAC1B,YAAM,QAAQ,gBAAgB;AAAA,QAC1B,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;AC9KO,IAAM,aAAqB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU,OAAO,UAAyB,aAAqB;AAC3D,WAAO;AAAA,EACX;AAAA,EACA,aACI;AAAA,EACJ,SAAS,OACL,UACA,aACmB;AACnB,WAAO;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,eAAe;AAAA,MACpC;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,UAAU,QAAQ,OAAO;AAAA,MAC9C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,iBAAiB,QAAQ,OAAO;AAAA,MACrD;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,aAAa,QAAQ,OAAO;AAAA,MACjD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,cAAc,QAAQ,OAAO;AAAA,MAClD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,IAAI,QAAQ,SAAS;AAAA,MAC1C;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,YAAY,QAAQ,OAAO;AAAA,MAChD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,4BAA4B;AAAA,MACjD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,2BAA2B,QAAQ,OAAO;AAAA,MAC/D;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,gBAAgB,QAAQ,OAAO;AAAA,MACpD;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,qBAAqB,QAAQ,OAAO;AAAA,MACzD;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,iBAAiB,QAAQ,OAAO;AAAA,MACrD;AAAA,IACJ;AAAA,IAEA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS,EAAE,MAAM,sBAAsB,QAAQ,OAAO;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AACJ;;;ACvJA,SAAS,kBAAAE,uBAAsB;AAC/B,SAAS,uBAAAC,4BAA2B;AACpC,SAAS,iBAAAC,sBAAqB;AAC9B;AAAA,EAKI,cAAAC;AAAA,OAEG;AAEP,IAAM,yBACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWAD;AAEG,IAAM,qBAA6B;AAAA,EACtC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,aACI;AAAA,EACJ,UAAU,OAAO,SAAwB,YAAoB;AACzD,UAAM,SAAS,QAAQ;AACvB,UAAM,YAAY,MAAM,QAAQ,gBAAgB;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,IACZ;AACA,WAAO,cAAc;AAAA,EACzB;AAAA,EACA,SAAS,OAAO,SAAwB,YAAoB;AACxD,mBAAe,gBAAgBE,QAAgC;AAC3D,YAAM,wBAAwBJ,gBAAe;AAAA,QACzC,OAAAI;AAAA,QACA,UAAU;AAAA;AAAA,MACd,CAAC;AAED,YAAM,WAAW,MAAMH,qBAAoB;AAAA,QACvC;AAAA,QACA,SAAS;AAAA,QACT,YAAYE,YAAW;AAAA,MAC3B,CAAC;AAED,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,MAAM,QAAQ,aAAa,OAAO;AAEhD,QAAI,MAAM,gBAAgB,KAAK,GAAG;AAC9B,YAAM,QAAQ,gBAAgB;AAAA,QAC1B,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;AC3TA,SAAS,kBAAAE,uBAAsB;AAC/B,SAAS,uBAAAC,4BAA2B;AACpC,SAAS,iBAAAC,sBAAqB;AAC9B;AAAA,EAKI,cAAAC;AAAA,OAEG;AAEA,IAAM,uBACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWAD;AAEG,IAAM,mBAA2B;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,aACI;AAAA,EACJ,UAAU,OAAO,SAAwB,YAAoB;AACzD,UAAM,SAAS,QAAQ;AACvB,UAAM,YAAY,MAAM,QAAQ,gBAAgB;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,IACZ;AACA,WAAO,cAAc;AAAA,EACzB;AAAA,EACA,SAAS,OAAO,SAAwB,YAAoB;AACxD,mBAAe,cAAcE,QAAgC;AACzD,YAAM,sBAAsBJ,gBAAe;AAAA,QACvC,OAAAI;AAAA,QACA,UAAU;AAAA;AAAA,MACd,CAAC;AAED,YAAM,WAAWH,qBAAoB;AAAA,QACjC,SAAS;AAAA,QACT;AAAA,QACA,YAAYE,YAAW;AAAA,MAC3B,CAAC;AAED,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,MAAM,QAAQ,aAAa,OAAO;AAEhD,QAAI,MAAM,cAAc,KAAK,GAAG;AAC5B,YAAM,QAAQ,gBAAgB;AAAA,QAC1B,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,QACV;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;AC/JA,SAAS,kBAAAE,uBAAsB;AAC/B,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B;AAAA,EAII,cAAAC;AAAA,OAEG;AAEA,IAAM,cAAc,CAAC,UAAoB;AAC5C,QAAM,iBAAiB,MAClB,QAAQ,EACR,IAAI,CAAC,SAAiB,KAAK,QAAQ,IAAI;AAC5C,QAAM,sBAAsB,eAAe,KAAK,IAAI;AACpD,SAAO;AACX;AAEA,IAAM;AAAA;AAAA,EAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCJ,eAAe,QAAQ,SAAwB,SAAiB;AAC5D,QAAM,QAAQ,MAAM,QAAQ,aAAa,OAAO;AAEhD,QAAM,EAAE,SAAS,OAAO,IAAI;AAE5B,QAAM,UAAUD,gBAAe;AAAA,IAC3B;AAAA,IACA,UAAU,QAAQ,UAAU,WAAW,iBAAiB;AAAA,EAC5D,CAAC;AAED,QAAM,QAAQ,MAAM,oBAAoB;AAAA,IACpC;AAAA,IACA;AAAA,IACA,YAAYC,YAAW;AAAA,EAC3B,CAAC;AAED,QAAM,eAAe,IAAI,cAAc;AAAA,IACnC;AAAA,IACA,WAAW;AAAA,EACf,CAAC;AAED,MAAI,CAAC,OAAO;AACR,WAAO,CAAC;AAAA,EACZ;AAGA,QAAM,gBAAgB,MACjB,OAAO,CAAC,SAAS;AACd,WACI,CAAC,KAAK,iBACN,KAAK,SAAS,UACd,CAAC,KAAK,UACN,KAAK,SACL,KAAK,MAAM,KAAK,MAAM;AAAA,EAE9B,CAAC,EACA,IAAI,CAAC,SAAS,KAAK,KAAK;AAE7B,aAAW,QAAQ,eAAe;AAC9B,UAAM,aAAa,MAAM,aAAa,qBAAqB;AAAA,MACvD,QAAQ;AAAA,MACR;AAAA,MACA,SAAS,EAAE,MAAM,KAAK;AAAA,MACtB;AAAA,MACA,WAAW,KAAK,IAAI;AAAA,IACxB,CAAC;AAED,UAAM,aAAa,aAAa,YAAY,IAAI;AAEhD,UAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AAAA,EAC3D;AACA,SAAO;AACX;AAEO,IAAM,gBAA2B;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU,OACN,SAEA,YACmB;AACnB,UAAM,eAAgB,MAAM,QAAQ,eAAe;AAAA,MAC/C,QAAQ;AAAA,IACZ;AAEA,UAAM,kBAAkB,KAAK,KAAK,QAAQ,sBAAsB,IAAI,CAAC;AAErE,WAAO,eAAe,oBAAoB;AAAA,EAC9C;AAAA,EACA,aACI;AAAA,EACJ;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,wBAAwB;AAAA,QAC7C;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,oBAAoB;AAAA,QACzC;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,cAAc;AAAA,QACnC;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,UAAU;AAAA,QAC/B;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,IACb;AAAA,IACA;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,6BAA6B;AAAA,QAClD;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,6BAA6B;AAAA,QAClD;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,0BAA0B;AAAA,QAC/C;AAAA,MACJ;AAAA,MACA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASb;AAAA,IACA;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOb;AAAA,EACJ;AACJ;;;AClPA,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AACzB,SAAS,8BAA8B;AACvC;AAAA,EAGI,cAAAC;AAAA,OAKG;AAEP,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCtB,eAAeC,SACX,SACA,SACA,OACA,UAAsC,EAAE,gBAAgB,KAAK,GAC9C;AACf,UAAS,MAAM,QAAQ,aAAa,OAAO;AAC3C,QAAM,UAAUF,gBAAe;AAAA,IAC3B;AAAA,IACA,UAAU,QAAQ,UAAU,WAAW,iBAAiB;AAAA,EAC5D,CAAC;AAGD,QAAM,WAAW,MAAM,aAAa;AAAA,IAChC;AAAA,IACA;AAAA,IACA,YAAYC,YAAW;AAAA,EAC3B,CAAC;AAGD,QAAM,UAAU,uBAAuB,QAAQ;AAG/C,QAAM,YAAY,MAAM,SAAS;AAAA,IAC7B;AAAA,IACA,QAAQ,QAAQ;AAAA,IAChB,gBAAgB,QAAQ;AAAA,EAC5B,CAAC;AAGD,QAAM,eAAe,UAChB,IAAI,CAAC,SAAqB;AACvB,UAAM,SAAS,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AACpD,QAAI,QAAQ;AAER,aAAO;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,YAAY,KAAK,WAAW,IAAI,CAAC,cAAc;AAC3C,gBAAM,mBAAmB,OAAO,YAAY,KAAK,QAAM,GAAG,gBAAgB,UAAU,WAAW;AAC/F,iBAAO,mBAAmB,EAAE,GAAG,WAAW,GAAG,iBAAiB,IAAI;AAAA,QACtE,CAAC;AAAA,MACL;AAAA,IACJ;AACA,WAAO;AAAA,EACX,CAAC,EACA,OAAO,OAAO;AAGnB,aAAW,QAAQ,cAAc;AAC7B,UAAM,KAAK,KAAK;AAEhB,QAAI,KAAK,GAAI,QAAO,KAAK;AACzB,UAAM,QAAQ,gBAAgB,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC;AAAA,EAC5D;AAEA,SAAO;AACX;AAEO,IAAM,gBAA2B;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,UAAU,OACN,SACA,YACmB;AAEnB,UAAM,QAAQ,MAAM,SAAS;AAAA,MACzB;AAAA,MACA,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,QAAQ,QAAQ;AAAA,IACpB,CAAC;AACD,WAAO,MAAM,SAAS;AAAA,EAC1B;AAAA,EACA,aACI;AAAA,EACJ,SAAAC;AAAA,EACA,UAAU;AAAA,IACN;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUb;AAAA,IAEA;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS,EAAE,MAAM,sCAAsC;AAAA,QAC3D;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASb;AAAA,IAEA;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASb;AAAA,IAEA;AAAA,MACI,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYT,UAAU;AAAA,QACN;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS;AAAA,YACL,MAAM;AAAA,UACV;AAAA,QACJ;AAAA,MACJ;AAAA,MAEA,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKb;AAAA,EACJ;AACJ;;;ACpTA,IAAM,gBAAgB;AAAA,EAClB;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,UAAU;AAAA,IACV,gBAAgB;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,IAAM,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,IAAM,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,IAAM,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,IAAM,kBAA4B;AAAA,EAC9B,KAAK,OAAO,SAAwB,SAAiB,UAAkB;AACnE,UAAM,UAAU,QAAQ;AACxB,UAAM,YAAY,OAAO,aAAa;AAEtC,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,oBAAoB,MAAM,KAAK,KAAK;AAE1C,UAAM,iBAAiB,MAAM,QAAQ,eAAe,YAAY;AAAA,MAC5D,QAAQ,QAAQ;AAAA,MAChB,OAAO;AAAA,MACP,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ,CAAC;AAED,QAAI,eAAe;AAEnB,eAAW,iBAAiB,gBAAgB;AACxC,YAAM,cAAc,eAAe,SAAS,MAAM,YAAY;AAC9D,UAAI,CAAC,aAAa;AACd;AAAA,MACJ;AAEA,UAAI,cAAc,WAAW,SAAS;AAElC,YAAI,cAAc,KAAK,CAAC,SAAS,YAAY,SAAS,IAAI,CAAC,GAAG;AAC1D,0BAAgB;AAAA,QACpB;AACA,YAAI,YAAY,SAAS,GAAG,GAAG;AAC3B,0BAAgB;AAAA,QACpB;AACA,YAAI,YAAY,KAAK,CAAC,SAAS,YAAY,SAAS,IAAI,CAAC,GAAG;AACxD,0BAAgB;AAAA,QACpB;AAAA,MACJ,OAAO;AACH,YAAI,cAAc,KAAK,CAAC,SAAS,YAAY,SAAS,IAAI,CAAC,GAAG;AAC1D,0BAAgB;AAAA,QACpB;AACA,YAAI,YAAY,SAAS,GAAG,GAAG;AAC3B,0BAAgB;AAAA,QACpB;AAAA,MACJ;AAEA,UAAI,YAAY,SAAS,GAAG,GAAG;AAC3B,wBAAgB;AAAA,MACpB;AAEA,UAAI,cAAc,KAAK,CAAC,SAAS,YAAY,SAAS,IAAI,CAAC,GAAG;AAC1D,wBAAgB;AAAA,MACpB;AAAA,IACJ;AAEA,UAAM,eACF,cACK,OAAO,CAAC,UAAU,gBAAgB,MAAM,QAAQ,EAChD,IAAI,KAAK,cAAc,CAAC;AAEjC,UAAM,cAAc,KAAK;AAAA,MACrB,KAAK,OAAO,IAAI,aAAa,eAAe;AAAA,IAChD;AACA,UAAM,kBAAkB,aAAa,eAAe,WAAW;AAC/D,WAAO,gBAAgB,QAAQ,iBAAiB,SAAS;AAAA,EAC7D;AACJ;;;AClVA;AAAA,EACI;AAAA,EACA,iBAAAC;AAAA,EACA;AAAA,OAEG;AAIP,IAAM,gBAA0B;AAAA,EAC5B,KAAK,OAAO,SAAwB,SAAiB,UAAkB;AACnE,UAAM,qBAAqB,OAAO,oBAAoB,MAAM,GAAG;AAE/D,UAAM,iBAAiB,eAAe;AAAA,MAClC,UAAU;AAAA,MACV,QAAQ,OAAO;AAAA,IACnB,CAAC;AAED,UAAM,aAAa,MAAM,MAAM,SAAS,cAAc;AAEtD,UAAM,gBAAgB,IAAIC,eAAc;AAAA,MACpC;AAAA,MACA,WAAW;AAAA,IACf,CAAC;AAED,UAAM,gBAAgB,CAAC;AAUvB,UAAM,kBAAkB,MAAM,cAAc,YAAY;AAAA,MACpD,QAAQ,QAAQ;AAAA,MAChB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,KAAK,KAAK,IAAI;AAAA,IAClB,CAAC;AAGD,UAAM,WAAW,CAAC,GAAG,eAAe,GAAG,eAAe,EAAE;AAAA,MACpD,CAAC,MAAM,OAAO,SACV,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AAAA,IACxD;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,aAAO;AAAA,IACX;AAEA,UAAM,iBAAiB,YAAY,QAAQ;AAE3C,WAAO,0DACF,QAAQ,iBAAiB,QAAQ,UAAU,IAAI,EAC/C,QAAQ,sBAAsB,cAAc;AAAA,EACrD;AACJ;;;ACxDA,IAAM,eAAyB;AAAA,EAC3B,KAAK,OAAO,UAAyB,UAAkB,WAAmB;AACtE,UAAM,cAAc,oBAAI,KAAK;AAG7B,UAAM,UAAU;AAAA,MACZ,UAAU;AAAA,MACV,WAAW;AAAA,MACX,WAAW;AAAA,IACf;AACA,UAAM,gBAAgB,IAAI,KAAK,eAAe,SAAS,OAAO,EAAE;AAAA,MAC5D;AAAA,IACJ;AACA,WAAO,gCAAgC,aAAa;AAAA,EACxD;AACJ;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACkBO,IAAM,kBAA0B;AAAA,EACnC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,YAAY,CAAC,eAAe,aAAa;AAAA,EACzC,WAAW,CAAC,iBAAiB,cAAc,aAAa;AAC5D;AACA,IAAO,gBAAQ;","names":["state","response","composeContext","generateTrueOrFalse","booleanFooter","ModelClass","state","composeContext","generateTrueOrFalse","booleanFooter","ModelClass","state","composeContext","generateTrueOrFalse","booleanFooter","ModelClass","state","composeContext","generateTrueOrFalse","booleanFooter","ModelClass","state","composeContext","ModelClass","composeContext","ModelClass","handler","MemoryManager","MemoryManager"]}
\ No newline at end of file
diff --git a/packages/plugin-coinbase/src/plugins/commerce.ts b/packages/plugin-coinbase/src/plugins/commerce.ts
index 38ab0875bb4..407e4e9424a 100644
--- a/packages/plugin-coinbase/src/plugins/commerce.ts
+++ b/packages/plugin-coinbase/src/plugins/commerce.ts
@@ -17,7 +17,7 @@ import { type ChargeContent, ChargeSchema, isChargeContent } from "../types";
import { chargeTemplate, getChargeTemplate } from "../templates";
import { getWalletDetails } from "../utils";
import { Coinbase } from "@coinbase/coinbase-sdk";
-
+import { ZodType } from "zod";
const url = "https://api.commerce.coinbase.com/charges";
interface ChargeRequest {
name: string;
@@ -159,7 +159,7 @@ export const createCoinbaseChargeAction: Action = {
runtime,
context,
modelClass: ModelClass.LARGE,
- schema: ChargeSchema,
+ schema: ChargeSchema as ZodType,
});
if (!isChargeContent(chargeDetails.object)) {
throw new Error("Invalid content");
@@ -416,7 +416,7 @@ export const getChargeDetailsAction: Action = {
runtime,
context,
modelClass: ModelClass.LARGE,
- schema: ChargeSchema,
+ schema: ChargeSchema as ZodType,
});
if (!isChargeContent(chargeDetails.object)) {
throw new Error("Invalid content");
diff --git a/packages/plugin-coinmarketcap/package.json b/packages/plugin-coinmarketcap/package.json
index 8bd215b3da0..51da00a6de7 100644
--- a/packages/plugin-coinmarketcap/package.json
+++ b/packages/plugin-coinmarketcap/package.json
@@ -6,7 +6,8 @@
"types": "dist/index.d.ts",
"dependencies": {
"@elizaos/core": "workspace:*",
- "axios": "^1.6.7"
+ "axios": "^1.6.7",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
diff --git a/packages/plugin-di/.npmignore b/packages/plugin-di/.npmignore
deleted file mode 100644
index 078562eceab..00000000000
--- a/packages/plugin-di/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*
-
-!dist/**
-!package.json
-!readme.md
-!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-di/README.md b/packages/plugin-di/README.md
deleted file mode 100644
index bd6eed7f76b..00000000000
--- a/packages/plugin-di/README.md
+++ /dev/null
@@ -1,148 +0,0 @@
-# @elizaos/plugin-di - Dependency Injection Plugin for Eliza
-
-This plugin provides a dependency injection system for Eliza plugins.
-
-## What is Dependency Injection?
-
-Dependency Injection is a design pattern that allows you to inject dependencies into a class or function. This pattern is useful for decoupling components and making your code more modular and testable.
-
-## Examples of How to build a Plugin using Dependency Injection
-
-Check the [example](../_examples/plugin-with-di/) folder for a simple example of how to create a plugin using Dependency Injection.
-
-### Where can I use Dependency Injection?
-
-You can use Dependency Injection in any part of your Eliza plugin, including actions, evaluators, providers, services, and clients.
-
-- Actions: Inject services or providers to interact with external APIs or services. [Example](../_examples/plugin-with-di/src/actions/sampleAction.ts)
-- Evaluators: Inject services or providers to evaluate conditions or perform calculations. [Example](../_examples/plugin-with-di/src/evaluators/sampleEvaluator.ts)
-- Providers: Inject services or providers to provide data or resources. [Example](../_examples/plugin-with-di/src/providers/sampleProvider.ts)
-- Services: Inject other services to perform business logic. [Example](../_examples/plugin-with-di/src/services/sampleService.ts)
-- Clients: Inject services to interact with external APIs or services. Lack of examples, but you can refer to the services example.
-
-## Decorators for Dependency Injection
-
-This plugin provides a set of decorators that you can use to inject dependencies into your classes or functions.
-
-### From inversify
-
-We use the [inversify](https://inversify.io/) library to provide the dependency injection system.
-The following decorators are provided by the [inversify](https://inversify.io/) library.
-
-#### `@injectable`
-
-> Category: Class Decorator
-
-This decorator marks a class as injectable. This means that you can inject this class into other classes using the `@inject` decorator.
-
-```typescript
-import { injectable } from "inversify";
-
-@injectable()
-class SampleClass {
-}
-```
-
-Remember to register the class with the container before injecting it into other classes.
-
-```typescript
-import { globalContainer } from "@elizaos/plugin-di";
-
-// Register the class with the container as a singleton, this means that the class will be instantiated only once.
-globalContainer.bind(SingletonClass).toSelf().inSingletonScope();
-// Register the class with the container as a request context, this means that the class will be instantiated for each request(in this case means each Character).
-globalContainer.bind(CharactorContextClass).toSelf().inRequestScope();
-```
-
-#### `@inject`
-
-> Category: Parameter Decorator
-
-This decorator marks a parameter as an injection target. This means that the parameter will be injected with the appropriate dependency when the class is instantiated.
-
-```typescript
-import { injectable, inject } from "inversify";
-
-@injectable()
-class SampleClass {
- constructor(
- // Inject the SampleDependency as a public property of the class.
- @inject("SampleDependency") public sampleDependency: SampleDependency
- ) {}
-}
-```
-
-### From di plugin (used for BaseInjectableAction)
-
-DI plugin provides abstract classes that you can extend to create Injectable actions.
-And that provides the following decorators to improve the readability of the code.
-
-#### `@property`
-
-> Category: Property Decorator
-
-This decorator is used to define a property in an action content class which will be used to generate the action content object Schema and content description template for LLM object generation.
-
-```typescript
-import { z } from 'zod';
-import { property } from "@elizaos/plugin-di";
-
-class SampleActionContent {
- @property({
- description: "Sample property description",
- schema: z.string(),
- })
- sampleProperty: string;
-}
-```
-
-## Abstract Classes provided by this plugin
-
-This plugin provides the following abstract classes that you can extend to create Injectable classes:
-
-- `BaseInjectableAction`
-- `BaseInjectableEvaluator`
-
-Note: This is optional, you can create your own classes to create injectable actions.
-
-### `BaseInjectableAction`
-
-This abstract class simplify the creation of injectable actions.
-You don't need to think about the template for content generation, it will be generated automatically based on the properties of the content Class.
-What you need to implement is the `execute` method.
-
-```typescript
-import { injectable } from "inversify";
-import { BaseInjectableAction } from "@elizaos/plugin-di";
-
-class SampleActionContent {
- @property({
- description: "Sample property description",
- schema: z.string(),
- })
- property1: string;
-}
-
-@injectable()
-class SampleAction extends BaseInjectableAction {
- constructor() {
- super({
- /** general action constent options */
- contentClass: SampleActionContent,
- });
- }
-
- /**
- * It will be called by `handler` function when the action is triggered.
- */
- async execute(
- content: SampleActionContent | null,
- runtime: IAgentRuntime,
- message: Memory,
- state: State,
- callback?: HandlerCallback
- ): Promise {
- // Your action logic here
- }
-}
-```
diff --git a/packages/plugin-di/biome.json b/packages/plugin-di/biome.json
deleted file mode 100644
index 818716a6219..00000000000
--- a/packages/plugin-di/biome.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json",
- "organizeImports": {
- "enabled": false
- },
- "linter": {
- "enabled": true,
- "rules": {
- "recommended": true,
- "correctness": {
- "noUnusedVariables": "error"
- },
- "suspicious": {
- "noExplicitAny": "error"
- },
- "style": {
- "useConst": "error",
- "useImportType": "off"
- }
- }
- },
- "formatter": {
- "enabled": true,
- "indentStyle": "space",
- "indentWidth": 4,
- "lineWidth": 100
- },
- "javascript": {
- "formatter": {
- "quoteStyle": "single",
- "trailingCommas": "es5"
- }
- },
- "files": {
- "ignore": [
- "dist/**/*",
- "extra/**/*",
- "node_modules/**/*"
- ]
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-di/package.json b/packages/plugin-di/package.json
deleted file mode 100644
index 6adbfe570df..00000000000
--- a/packages/plugin-di/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "@elizaos/plugin-di",
- "version": "0.25.6-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"
- }
- }
- },
- "files": [
- "dist"
- ],
- "dependencies": {
- "@elizaos/core": "workspace:*",
- "inversify": "^6.2.1",
- "reflect-metadata": "^0.2.2",
- "uuid": "11.0.3"
- },
- "devDependencies": {
- "@biomejs/biome": "1.9.4",
- "@types/node": "^20.0.0",
- "@types/uuid": "10.0.0",
- "tsup": "8.3.5",
- "vitest": "2.1.9"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "clean": "rm -rf dist",
- "lint": "biome lint .",
- "lint:fix": "biome check --apply .",
- "format": "biome format .",
- "format:fix": "biome format --write .",
- "test": "vitest run"
- },
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/plugin-di/src/actions/baseInjectableAction.ts b/packages/plugin-di/src/actions/baseInjectableAction.ts
deleted file mode 100644
index 20a09ab8240..00000000000
--- a/packages/plugin-di/src/actions/baseInjectableAction.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-import { injectable, unmanaged } from "inversify";
-import type { z } from "zod";
-import {
- type ActionExample,
- composeContext,
- elizaLogger,
- generateObject,
- type HandlerCallback,
- type IAgentRuntime,
- type Memory,
- ModelClass,
- type State,
-} from "@elizaos/core";
-import {
- type ContentClass,
- createZodSchema,
- loadPropertyDescriptions,
-} from "../decorators";
-import type { ActionOptions, InjectableAction } from "../types";
-import { buildContentOutputTemplate } from "../templates";
-
-// type ActionResult = unknown;
-
-/**
- * Base abstract class for injectable actions
- */
-@injectable()
-export abstract class BaseInjectableAction implements InjectableAction {
- // -------- Properties --------
- public name: string;
- public similes: string[];
- public description: string;
- public examples: ActionExample[][];
- public suppressInitialMessage: boolean;
-
- /**
- * The content class for the action
- */
- protected readonly contentClass: ContentClass;
- /**
- * Optional template for the action, if not provided, it will be generated from the content class
- */
- protected readonly template: string;
- /**
- * Optional content schema for the action, if not provided, it will be generated from the content class
- */
- protected readonly contentSchema: z.ZodSchema;
-
- /**
- * Constructor for the base injectable action
- */
- constructor(@unmanaged() opts: ActionOptions) {
- // Set the action properties
- this.name = opts.name;
- this.similes = opts.similes;
- this.description = opts.description;
- this.examples = opts.examples;
- this.suppressInitialMessage = opts.suppressInitialMessage ?? false; // Default to false
- // Set the content class, template and content schema
- this.contentClass = opts.contentClass;
- this.template = opts.template;
- this.contentSchema = opts.contentSchema;
-
- if (this.contentClass !== undefined) {
- if (this.contentSchema === undefined) {
- this.contentSchema = createZodSchema(this.contentClass);
- }
- if (this.template === undefined) {
- const properties = loadPropertyDescriptions(this.contentClass);
- this.template = buildContentOutputTemplate(
- this.name,
- this.description,
- properties,
- this.contentSchema
- );
- }
- }
- }
-
- // -------- Abstract methods to be implemented by the child class --------
-
- /**
- * Abstract method to execute the action
- * @param content The content object
- * @param callback The callback function to pass the result to Eliza runtime
- */
- abstract execute(
- content: T | null,
- runtime: IAgentRuntime,
- message: Memory,
- state?: State,
- callback?: HandlerCallback
- ): Promise;
-
- // -------- Implemented methods for Eliza runtime --------
-
- /**
- * Default implementation of the validate method
- * You can override this method to add custom validation logic
- *
- * @param runtime The runtime object from Eliza framework
- * @param message The message object from Eliza framework
- * @param state The state object from Eliza framework
- * @returns The validation result
- */
- async validate(
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State
- ): Promise {
- // Default implementation is to return true
- return true;
- }
-
- /**
- * Default implementation of the preparation of action context
- * You can override this method to add custom logic
- *
- * @param runtime The runtime object from Eliza framework
- * @param message The message object from Eliza framework
- * @param state The state object from Eliza framework
- */
- protected async prepareActionContext(
- runtime: IAgentRuntime,
- message: Memory,
- state?: State
- ): Promise {
- // Initialize or update state
- let currentState = state;
- if (!currentState) {
- currentState = (await runtime.composeState(message)) as State;
- } else {
- currentState = await runtime.updateRecentMessageState(currentState);
- }
-
- // Compose context
- return composeContext({ state: currentState, template: this.template });
- }
-
- /**
- * Default method for processing messages
- * You can override this method to add custom logic
- *
- * @param runtime The runtime object from Eliza framework
- * @param message The message object from Eliza framework
- * @param state The state object from Eliza framework
- * @returns The generated content from AI based on the message
- */
- protected async processMessages(
- runtime: IAgentRuntime,
- message: Memory,
- state: State
- ): Promise {
- const actionContext = await this.prepareActionContext(
- runtime,
- message,
- state
- );
-
- if (!actionContext) {
- elizaLogger.error("Failed to prepare action context");
- return null;
- }
-
- // Generate transfer content
- const resourceDetails = await generateObject({
- runtime,
- context: actionContext,
- modelClass: ModelClass.SMALL,
- schema: this.contentSchema,
- });
-
- elizaLogger.debug("Response: ", resourceDetails.object);
-
- // Validate content
- const parsedObj = await this.contentSchema.safeParseAsync(
- resourceDetails.object
- );
- if (!parsedObj.success) {
- elizaLogger.error(
- "Failed to parse content: ",
- JSON.stringify(parsedObj.error?.flatten())
- );
- return null;
- }
- return parsedObj.data;
- }
-
- /**
- * Default Handler function type for processing messages
- * You can override this method to add custom logic
- *
- * @param runtime The runtime object from Eliza framework
- * @param message The message object from Eliza framework
- * @param state The state object from Eliza framework
- * @param options The options object from Eliza framework
- * @param callback The callback function to pass the result to Eliza runtime
- */
- async handler(
- runtime: IAgentRuntime,
- message: Memory,
- state?: State,
- _options?: Record,
- callback?: HandlerCallback
- ): Promise {
- let content: T;
- try {
- content = await this.processMessages(runtime, message, state);
- } catch (err) {
- elizaLogger.error("Error in processing messages:", err.message);
-
- if (callback) {
- await callback?.({
- text: `Unable to process transfer request. Invalid content: ${err.message}`,
- content: {
- error: "Invalid content",
- },
- });
- }
- return null;
- }
-
- try {
- return await this.execute(
- content,
- runtime,
- message,
- state,
- callback
- );
- } catch (err) {
- elizaLogger.error("Error in executing action:", err.message);
- }
- }
-}
diff --git a/packages/plugin-di/src/actions/index.ts b/packages/plugin-di/src/actions/index.ts
deleted file mode 100644
index d1b24f3c0c3..00000000000
--- a/packages/plugin-di/src/actions/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./baseInjectableAction";
diff --git a/packages/plugin-di/src/decorators/content.decorators.ts b/packages/plugin-di/src/decorators/content.decorators.ts
deleted file mode 100644
index f626dad13db..00000000000
--- a/packages/plugin-di/src/decorators/content.decorators.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import "reflect-metadata";
-import { z } from "zod";
-import type { ContentPropertyDescription } from "../types";
-
-const CONTENT_METADATA_KEY = "content:properties";
-
-export type ContentClass = {
- new (...args: unknown[]): T;
- prototype: T;
-};
-
-interface ContentPropertyConfig extends ContentPropertyDescription {
- schema: z.ZodType;
-}
-
-export function property(config: ContentPropertyConfig) {
- return (target: object, propertyKey: string) => {
- const properties =
- Reflect.getMetadata(CONTENT_METADATA_KEY, target) || {};
- properties[propertyKey] = config;
- Reflect.defineMetadata(CONTENT_METADATA_KEY, properties, target);
- };
-}
-
-/**
- * Create a Zod schema from a class decorated with @property
- *
- * @param cls
- * @returns
- */
-export function createZodSchema(cls: ContentClass): z.ZodType {
- const properties: Record =
- Reflect.getMetadata(CONTENT_METADATA_KEY, cls.prototype) || {};
- const schemaProperties = Object.entries(properties).reduce(
- (acc, [key, { schema }]) => {
- acc[key] = schema;
- return acc;
- },
- {} as Record>
- );
- return z.object(schemaProperties) as unknown as z.ZodType;
-}
-
-/**
- * Load the description of each property from a class decorated with @property
- *
- * @param cls
- * @returns
- */
-export function loadPropertyDescriptions(
- cls: ContentClass
-): Record {
- const properties: Record =
- Reflect.getMetadata(CONTENT_METADATA_KEY, cls.prototype) || {};
- return Object.entries(properties).reduce(
- (acc, [key, { description, examples }]) => {
- acc[key] = { description, examples };
- return acc;
- },
- {} as Record
- );
-}
diff --git a/packages/plugin-di/src/decorators/index.ts b/packages/plugin-di/src/decorators/index.ts
deleted file mode 100644
index b292753abd6..00000000000
--- a/packages/plugin-di/src/decorators/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./content.decorators";
diff --git a/packages/plugin-di/src/di.ts b/packages/plugin-di/src/di.ts
deleted file mode 100644
index 180f18b8abe..00000000000
--- a/packages/plugin-di/src/di.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type { Plugin } from "@elizaos/core";
-import { Container, type interfaces } from "inversify";
-import { FACTORIES } from "./symbols";
-import { createPlugin } from "./factories";
-import type { PluginOptions } from "./types";
-
-const globalContainer = new Container();
-
-// ----- Bind to factory functions -----
-
-globalContainer
- .bind>>(FACTORIES.PluginFactory)
- .toFactory, [PluginOptions]>(createPlugin);
-
-export { globalContainer };
diff --git a/packages/plugin-di/src/evaluators/baseInjectableEvaluator.ts b/packages/plugin-di/src/evaluators/baseInjectableEvaluator.ts
deleted file mode 100644
index 2a1a83e0e4e..00000000000
--- a/packages/plugin-di/src/evaluators/baseInjectableEvaluator.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { injectable, unmanaged } from "inversify";
-import type {
- IAgentRuntime,
- EvaluationExample,
- Memory,
- State,
- HandlerCallback,
-} from "@elizaos/core";
-import type { EvaluatorOptions, InjectableEvaluator } from "../types";
-
-/**
- * Base abstract class for injectable actions
- */
-@injectable()
-export abstract class BaseInjectableEvaluator implements InjectableEvaluator {
- // -------- Properties --------
- public alwaysRun: boolean;
- public name: string;
- public similes: string[];
- public description: string;
- public examples: EvaluationExample[];
-
- /**
- * Constructor for the base injectable action
- */
- constructor(@unmanaged() opts: EvaluatorOptions) {
- // Set the action properties
- this.name = opts.name;
- this.similes = opts.similes;
- this.description = opts.description;
- this.examples = opts.examples;
- this.alwaysRun = opts.alwaysRun ?? false; // Default to false
- }
-
- /**
- * Default implementation of the validate method
- * You can override this method to add custom validation logic
- *
- * @param runtime The runtime object from Eliza framework
- * @param message The message object from Eliza framework
- * @param state The state object from Eliza framework
- * @returns The validation result
- */
- async validate(
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State
- ): Promise {
- // Default implementation is to return true
- return true;
- }
-
- /**
- * Handler for the evaluator
- */
- abstract handler(
- runtime: IAgentRuntime,
- message: Memory,
- state?: State,
- options?: Record,
- callback?: HandlerCallback
- ): Promise;
-}
diff --git a/packages/plugin-di/src/evaluators/index.ts b/packages/plugin-di/src/evaluators/index.ts
deleted file mode 100644
index 682ebc23761..00000000000
--- a/packages/plugin-di/src/evaluators/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./baseInjectableEvaluator";
diff --git a/packages/plugin-di/src/factories/charactor.ts b/packages/plugin-di/src/factories/charactor.ts
deleted file mode 100644
index 72f06fb75ed..00000000000
--- a/packages/plugin-di/src/factories/charactor.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { type Character, elizaLogger, type Plugin } from "@elizaos/core";
-import { globalContainer } from "../di";
-import type { PluginFactory } from "../types";
-import { FACTORIES } from "../symbols";
-
-/**
- * Normalize a character by creating all plugins from the character's plugin list using the PluginFactory
- * @param character
- */
-export async function normalizeCharacter(
- character: Character
-): Promise {
- // Use the PluginFactory to import the plugins within the same request for each character
- const createPlugin = globalContainer.get(
- FACTORIES.PluginFactory
- );
-
- const normalizePlugin = async (plugin: any) => {
- if (
- typeof plugin?.name === "string" &&
- typeof plugin?.description === "string"
- ) {
- try {
- const normalized = await createPlugin(plugin);
- elizaLogger.info("Normalized plugin:", normalized.name);
- return normalized;
- } catch (e) {
- elizaLogger.error(
- `Error normalizing plugin: ${plugin.name}`,
- e.message
- );
- }
- }
- return plugin;
- };
-
- let plugins: Plugin[] = [];
- if (character.plugins?.length > 0) {
- const normalizedPlugins = await Promise.all(
- character.plugins.map(normalizePlugin)
- );
- const validPlugins = normalizedPlugins.filter(
- (plugin): plugin is Plugin => plugin !== undefined
- );
- if (validPlugins.length !== character.plugins.length) {
- elizaLogger.warn(
- `Some plugins failed to normalize: ${character.plugins.length - validPlugins.length} failed`
- );
- }
- plugins = validPlugins;
- }
- return Object.assign({}, character, { plugins }) as Character;
-}
diff --git a/packages/plugin-di/src/factories/index.ts b/packages/plugin-di/src/factories/index.ts
deleted file mode 100644
index b7bed48db93..00000000000
--- a/packages/plugin-di/src/factories/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./plugin";
-export * from "./charactor";
diff --git a/packages/plugin-di/src/factories/plugin.ts b/packages/plugin-di/src/factories/plugin.ts
deleted file mode 100644
index bd4b9fc9870..00000000000
--- a/packages/plugin-di/src/factories/plugin.ts
+++ /dev/null
@@ -1,115 +0,0 @@
-import type { interfaces } from "inversify";
-import {
- elizaLogger,
- type Plugin,
-} from "@elizaos/core";
-import type { PluginFactory, PluginOptions } from "../types";
-
-/**
- * Get an instance from the container
- * @param ctx
- * @param item
- * @param type
- * @returns
- */
-async function getInstanceFromContainer(
- ctx: interfaces.Context,
- item: T | (new (...args: any[]) => T),
- type: string
-): Promise {
- if (typeof item === "function") {
- try {
- return await ctx.container.getAsync(item);
- } catch (e) {
- elizaLogger.error(
- `Error normalizing ${type}: ${(item as Function).name}`,
- e.message
- );
- return undefined;
- }
- }
- return item;
-}
-
-/**
- * Create a plugin factory
- */
-export function createPlugin(ctx: interfaces.Context): PluginFactory {
- return async (opts: PluginOptions): Promise => {
- // Create a new plugin object
- const plugin: Plugin = {
- name: opts.name,
- description: opts.description,
- };
-
- // Handle providers - if provided, map through them
- // For class constructors (functions), get instance from container
- // For regular providers, use as-is
- if (typeof opts.providers !== "undefined") {
- plugin.providers = (
- await Promise.all(
- opts.providers.map((provider) =>
- getInstanceFromContainer(
- ctx,
- provider,
- "provider"
- )
- )
- )
- ).filter(Boolean); // Filter out undefined providers
- }
-
- // Handle actions - if provided, map through them
- // For class constructors (functions), get instance from container
- // For regular actions, use as-is
- if (typeof opts.actions !== "undefined") {
- plugin.actions = (
- await Promise.all(
- opts.actions.map((action) =>
- getInstanceFromContainer(ctx, action, "action")
- )
- )
- ).filter(Boolean); // Filter out undefined actions
- }
-
- // Handle evaluators - if provided, map through them
- // For class constructors (functions), get instance from container
- // For regular evaluators, use as-is
- if (typeof opts.evaluators !== "undefined") {
- plugin.evaluators = (
- await Promise.all(
- opts.evaluators.map((evaluator) =>
- getInstanceFromContainer(
- ctx,
- evaluator,
- "evaluator"
- )
- )
- )
- ).filter(Boolean); // Filter out undefined evaluators
- }
-
- // Handle services - if provided, assign directly
- if (typeof opts.services !== "undefined") {
- plugin.services = (
- await Promise.all(
- opts.services.map((service) =>
- getInstanceFromContainer(ctx, service, "service")
- )
- )
- )
- }
-
- // Handle clients - if provided, assign directly
- if (typeof opts.clients !== "undefined") {
- plugin.clients = (
- await Promise.all(
- opts.clients.map((client) =>
- getInstanceFromContainer(ctx, client, "client")
- )
- )
- )
- }
- return plugin;
- };
-}
diff --git a/packages/plugin-di/src/index.ts b/packages/plugin-di/src/index.ts
deleted file mode 100644
index c45defee124..00000000000
--- a/packages/plugin-di/src/index.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-// Export all files for Eliza on Flow
-export * as symbols from "./symbols";
-export * from "./decorators";
-export * from "./types";
-export * from "./factories";
-export * from "./templates";
-export * from "./di";
-export * from "./actions";
-export * from "./evaluators";
diff --git a/packages/plugin-di/src/symbols.ts b/packages/plugin-di/src/symbols.ts
deleted file mode 100644
index 4db415f2901..00000000000
--- a/packages/plugin-di/src/symbols.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * Factory Symbols used in the library
- */
-export const FACTORIES = {
- PluginFactory: Symbol.for("PluginFactory"),
-};
diff --git a/packages/plugin-di/src/templates.ts b/packages/plugin-di/src/templates.ts
deleted file mode 100644
index 3fbc014b089..00000000000
--- a/packages/plugin-di/src/templates.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import { z } from "zod";
-import type { ContentPropertyDescription } from "./types";
-
-/**
- * build the content output template
- * @param properties The properties of the content
- * @param schema The Zod schema of the content
- */
-export function buildContentOutputTemplate(
- actionName: string,
- actionDesc: string,
- properties: Record,
- schema: z.ZodType
-): string {
- let propDesc = "";
- Object.entries(properties).forEach(([key, { description, examples }]) => {
- propDesc += `- Field **"${key}"**: ${description}.`;
- if (examples?.length > 0) {
- propDesc += " Examples or Rules for this field:\n";
- } else {
- propDesc += "\n";
- }
- examples?.forEach((example, index) => {
- propDesc += ` ${index + 1}. ${example}\n`;
- });
- });
- return `Perform the action: "${actionName}".
-Action description is "${actionDesc}".
-
-### TASK: Extract the following details about the requested action
-
-${propDesc}
-
-Use null for any values that cannot be determined.
-
-Respond with a JSON markdown block containing only the extracted values with this structure:
-
-\`\`\`json
-${zodSchemaToJson(schema)}
-\`\`\`
-
-Here are the recent user messages for context:
-{{recentMessages}}
-`;
-}
-
-/**
- * Convert a Zod schema to JSON
- * @param schema Zod schema
- * @returns JSON string
- */
-export function zodSchemaToJson(schema: z.ZodType): string {
- if (schema instanceof z.ZodObject) {
- const shape = schema.shape;
- const properties = Object.entries(shape).map(([key, value]) => {
- return `"${key}": ${zodTypeToJson(value as z.ZodType)}`;
- });
- return `{\n${properties.join(",\n")}\n}`;
- }
- return "";
-}
-
-/**
- * Convert a Zod type to JSON
- * @param schema Zod type
- */
-function zodTypeToJson(schema: z.ZodType): string {
- if (schema instanceof z.ZodNullable || schema instanceof z.ZodOptional) {
- return `${zodTypeToJson(schema._def.innerType)} | null`;
- }
- if (schema instanceof z.ZodUnion) {
- return schema._def.options.map(zodTypeToJson).join(" | ");
- }
- if (schema instanceof z.ZodString) {
- return "string";
- }
- if (schema instanceof z.ZodNumber) {
- return "number";
- }
- if (schema instanceof z.ZodBoolean) {
- return "boolean";
- }
- if (schema instanceof z.ZodArray) {
- return `${zodTypeToJson(schema._def.type)}[]`;
- }
- if (schema instanceof z.ZodObject) {
- return zodSchemaToJson(schema);
- }
- return "any";
-}
diff --git a/packages/plugin-di/src/tests/content.decorators.test.ts b/packages/plugin-di/src/tests/content.decorators.test.ts
deleted file mode 100644
index e2a963b5dab..00000000000
--- a/packages/plugin-di/src/tests/content.decorators.test.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { describe, it, expect } from "vitest";
-import { z } from "zod";
-import {
- property,
- createZodSchema,
- loadPropertyDescriptions,
-} from "../../src/decorators/content.decorators";
-
-describe("Content Decorators", () => {
- class TestClass {
- @property({
- description: "Test description",
- examples: ["example1", "example2"],
- schema: z.string(),
- })
- testProperty!: string;
-
- @property({
- description: "Number property",
- examples: ["example3", "example4"],
- schema: z.number().optional(),
- })
- numberProperty?: number;
- }
-
- describe("createZodSchema", () => {
- it("should create a zod schema from decorated properties", () => {
- const schema = createZodSchema(TestClass);
- expect(
- schema.safeParse({ testProperty: "valid", numberProperty: 123 })
- .success
- ).toBe(true);
- expect(
- schema.safeParse({
- testProperty: 123,
- numberProperty: "invalid",
- }).success
- ).toBe(false);
- });
- });
-
- describe("loadPropertyDescriptions", () => {
- it("should load property descriptions correctly", () => {
- const descriptions = loadPropertyDescriptions(TestClass);
- expect(descriptions).toEqual({
- testProperty: {
- description: "Test description",
- examples: ["example1", "example2"],
- },
- numberProperty: {
- description: "Number property",
- examples: ["example3", "example4"],
- },
- });
- });
- });
-
- describe("property decorator", () => {
- it("should store metadata correctly", () => {
- const instance = new TestClass();
- expect(instance.testProperty).toBeUndefined();
- expect(instance.numberProperty).toBeUndefined();
- });
- });
-});
diff --git a/packages/plugin-di/src/tests/normalizeCharacter.test.ts b/packages/plugin-di/src/tests/normalizeCharacter.test.ts
deleted file mode 100644
index 3acef684c39..00000000000
--- a/packages/plugin-di/src/tests/normalizeCharacter.test.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import { describe, it, expect, beforeAll } from "vitest";
-
-import { type Character, defaultCharacter } from "@elizaos/core";
-
-import { normalizeCharacter } from "../../src/index";
-import samplePlugin from "../../src/_examples/samplePlugin";
-
-describe("Normalize Character", () => {
- let normalizedCharacter: Character;
-
- beforeAll(async () => {
- const sampleCharacter = Object.assign({}, defaultCharacter, {
- plugins: [samplePlugin],
- });
- normalizedCharacter = await normalizeCharacter(sampleCharacter);
- });
-
- // Add these test cases:
- it("should handle empty plugins array", async () => {
- const emptyPluginsChar = { ...defaultCharacter, plugins: [] };
- const normalized = await normalizeCharacter(emptyPluginsChar);
- expect(normalized.plugins).toEqual([]);
- });
-
- describe("Elements", () => {
- it("should have a valid character", () => {
- expect(normalizedCharacter).toBeTypeOf("object");
- expect(normalizedCharacter.name).toBe("Eliza");
- });
-
- it("should have a valid plugins array", () => {
- expect(Array.isArray(normalizedCharacter.plugins)).toBe(true);
- expect(normalizedCharacter.plugins.length).toBe(1);
-
- const normalizedPlugin = normalizedCharacter.plugins[0];
- expect(normalizedPlugin.name).toBe(samplePlugin.name);
- expect(normalizedPlugin.description).toBe(samplePlugin.description);
- });
-
- it("should have same providers as the sample plugin", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
- expect(normalizedPlugin.providers?.length).toBe(1);
- });
-
- it("should have same actions as the sample plugin", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
- expect(normalizedPlugin.actions?.length).toBe(1);
- });
-
- it("should have same evaluators as the sample plugin", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
- expect(normalizedPlugin.evaluators?.length).toBe(1);
- });
- });
-
- describe("Normalized Plugin", () => {
- it("should be a valid plugin with sample provider", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
-
- const normalizedProvider = normalizedPlugin.providers[0];
- expect(normalizedProvider).toBeTypeOf("object");
- expect(normalizedProvider.get).toBeTypeOf("function");
- });
-
- it("should have a valid evaluator", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
-
- const normalizedEvaluator = normalizedPlugin.evaluators[0];
- expect(normalizedEvaluator).toBeTypeOf("object");
- expect(normalizedEvaluator.name).toBeTypeOf("string");
- expect(normalizedEvaluator.description).toBeTypeOf("string");
- expect(Array.isArray(normalizedEvaluator.examples)).toBe(true);
- expect(normalizedEvaluator.handler).toBeTypeOf("function");
- expect(normalizedEvaluator.validate).toBeTypeOf("function");
- expect(normalizedEvaluator.alwaysRun).toBeTypeOf("boolean");
- });
-
- it("should have a valid action", () => {
- const normalizedPlugin = normalizedCharacter.plugins[0];
-
- const normalizedAction = normalizedPlugin.actions[0];
- expect(normalizedAction).toBeTypeOf("object");
- expect(normalizedAction.name).toBeTypeOf("string");
- expect(normalizedAction.description).toBeTypeOf("string");
- expect(Array.isArray(normalizedAction.examples)).toBe(true);
- expect(normalizedAction.handler).toBeTypeOf("function");
- expect(normalizedAction.validate).toBeTypeOf("function");
- });
- });
-});
diff --git a/packages/plugin-di/src/types.ts b/packages/plugin-di/src/types.ts
deleted file mode 100644
index 3945c6f1461..00000000000
--- a/packages/plugin-di/src/types.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-import type {
- Action,
- Client,
- Evaluator,
- HandlerCallback,
- IAgentRuntime,
- Memory,
- Plugin,
- Provider,
- Service,
- State,
-} from "@elizaos/core";
-import type { ContentClass } from "./decorators";
-import type { z } from "zod";
-
-// ----------- Interfaces for Injectable Providers and Actions, etc -----------
-
-/**
- * Interface of Injectable Provider
- */
-export interface InjectableProvider extends Provider {
- /**
- * Get the instance of the provider related to Eliza runtime
- * @param runtime The runtime object from Eliza framework
- */
- getInstance(runtime: IAgentRuntime): Promise;
-}
-
-/**
- * Action options
- */
-export type ActionOptions = Pick<
- Action,
- "name" | "similes" | "description" | "examples" | "suppressInitialMessage"
-> & {
- contentClass: ContentClass;
- template?: string;
- contentSchema?: z.ZodSchema;
-};
-
-/**
- * Interface of Injectable Action
- */
-export interface InjectableAction extends Action {
- /**
- * Execute the action
- * @param content The content from processMessages
- * @param callback The callback function to pass the result to Eliza runtime
- */
- execute(
- content: T | null,
- runtime: IAgentRuntime,
- message: Memory,
- state?: State,
- callback?: HandlerCallback
- ): Promise;
-}
-
-/**
- * Evaluator options
- */
-export type EvaluatorOptions = Pick<
- Evaluator,
- "name" | "similes" | "description" | "examples" | "alwaysRun"
->;
-
-/**
- * Interface of Injectable Evaluator
- */
-export type InjectableEvaluator = Evaluator;
-
-/**
- * The Class of Injectable Object
- */
-export type InjectableObjectClass = new (
- ...args: Args
-) => T;
-
-/**
- * The Class of Injectable Provider
- */
-export type InjectableProviderClass = InjectableObjectClass | Provider, Args>
-
-/**
- * The Class of Injectable Action
- */
-export type InjectableActionClass = InjectableObjectClass | Action, Args>
-
-/**
- * The Class of Injectable Evaluator
- */
-export type InjectableEvaluatorClass = InjectableObjectClass
-
-/**
- * The Class of Injectable Service
- */
-export type InjectableServiceClass = InjectableObjectClass;
-
-/**
- * The Class of Injectable Client
- */
-export type InjectableClientClass = InjectableObjectClass;
-
-// ----------- Interfaces for Plugin -----------
-
-/**
- * Plugin options
- */
-export type PluginOptions = Pick<
- Plugin,
- "name" | "description"
-> & {
- /** Optional actions */
- actions?: (Action | InjectableActionClass)[];
- /** Optional providers */
- providers?: (Provider | InjectableProviderClass)[];
- /** Optional evaluators */
- evaluators?: (Evaluator | InjectableEvaluatorClass)[];
- /** Optional services */
- services?: (Service | InjectableServiceClass)[];
- /** Optional clients */
- clients?: (Client | InjectableClientClass)[];
-};
-
-/**
- * Factory type for creating a plugin
- */
-export type PluginFactory = (opts: PluginOptions) => Promise;
-
-// ----------- Interfaces for Content Properties or actions -----------
-
-export interface ContentPropertyDescription {
- description: string;
- examples?: string[];
-}
diff --git a/packages/plugin-di/tsconfig.build.json b/packages/plugin-di/tsconfig.build.json
deleted file mode 100644
index e3eb058310d..00000000000
--- a/packages/plugin-di/tsconfig.build.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "sourceMap": true,
- "inlineSources": true,
- "sourceRoot": "/"
- }
-}
diff --git a/packages/plugin-di/tsconfig.json b/packages/plugin-di/tsconfig.json
deleted file mode 100644
index 2d631d5a0f9..00000000000
--- a/packages/plugin-di/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "extends": "../core/tsconfig.json",
- "compilerOptions": {
- "outDir": "dist",
- "rootDir": "src",
- "types": [
- "node"
- ],
- "experimentalDecorators": true,
- "emitDecoratorMetadata": true,
- },
- "include": [
- "src/**/*.ts"
- ]
-}
diff --git a/packages/plugin-di/tsup.config.ts b/packages/plugin-di/tsup.config.ts
deleted file mode 100644
index df391c664db..00000000000
--- a/packages/plugin-di/tsup.config.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { defineConfig } from "tsup";
-
-export default defineConfig({
- entry: ["src/index.ts"],
- outDir: "dist",
- sourcemap: true,
- clean: true,
- format: ["esm"], // Using ES Modules format
- external: [
- "dotenv", // Externalize dotenv to prevent bundling
- "fs", // Externalize fs to use Node.js built-in module
- "path", // Externalize other built-ins if necessary
- "https",
- "http",
- "agentkeepalive",
- "safe-buffer",
- // Add other modules you want to externalize
- "inversify",
- "reflect-metadata",
- "zod",
- "uuid",
- ],
-});
diff --git a/packages/plugin-echochambers/src/index.ts b/packages/plugin-echochambers/src/index.ts
index f69d702943a..4d2a7c6b463 100644
--- a/packages/plugin-echochambers/src/index.ts
+++ b/packages/plugin-echochambers/src/index.ts
@@ -5,6 +5,7 @@ import type { EchoChamberConfig } from "./types";
import { validateEchoChamberConfig } from "./environment";
export const EchoChamberClientInterface: Client = {
+ name: "echochamber",
async start(runtime: IAgentRuntime) {
try {
// Validate configuration before starting
@@ -46,34 +47,36 @@ export const EchoChamberClientInterface: Client = {
`✅ EchoChambers client successfully started for character ${runtime.character.name}`
);
- return { client, interactionClient };
+ return {
+ client,
+ interactionClient,
+ async stop(runtime: IAgentRuntime) {
+ try {
+ elizaLogger.warn("Stopping EchoChambers client...");
+
+ // Get client instances if they exist
+ const clients = (runtime as any).clients?.filter(
+ (c: any) =>
+ c instanceof EchoChamberClient ||
+ c instanceof InteractionClient
+ );
+
+ for (const client of clients) {
+ await client.stop();
+ }
+
+ elizaLogger.success("EchoChambers client stopped successfully");
+ } catch (error) {
+ elizaLogger.error("Error stopping EchoChambers client:", error);
+ throw error;
+ }
+ },
+ };
} catch (error) {
elizaLogger.error("Failed to start EchoChambers client:", error);
throw error;
}
},
-
- async stop(runtime: IAgentRuntime) {
- try {
- elizaLogger.warn("Stopping EchoChambers client...");
-
- // Get client instances if they exist
- const clients = (runtime as any).clients?.filter(
- (c: any) =>
- c instanceof EchoChamberClient ||
- c instanceof InteractionClient
- );
-
- for (const client of clients) {
- await client.stop();
- }
-
- elizaLogger.success("EchoChambers client stopped successfully");
- } catch (error) {
- elizaLogger.error("Error stopping EchoChambers client:", error);
- throw error;
- }
- },
};
export const echoChambersPlugin: Plugin = {
diff --git a/packages/plugin-email-automation/.npmignore b/packages/plugin-email-automation/.npmignore
deleted file mode 100644
index 21cd28349f4..00000000000
--- a/packages/plugin-email-automation/.npmignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*
-
-!dist/**
-!package.json
-!readme.md
-!tsup.config.ts
-
-src/
-tsconfig.json
-.eslintrc.js
-.prettierrc
\ No newline at end of file
diff --git a/packages/plugin-email-automation/README.md b/packages/plugin-email-automation/README.md
deleted file mode 100644
index c8e39f2643d..00000000000
--- a/packages/plugin-email-automation/README.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# @elizaos/plugin-email-automation
-
-AI-powered email automation plugin for Eliza that intelligently detects email-worthy conversations and handles generation/delivery. This is not perfect and is simply a solid starting point, and I would encourage any and all contributions!
-
-## Features
-
-### 1. Intelligent Detection
-- Partnership opportunity detection
-- Technical discussion recognition
-- Business proposal identification
-- Follow-up requirement analysis
-
-### 2. AI-Powered Generation
-- Structured email formatting
-- Context-aware content
-- Professional tone maintenance
-- Technical detail inclusion
-
-## Configuration
-
-### AI Email Automation Setup
-```typescript
-# Required
-RESEND_API_KEY= # Your Resend API key
-DEFAULT_TO_EMAIL= # Default recipient
-DEFAULT_FROM_EMAIL= # Default sender
-
-# Optional Settings
-EMAIL_AUTOMATION_ENABLED=true # Enable AI detection. If this is enabled, the plugin will automatically detect email-worthy conversations and handle generation/delivery and only that.
-EMAIL_EVALUATION_PROMPT= # Custom detection criteria for shouldEmail
-```
-
-### Basic Usage
-```typescript
-import { emailAutomationPlugin } from '@elizaos/plugin-email-automation';
-
-// Add to your Eliza configuration
-{
- plugins: [emailAutomationPlugin],
- settings: {
- EMAIL_AUTOMATION_ENABLED: true,
- // ... other settings
- }
-}
-```
-
-### Email Template Example
-The plugin uses Handlebars for templating. Here's an example output:
-
-```handlebars
-{{!-- email-template.hbs --}}
-
-
{{subject}}
-
-
- {{background}}
-
-
-
-
Key Points
-
- {{#each keyPoints}}
- - {{this}}
- {{/each}}
-
-
-
- {{#if technicalDetails}}
-
-
Technical Details
-
- {{#each technicalDetails}}
- - {{this}}
- {{/each}}
-
-
- {{/if}}
-
-
-
Next Steps
-
- {{#each nextSteps}}
- - {{this}}
- {{/each}}
-
-
-
-
-
-
-
-```
-
-This template produces professional emails like the example shown in the image above. You can customize the template by:
-1. Creating your own `.hbs` file
-2. Registering it with the template manager
-3. Specifying your template when sending emails
-
-## Development
-
-```bash
-# Installation
-pnpm install
-
-# Testing
-pnpm test
-pnpm test:watch
-pnpm test:coverage
-
-# Building
-pnpm build
-```
-
-## Testing Coverage
-- Unit tests for all services
-- Integration tests for end-to-end flows
-- Throttling and rate limiting tests
-- Error handling scenarios
-- Mock providers for testing
-
-## Architecture
-```mermaid
-graph TD
- A[Email Trigger] --> B[Automation Service]
- B --> C{AI Evaluation}
- C -->|Yes| D[Generation Service]
- D --> E[Email Service]
- E --> F[Resend Provider]
- F --> G[Delivery]
-```
-
-Architecture Overview:
-- Resend Provider support (more to come)
-- AI-powered email detection
-- Context-aware content generation
-- Professional template rendering
-
-## Credits
-
-This plugin integrates with and builds upon:
-
-- [Resend](https://resend.com): Modern email API for developers
-- [Handlebars](https://handlebarsjs.com): Templating engine for email formatting
-
-For more information about Resend capabilities:
-- [Resend Documentation](https://resend.com/docs)
-- [Email API Reference](https://resend.com/docs/api-reference/introduction)
-- [Developer Portal](https://resend.com/overview)
-
-## License
-This plugin is part of the Eliza project. See the main project repository for license information.
\ No newline at end of file
diff --git a/packages/plugin-email-automation/biome.json b/packages/plugin-email-automation/biome.json
deleted file mode 100644
index 818716a6219..00000000000
--- a/packages/plugin-email-automation/biome.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json",
- "organizeImports": {
- "enabled": false
- },
- "linter": {
- "enabled": true,
- "rules": {
- "recommended": true,
- "correctness": {
- "noUnusedVariables": "error"
- },
- "suspicious": {
- "noExplicitAny": "error"
- },
- "style": {
- "useConst": "error",
- "useImportType": "off"
- }
- }
- },
- "formatter": {
- "enabled": true,
- "indentStyle": "space",
- "indentWidth": 4,
- "lineWidth": 100
- },
- "javascript": {
- "formatter": {
- "quoteStyle": "single",
- "trailingCommas": "es5"
- }
- },
- "files": {
- "ignore": [
- "dist/**/*",
- "extra/**/*",
- "node_modules/**/*"
- ]
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/package.json b/packages/plugin-email-automation/package.json
deleted file mode 100644
index 232a69a11e5..00000000000
--- a/packages/plugin-email-automation/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "name": "@elizaos/plugin-email-automation",
- "version": "0.25.6-alpha.1",
- "description": "AI-powered email automation plugin for Eliza",
- "type": "module",
- "main": "./dist/index.js",
- "module": "./dist/index.js",
- "types": "./dist/index.d.ts",
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "tsc --declaration --emitDeclarationOnly false --noEmit false --allowImportingTsExtensions false",
- "clean": "rimraf dist",
- "dev": "tsc -w",
- "lint": "biome lint .",
- "lint:fix": "biome check --apply .",
- "format": "biome format .",
- "format:fix": "biome format --write .",
- "test": "vitest run",
- "test:watch": "vitest",
- "test:coverage": "vitest run --coverage"
- },
- "dependencies": {
- "@elizaos/core": "workspace:*",
- "handlebars": "^4.7.8",
- "resend": "^2.0.0"
- },
- "devDependencies": {
- "@biomejs/biome": "1.9.4",
- "@types/jest": "^29.0.0",
- "@types/node": "^20.0.0",
- "jest": "^29.0.0",
- "rimraf": "^5.0.0",
- "ts-jest": "^29.0.0",
- "typescript": "^5.0.0",
- "vitest": "^3.0.0"
- },
- "jest": {
- "preset": "ts-jest",
- "testEnvironment": "node",
- "moduleNameMapper": {
- "^(\\.{1,2}/.*)\\.js$": "$1",
- "^@elizaos/core$": "/../core/dist"
- },
- "transform": {
- "^.+\\.(ts|tsx)$": "ts-jest"
- },
- "testMatch": [
- "**/__tests__/**/*.test.(ts|js)"
- ],
- "moduleFileExtensions": [
- "ts",
- "tsx",
- "js",
- "jsx",
- "json",
- "node"
- ]
- },
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/plugin-email-automation/src/actions/generateEmailAction.ts b/packages/plugin-email-automation/src/actions/generateEmailAction.ts
deleted file mode 100644
index 4df01f06016..00000000000
--- a/packages/plugin-email-automation/src/actions/generateEmailAction.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-import { type Action, type IAgentRuntime, type Memory, type State, type Content, elizaLogger, type HandlerCallback, ServiceType } from "@elizaos/core";
-import { EmailGenerationService } from "../services/emailGenerationService";
-import { EmailPromptSchema } from "../schemas/emailGenerationSchema";
-import type { EmailPrompt } from "../types";
-import type { GeneratedEmailContent } from "../types";
-
-interface EmailState extends State {
- generatedEmail?: GeneratedEmailContent;
- tone?: EmailPrompt['tone'];
- format?: EmailPrompt['format'];
- language?: string;
-}
-
-export const generateEmailAction: Action = {
- name: "generate_email",
- description: "Generate an email based on user requirements. Use this when the user wants to compose or write an email, or when they provide content that should be formatted as an email.",
- similes: ["write an email", "compose an email", "draft an email"],
- examples: [
- [{ user: "user1", content: { text: "Can you write an email to my team about the project update?" } }],
- [{ user: "user1", content: { text: "Draft a professional email about the upcoming meeting" } }]
- ],
-
- async validate(_runtime: IAgentRuntime, message: Memory): Promise {
- const content = message.content as Content;
- const isValid = content?.text?.toLowerCase().includes('email') ?? false;
- elizaLogger.info('Generate validation:', {
- isValid,
- messageId: message.id,
- content: content?.text,
- userId: message.userId
- });
- return isValid;
- },
-
- async handler(
- runtime: IAgentRuntime,
- message: Memory,
- state?: EmailState,
- _options: { [key: string]: unknown } = {},
- callback?: HandlerCallback
- ): Promise {
- try {
- // Properly compose state first
- state = (await runtime.composeState(message)) as EmailState;
-
- elizaLogger.info('Generate handler started', {
- messageId: message.id,
- hasState: !!state,
- stateKeys: state ? Object.keys(state) : [],
- content: message.content.text
- });
-
- const emailService = new EmailGenerationService(runtime);
- const content = message.content as Content;
-
- const prompt: EmailPrompt = {
- content: content.text,
- tone: (state?.tone as EmailPrompt['tone']) || 'professional',
- format: (state?.format as EmailPrompt['format']) || 'paragraph',
- language: state?.language?.toString() || 'English'
- };
-
- elizaLogger.info('Generating email with prompt:', { prompt });
-
- const generatedEmail = await emailService.generateEmail(prompt);
- elizaLogger.info('Email generated:', {
- hasSubject: !!generatedEmail.subject,
- blockCount: generatedEmail.blocks.length,
- metadata: generatedEmail.metadata
- });
-
- if (state) {
- state.generatedEmail = {
- subject: generatedEmail.subject,
- blocks: generatedEmail.blocks,
- metadata: generatedEmail.metadata
- };
-
- // Update state in memory system
- await runtime.updateRecentMessageState(state);
-
- elizaLogger.info('State updated and persisted', {
- stateKeys: Object.keys(state),
- hasGeneratedEmail: !!state.generatedEmail,
- emailSubject: generatedEmail.subject
- });
- } else {
- elizaLogger.warn('No state object available for storing email');
- }
-
- // Add preview message for Discord
- if (callback) {
- const preview = `📧 **Generated Email Preview**
-
-**Subject:** ${generatedEmail.subject}
-**To:** [Recipient's email will be set when sending]
-───────────────
-
-${generatedEmail.blocks.map(block => {
- switch(block.type) {
- case 'heading':
- return `## ${block.content}\n\n`;
- case 'paragraph':
- return `${block.content}\n\n`;
- case 'bulletList':
- return Array.isArray(block.content)
- ? `${block.content.map(item => `• ${item}`).join('\n')}\n\n`
- : `• ${block.content}\n\n`;
- default:
- return `${block.content}\n\n`;
- }
-}).join('')}`;
-
- // Simply send the preview without any buttons
- callback({
- text: preview,
- content: {
- preview: true,
- email: generatedEmail
- }
- });
- }
-
- elizaLogger.info('Email generation completed successfully');
-
- // write email to state
- state.generatedEmail = {
- subject: generatedEmail.subject,
- blocks: generatedEmail.blocks,
- metadata: generatedEmail.metadata
- };
-
- // Update state again after modification
- await runtime.updateRecentMessageState(state);
-
- return true;
- } catch (error) {
- elizaLogger.error('Failed to generate email:', error);
- if (callback) {
- callback({
- text: 'Failed to generate email. Please try again.',
- content: { error: 'Generation failed' }
- });
- }
- return false;
- }
- }
-};
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/actions/sendEmailAction.ts b/packages/plugin-email-automation/src/actions/sendEmailAction.ts
deleted file mode 100644
index 76b138a4ce7..00000000000
--- a/packages/plugin-email-automation/src/actions/sendEmailAction.ts
+++ /dev/null
@@ -1,184 +0,0 @@
-import { type Action, type IAgentRuntime, type Memory, type State, type Content, elizaLogger, type HandlerCallback } from "@elizaos/core";
-import { EmailService } from "../services/emailService";
-import type { EmailPrompt, GeneratedEmailContent } from "../types";
-import { EmailGenerationService } from "../services/emailGenerationService";
-
-// Define the state interface
-interface EmailState extends State {
- generatedEmail?: GeneratedEmailContent;
-}
-
-export const sendEmailAction: Action = {
- name: "send_email",
- description: "Send an email using the configured email service",
- similes: ["send email", "send the email", "deliver email"],
- examples: [
- [{ user: "user1", content: { text: "Please send this email to the team" } }],
- [{ user: "user1", content: { text: "Send the email to john@example.com" } }]
- ],
-
- async validate(_runtime: IAgentRuntime, message: Memory): Promise {
- const content = message.content as Content;
- const text = content?.text?.toLowerCase() || '';
-
- // Strip Discord mention if present
- const cleanText = text.replace(/<@[0-9]+>\s*/, '').trim();
-
- // Check for send command
- const startsWithSend = /^(please\s+)?send(\s+an?)?\s+email/.test(cleanText);
- const hasEmailAddress = /[\w.-]+@[\w.-]+\.\w+/.test(text);
-
- elizaLogger.info('Send validation:', {
- originalText: text,
- cleanText,
- startsWithSend,
- hasEmailAddress,
- messageId: message.id,
- userId: message.userId
- });
-
- return startsWithSend && hasEmailAddress;
- },
-
- async handler(
- runtime: IAgentRuntime,
- message: Memory,
- state?: EmailState,
- _options: { [key: string]: unknown } = {},
- callback?: HandlerCallback
- ): Promise {
- try {
- elizaLogger.info('Handler invoked for sendEmailAction', {
- messageId: message.id,
- userId: message.userId
- });
-
- // Initialize or update state
- let currentState = state;
- if (!currentState) {
- currentState = (await runtime.composeState(message)) as State;
- } else {
- currentState = await runtime.updateRecentMessageState(currentState);
- }
-
-
- elizaLogger.info('Send handler started', {
- messageId: message.id,
- hasState: !!currentState,
- hasGeneratedEmail: !!currentState?.generatedEmail
- });
-
- // Check if we have a generated email
- if (!currentState?.generatedEmail) {
- elizaLogger.info('No email content found, generating first...');
- const emailService = new EmailGenerationService(runtime);
- const content = message.content as Content;
-
- const prompt: EmailPrompt = {
- content: content.text,
- tone: 'professional',
- format: 'paragraph',
- language: 'English'
- };
-
- const generatedEmail = await emailService.generateEmail(prompt);
- currentState.generatedEmail = {
- subject: generatedEmail.subject,
- blocks: generatedEmail.blocks,
- metadata: generatedEmail.metadata
- };
-
- // Update state with new email
- await runtime.updateRecentMessageState(currentState);
- }
-
- // Get raw secrets string first
- const secretsStr = runtime.getSetting('secrets');
- elizaLogger.debug('Got secrets configuration', {
- hasSecrets: !!secretsStr
- });
-
- if (!secretsStr) {
- elizaLogger.error('Secrets configuration not found');
- if (callback) {
- callback({
- text: 'Email configuration not found.',
- content: { error: 'Missing secrets' }
- });
- }
- return false;
- }
-
- // Parse secrets string to object
- const secrets = typeof secretsStr === 'string' ? JSON.parse(secretsStr) : secretsStr;
-
- // Extract email address from message
- const emailMatch = message.content.text.match(/[\w.-]+@[\w.-]+\.\w+/);
- elizaLogger.info('Extracted email address', {
- hasMatch: !!emailMatch,
- email: emailMatch ? emailMatch[0] : null
- });
-
- if (!emailMatch) {
- elizaLogger.error('No valid email address found');
- if (callback) {
- callback({
- text: 'Please provide a valid email address.',
- content: { error: 'Invalid email' }
- });
- }
- return false;
- }
-
- // Validate email content
- if (!state?.generatedEmail) {
- elizaLogger.error('No generated email content available', {
- stateContent: state ? Object.keys(state) : []
- });
- if (callback) {
- callback({
- text: 'Please generate an email first using the generate command.',
- content: { error: 'No content' }
- });
- }
- return false;
- }
-
- const emailService = new EmailService({
- RESEND_API_KEY: secrets.RESEND_API_KEY,
- OWNER_EMAIL: secrets.OWNER_EMAIL || secrets.DEFAULT_FROM_EMAIL
- });
-
- elizaLogger.info('Sending email', {
- to: emailMatch[0],
- hasSubject: !!state.generatedEmail.subject,
- blockCount: state.generatedEmail.blocks.length
- });
-
- await emailService.sendEmail(state.generatedEmail, {
- from: secrets.OWNER_EMAIL || 'onboarding@resend.dev',
- to: [emailMatch[0]]
- });
-
- elizaLogger.info('Email sent successfully');
- if (callback) {
- callback({
- text: `Email sent successfully to ${emailMatch[0]}!`,
- content: { success: true }
- });
- }
-
- return true;
-
- } catch (error) {
- elizaLogger.error('Failed to handle email action:', error);
- if (callback) {
- callback({
- text: 'Failed to send email. Please try again.',
- content: { error: 'Send failed' }
- });
- }
- return false;
- }
- }
-};
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/evaluators/emailEvaluator.ts b/packages/plugin-email-automation/src/evaluators/emailEvaluator.ts
deleted file mode 100644
index 11a3ec72dc6..00000000000
--- a/packages/plugin-email-automation/src/evaluators/emailEvaluator.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { type Evaluator, type Memory, type IAgentRuntime, elizaLogger } from "@elizaos/core";
-import { EmailAutomationService } from "../services/emailAutomationService";
-
-export const emailEvaluator: Evaluator = {
- name: "EMAIL_AUTOMATION",
- description: "Evaluates messages for potential email triggers",
- similes: [
- "Checks if a message warrants sending an email",
- "Monitors conversation for email-worthy interactions",
- "Evaluates if email follow-up is needed"
- ],
- alwaysRun: true,
- examples: [{
- context: "User expresses interest in business opportunity",
- messages: [{
- user: "user123",
- content: {
- text: "I'd like to discuss a potential partnership"
- }
- }],
- outcome: "Should trigger email automation"
- }],
- validate: async () => true,
- handler: async (runtime: IAgentRuntime, message: Memory) => {
- try {
- const emailService = runtime.getService(EmailAutomationService.serviceType) as EmailAutomationService;
- if (!emailService) {
- elizaLogger.warn("📧 Email automation service not available");
- return;
- }
-
- await emailService.evaluateMessage(message);
- } catch (error) {
- elizaLogger.error("📧 Error in email evaluator:", error);
- }
- }
-};
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/index.ts b/packages/plugin-email-automation/src/index.ts
deleted file mode 100644
index 6e1da66ff22..00000000000
--- a/packages/plugin-email-automation/src/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { Plugin } from "@elizaos/core";
-import { EmailAutomationService } from "./services/emailAutomationService";
-
-export const emailAutomationPlugin: Plugin = {
- name: "email-automation",
- description: "AI-powered email automation plugin for Eliza",
- services: [new EmailAutomationService()],
- clients: [],
- evaluators: [],
- providers: [],
-};
-
-export default emailAutomationPlugin;
diff --git a/packages/plugin-email-automation/src/providers/errors.ts b/packages/plugin-email-automation/src/providers/errors.ts
deleted file mode 100644
index 0ce37d12571..00000000000
--- a/packages/plugin-email-automation/src/providers/errors.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export class EmailProviderError extends Error {
- constructor(
- public provider: string,
- public originalError: unknown,
- public context?: Record
- ) {
- super(`Error in ${provider} provider: ${originalError}`);
- this.name = 'EmailProviderError';
- }
-}
-
-// Export the factory function
-export const createEmailProviderError = (
- provider: string,
- error: unknown,
- context?: Record
-): EmailProviderError => new EmailProviderError(provider, error, context);
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/providers/resend.ts b/packages/plugin-email-automation/src/providers/resend.ts
deleted file mode 100644
index bd3eb72ef3e..00000000000
--- a/packages/plugin-email-automation/src/providers/resend.ts
+++ /dev/null
@@ -1,116 +0,0 @@
-import { Resend } from "resend";
-import { elizaLogger } from "@elizaos/core";
-import type {
- EmailOptions,
- EmailResponse,
- EmailProviderError,
- EmailProviderResponse
-} from "../types";
-import { createEmailProviderError } from './errors';
-
-export class ResendProvider {
- private client: Resend;
- private readonly retryAttempts = 3;
- private readonly retryDelay = 1000; // ms
-
- constructor(apiKey: string) {
- this.client = new Resend(apiKey);
- }
-
- async sendEmail(options: EmailOptions): Promise {
- let lastError: Error | null = null;
-
- for (let attempt = 1; attempt <= this.retryAttempts; attempt++) {
- try {
- const response = await this.client.emails.send({
- from: options.from,
- to: options.to,
- subject: options.subject,
- html: options.html || options.body,
- text: options.text,
- bcc: options.bcc,
- cc: options.cc,
- reply_to: options.replyTo,
- headers: options.headers,
- attachments: options.attachments,
- tags: options.tags
- });
-
- if (!response.data?.id) {
- throw new Error('Missing response data from Resend');
- }
-
- elizaLogger.debug('Email sent successfully', {
- id: response.data.id,
- attempt
- });
-
- return {
- id: response.data.id,
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- };
-
- } catch (error) {
- lastError = error as Error;
- elizaLogger.error(`Resend attempt ${attempt} failed:`, {
- error,
- options: {
- to: options.to,
- subject: options.subject
- }
- });
-
- if (this.shouldRetry(error) && attempt < this.retryAttempts) {
- await this.delay(attempt * this.retryDelay);
- continue;
- }
- break;
- }
- }
-
- throw createEmailProviderError(
- 'resend',
- lastError as Error,
- {
- attempts: this.retryAttempts,
- lastAttemptAt: new Date().toISOString()
- }
- );
- }
-
- private shouldRetry(error: unknown): boolean {
- if (error instanceof Error) {
- // Retry on network errors or rate limits
- return error.message.includes('network') ||
- error.message.includes('rate limit') ||
- error.message.includes('timeout');
- }
- return false;
- }
-
- private delay(ms: number): Promise {
- return new Promise(resolve => setTimeout(resolve, ms));
- }
-
- async validateConfig(): Promise {
- try {
- // Try to get account info or similar lightweight call
- await this.client.emails.send({
- from: 'test@resend.dev',
- to: 'validate@resend.dev',
- subject: 'Configuration Test',
- text: 'Testing configuration'
- });
- return true;
- } catch (error) {
- if (error instanceof Error &&
- error.message.includes('unauthorized')) {
- return false;
- }
- // Other errors might indicate valid config but other issues
- return true;
- }
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/schemas/emailGenerationSchema.ts b/packages/plugin-email-automation/src/schemas/emailGenerationSchema.ts
deleted file mode 100644
index 11dd064235c..00000000000
--- a/packages/plugin-email-automation/src/schemas/emailGenerationSchema.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { z } from "zod";
-
-// Define the block types we need for structure
-export const EmailBlockTypeEnum = z.enum([
- 'paragraph',
- 'bulletList',
- 'heading',
- 'callout',
- 'signature',
- 'banner'
-]);
-
-// Make metadata more flexible
-export const EmailMetadataSchema = z.object({
- tone: z.string().describe('The overall tone of the email'),
- intent: z.string().describe('The primary purpose of the email'),
- priority: z.enum(['low', 'medium', 'high']).describe('The priority level of the email'),
- language: z.string().optional().describe('The language to use for the email')
-});
-
-export const EmailBlockSchema = z.object({
- type: EmailBlockTypeEnum,
- content: z.union([z.string(), z.array(z.string())]),
- metadata: z.object({
- style: z.string().optional(),
- className: z.string().optional(),
- importance: z.enum(['high', 'medium', 'low']).optional()
- }).optional()
-});
-
-export const EmailPromptSchema = z.object({
- content: z.string(),
- format: z.enum(['bullet', 'paragraph']).optional(),
- tone: z.string().optional(),
- language: z.string().optional(),
- style: z.string().optional()
-});
-
-export const EmailGenerationSchema = z.object({
- name: z.literal('generateEmail'),
- parameters: z.object({
- subject: z.string().min(1).max(100).describe('The email subject line'),
- blocks: z.array(EmailBlockSchema).describe('The content blocks making up the email body'),
- metadata: EmailMetadataSchema.describe('Metadata about the email')
- })
-});
-
-export const formatBlock = (block: EmailBlock): string => {
- if (typeof block.content === 'string') {
- return block.content;
- }
-
- switch (block.type) {
- case "paragraph":
- case "heading":
- case "callout":
- case "banner":
- return block.content.toString();
- case "bulletList":
- return block.content.map(item => `• ${item}`).join("\n");
- case "signature":
- return `\n--\n${block.content.join("\n")}`;
- default:
- return "";
- }
-};
-
-// Export types
-export type EmailBlock = z.infer;
-export type EmailMetadata = z.infer;
-export type EmailGeneration = z.infer;
-export type EmailPrompt = z.infer;
diff --git a/packages/plugin-email-automation/src/services/__tests__/contextBuilder.test.ts b/packages/plugin-email-automation/src/services/__tests__/contextBuilder.test.ts
deleted file mode 100644
index 96319bdf6cd..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/contextBuilder.test.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { EmailAutomationService } from '../emailAutomationService';
-
-describe('Context Builder', () => {
- let service: EmailAutomationService;
-
- beforeEach(() => {
- service = new EmailAutomationService();
- });
-
- describe('State Composition', () => {
- it('should handle missing state gracefully', async () => {
- const mockRuntime = {
- getSetting: vi.fn(),
- composeState: vi.fn().mockResolvedValue(null)
- } as any;
-
- await service.initialize(mockRuntime);
- const context = await (service as any).buildContext({
- userId: 'test',
- content: { text: 'message' }
- });
-
- expect(context.state).toBeNull();
- expect(context.metadata).toEqual({});
- });
-
- it('should include conversation history', async () => {
- const mockRuntime = {
- getSetting: vi.fn(),
- composeState: vi.fn().mockResolvedValue({
- previousMessages: [
- { content: { text: 'msg1' } },
- { content: { text: 'msg2' } }
- ]
- })
- } as any;
-
- await service.initialize(mockRuntime);
- const context = await (service as any).buildContext({
- userId: 'test',
- content: { text: 'current' }
- });
-
- expect(context.state.previousMessages).toHaveLength(2);
- });
- });
-
- describe('Metadata Handling', () => {
- it('should merge metadata correctly', async () => {
- const mockRuntime = {
- getSetting: vi.fn(),
- composeState: vi.fn().mockResolvedValue({
- metadata: {
- source: 'chat',
- priority: 'high'
- }
- })
- } as any;
-
- await service.initialize(mockRuntime);
- const context = await (service as any).buildContext({
- userId: 'test',
- content: { text: 'message' }
- });
-
- expect(context.metadata).toEqual({
- source: 'chat',
- priority: 'high'
- });
- });
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailAutomationService.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailAutomationService.test.ts
deleted file mode 100644
index 52e50062dd8..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailAutomationService.test.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { describe, it, expect, vi } from 'vitest';
-import { EmailAutomationService } from '../emailAutomationService';
-import { generateText } from '@elizaos/core';
-
-// Mock the core generateText function
-vi.mock('@elizaos/core', async () => ({
- ...await vi.importActual('@elizaos/core'),
- generateText: vi.fn()
-}));
-
-describe('EmailAutomationService', () => {
- it('should detect partnership opportunities', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({
- metadata: {},
- previousMessages: []
- })
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
-
- // Mock the generateText response
- (generateText as any).mockResolvedValueOnce('[EMAIL] Valid opportunity');
-
- // Mock the email generation and sending
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- const result = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Partnership proposal with significant details' }
- } as any);
-
- expect(generateText).toHaveBeenCalled();
- expect(result).toBe(true);
- });
-
- it('should ignore casual messages', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({
- metadata: {},
- previousMessages: []
- })
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
- (generateText as any).mockResolvedValueOnce('[SKIP] General chat');
-
- const result = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'gm' }
- } as any);
- expect(result).toBe(false);
- });
-
- it('should handle missing settings gracefully', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- return null;
- }),
- composeState: vi.fn()
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
-
- await expect(service.evaluateMessage({
- content: { text: 'test' }
- } as any)).rejects.toThrow('Missing required email configuration');
- });
-
- it('should build context correctly', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({
- metadata: { test: true },
- previousMessages: ['msg1', 'msg2']
- })
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
- (generateText as any).mockResolvedValueOnce('[EMAIL] Test');
-
- await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Test message' }
- } as any);
-
- expect(mockRuntime.composeState).toHaveBeenCalledWith(
- expect.objectContaining({
- content: { text: 'Test message' }
- })
- );
- });
-
- it('should use custom prompt when provided', async () => {
- const customPrompt = 'Custom evaluation prompt';
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- if (key === 'EMAIL_EVALUATION_PROMPT') return customPrompt;
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({
- metadata: {},
- previousMessages: []
- })
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
- (generateText as any).mockResolvedValueOnce('[EMAIL] Test');
-
- await service.evaluateMessage({
- content: { text: 'Test message' }
- } as any);
-
- expect(generateText).toHaveBeenCalledWith(
- expect.objectContaining({
- context: expect.stringContaining(customPrompt)
- })
- );
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailGenerationService.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailGenerationService.test.ts
deleted file mode 100644
index 0a188272986..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailGenerationService.test.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { describe, expect, it, vi, beforeEach } from 'vitest';
-import { IAgentRuntime, ModelClass, elizaLogger, generateObject } from '@elizaos/core';
-import { EmailGenerationService } from '../emailGenerationService';
-import { EmailGenerationSchema } from '../../schemas/emailGenerationSchema';
-
-// Mock the generateObject function
-vi.mock('@elizaos/core', async () => {
- const actual = await vi.importActual('@elizaos/core');
- return {
- ...actual,
- generateObject: vi.fn(),
- elizaLogger: {
- debug: vi.fn(),
- error: vi.fn()
- }
- };
-});
-
-describe('EmailGenerationService', () => {
- let service: EmailGenerationService;
- let mockRuntime: IAgentRuntime;
-
- beforeEach(() => {
- mockRuntime = {
- // Minimal mock implementation
- } as unknown as IAgentRuntime;
-
- service = new EmailGenerationService(mockRuntime);
- vi.clearAllMocks();
- });
-
- it('should generate structured email content', async () => {
- const mockEmailContent = {
- subject: 'Test Subject',
- blocks: [{
- type: 'paragraph',
- content: 'Test content',
- metadata: {}
- }],
- metadata: {
- tone: 'professional',
- intent: 'inform',
- priority: 'medium'
- }
- };
-
- (generateObject as ReturnType).mockResolvedValueOnce({
- object: {
- name: 'generateEmail',
- parameters: mockEmailContent
- }
- });
-
- const result = await service.generateEmail({
- content: 'Write a test email',
- tone: 'professional'
- });
-
- expect(generateObject).toHaveBeenCalledWith(expect.objectContaining({
- runtime: mockRuntime,
- context: expect.any(String),
- modelClass: ModelClass.LARGE,
- schema: EmailGenerationSchema,
- schemaName: 'generateEmail',
- schemaDescription: "Generate a structured email"
- }));
-
- expect(result).toEqual(mockEmailContent);
- });
-
- it('should handle AI generation errors', async () => {
- const testError = new Error('AI generation failed');
- (generateObject as ReturnType).mockRejectedValueOnce(testError);
-
- await expect(async () => {
- await service.generateEmail({ content: 'test' });
- }).rejects.toThrow('AI generation failed');
-
- expect(elizaLogger.error).toHaveBeenCalled();
- });
-
- it('should validate input options', async () => {
- await expect(async () => {
- await service.generateEmail({ content: '' });
- }).rejects.toThrow();
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailParser.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailParser.test.ts
deleted file mode 100644
index 2b5cb667f98..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailParser.test.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import { describe, it, expect, beforeEach, vi } from 'vitest';
-import { EmailAutomationService } from '../emailAutomationService';
-
-describe('Email Parser', () => {
- let service: EmailAutomationService;
-
- beforeEach(() => {
- service = new EmailAutomationService();
- });
-
- describe('Section Parsing', () => {
- it('should handle missing sections gracefully', () => {
- const result = (service as any).parseFormattedEmail(`
- Subject: Test Email
-
- Background:
- This is a test.
- `);
-
- expect(result).toEqual({
- subject: 'Test Email',
- background: 'This is a test.',
- keyPoints: [],
- nextSteps: []
- });
- });
-
- it('should parse complex technical details', () => {
- const result = (service as any).parseFormattedEmail(`
- Subject: Technical Discussion
-
- Background:
- Project overview.
-
- Technical Details:
- • Architecture: Microservices
- • Stack: Node.js, TypeScript
- • Database: PostgreSQL
-
- Next Steps:
- 1. Review architecture
- 2. Schedule follow-up
- `);
-
- expect(result.technicalDetails).toHaveLength(3);
- expect(result.technicalDetails[0]).toContain('Architecture');
- expect(result.nextSteps).toHaveLength(2);
- });
-
- it('should handle malformed input', () => {
- // Mock the parseFormattedEmail method to throw an error
- vi.spyOn(service as any, 'parseFormattedEmail').mockImplementation(() => {
- throw new Error('Failed to parse email format');
- });
-
- expect(() => (service as any).parseFormattedEmail('Invalid format'))
- .toThrow('Failed to parse email format');
- });
- });
-
- describe('Content Validation', () => {
- it('should validate required sections', () => {
- const result = (service as any).parseFormattedEmail(`
- Subject: Test
-
- Background:
- Test background.
-
- Key Points:
- • Point 1
- • Point 2
- `);
-
- expect(result.subject).toBe('Test');
- expect(result.background).toBeTruthy();
- expect(result.keyPoints).toHaveLength(2);
- });
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailService.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailService.test.ts
deleted file mode 100644
index 01c917ee66c..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailService.test.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { describe, expect, it, vi, beforeEach, afterEach, Mock } from 'vitest';
-import { EmailService } from '../emailService';
-import { elizaLogger } from '@elizaos/core';
-import { ResendProvider } from '../../providers/resend';
-import { EmailTemplateManager } from '../emailTemplateManager';
-
-// Mock the providers and dependencies
-vi.mock('../../providers/resend', () => ({
- ResendProvider: vi.fn().mockImplementation(() => ({
- sendEmail: vi.fn().mockImplementation(() => Promise.resolve({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- }))
- }))
-}));
-vi.mock('../emailTemplateManager');
-vi.mock('@elizaos/core', () => ({
- elizaLogger: {
- debug: vi.fn(),
- error: vi.fn(),
- info: vi.fn()
- }
-}));
-
-describe('EmailService', () => {
- let service: EmailService;
- let mockProvider: { sendEmail: Mock };
-
- beforeEach(() => {
- // Reset all mocks before each test
- vi.clearAllMocks();
-
- service = new EmailService({
- RESEND_API_KEY: 'test_key',
- OWNER_EMAIL: 'test@example.com'
- });
-
- // Get the mock provider instance
- mockProvider = (service as any).provider;
- });
-
- afterEach(() => {
- vi.unstubAllEnvs();
- });
-
- describe('Email Sending', () => {
- it('should send email successfully', async () => {
- mockProvider.sendEmail.mockResolvedValueOnce({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- });
-
- const result = await service.sendEmail({
- subject: 'Test Email',
- blocks: [{ type: 'paragraph', content: 'Test content' }],
- metadata: {
- tone: 'professional',
- intent: 'inform',
- priority: 'medium'
- }
- }, {
- to: 'recipient@example.com',
- from: 'test@example.com'
- });
-
- expect(result).toEqual({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: expect.any(Date)
- });
- });
-
- it('should handle multiple recipients', async () => {
- mockProvider.sendEmail.mockResolvedValueOnce({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- });
-
- const result = await service.sendEmail({
- subject: 'Test Email',
- blocks: [{ type: 'paragraph', content: 'Test content' }],
- metadata: {
- tone: 'professional',
- intent: 'inform',
- priority: 'medium'
- }
- }, {
- to: ['recipient1@example.com', 'recipient2@example.com'],
- from: ''
- });
-
- expect(result).toEqual({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: expect.any(Date)
- });
- });
-
- it('should handle custom headers and tags', async () => {
- mockProvider.sendEmail.mockResolvedValueOnce({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- });
-
- const result = await service.sendEmail({
- subject: 'Test Email',
- blocks: [{ type: 'paragraph', content: 'Test content' }],
- metadata: {
- tone: 'professional',
- intent: 'inform',
- priority: 'medium'
- }
- }, {
- to: 'recipient@example.com',
- headers: { 'X-Custom': 'value' },
- tags: [{ name: 'category', value: 'test' }],
- from: ''
- });
-
- expect(result).toEqual({
- id: 'test_id',
- provider: 'resend',
- status: 'success',
- timestamp: expect.any(Date)
- });
- });
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailTemplateManager.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailTemplateManager.test.ts
deleted file mode 100644
index 7578b172c7b..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailTemplateManager.test.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { describe, it, expect, beforeEach } from 'vitest';
-import { EmailTemplateManager } from '../emailTemplateManager';
-import { EmailTemplate, EmailBlock } from '../../types';
-
-describe('EmailTemplateManager', () => {
- let manager: EmailTemplateManager;
-
- beforeEach(() => {
- manager = new EmailTemplateManager();
- });
-
- describe('Template Management', () => {
- it('should provide default template', () => {
- const template = manager.getTemplate('default');
- expect(template).toBeDefined();
- expect(template.id).toBe('default');
- expect(template.html).toContain('email-container');
- });
-
- it('should provide notification template', () => {
- const template = manager.getTemplate('notification');
- expect(template).toBeDefined();
- expect(template.id).toBe('notification');
- expect(template.html).toContain('notification-header');
- });
-
- it('should fall back to default template for unknown templates', () => {
- const template = manager.getTemplate('nonexistent');
- expect(template.id).toBe('default');
- });
-
- it('should register custom template', () => {
- const customTemplate: EmailTemplate = {
- id: 'custom',
- name: 'Custom Template',
- html: '{{content}}
',
- variables: ['content'],
- defaultStyle: { default: '' }
- };
-
- manager.registerTemplate(customTemplate);
- const retrieved = manager.getTemplate('custom');
- expect(retrieved).toEqual(customTemplate);
- });
-
- it('should reject invalid template registration', () => {
- expect(() => manager.registerTemplate({
- id: '',
- name: 'Invalid',
- html: '',
- variables: [],
- defaultStyle: { default: '' }
- })).toThrow('Invalid template: missing required fields (id, html, variables)');
- });
- });
-
- describe('Template Rendering', () => {
- it('should format blocks correctly', () => {
- const rendered = manager.renderBlock({
- type: 'paragraph',
- content: 'Test content'
- });
-
- expect(rendered).toContain('');
- expect(rendered).toContain('Test content
');
- });
-
- it('should format bullet lists correctly', () => {
- const rendered = manager.renderBlock({
- type: 'bulletList',
- content: ['Item 1', 'Item 2']
- });
-
- expect(rendered).toContain('');
- expect(rendered).toContain('- Item 1
');
- expect(rendered).toContain('- Item 2
');
- });
- });
-
- describe('Styles', () => {
- it('should include default styles', () => {
- const styles = manager.getDefaultStyles();
- expect(styles).toContain('.email-container');
- expect(styles).toContain('.heading');
- });
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/emailThrottling.test.ts b/packages/plugin-email-automation/src/services/__tests__/emailThrottling.test.ts
deleted file mode 100644
index 9919cc46107..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/emailThrottling.test.ts
+++ /dev/null
@@ -1,181 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { EmailAutomationService } from '../emailAutomationService';
-import { generateText } from '@elizaos/core';
-
-// Mock the core generateText function
-vi.mock('@elizaos/core', async () => ({
- ...await vi.importActual('@elizaos/core'),
- generateText: vi.fn()
-}));
-
-describe('Email Throttling', () => {
- let service: EmailAutomationService;
-
- beforeEach(() => {
- service = new EmailAutomationService();
- });
-
- it('should respect throttle settings', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- if (key === 'EMAIL_THROTTLE_MS') return '5000';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({})
- } as any;
-
- await service.initialize(mockRuntime);
-
- // First message
- await service.evaluateMessage({
- content: { text: 'First message' }
- } as any);
-
- // Second message within throttle window
- const result = await service.evaluateMessage({
- content: { text: 'Second message' }
- } as any);
-
- expect(result).toBe(false);
- });
-
- it('should allow messages after throttle period', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- if (key === 'EMAIL_THROTTLE_MS') return '100';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({})
- } as any;
-
- const service = new EmailAutomationService();
- await service.initialize(mockRuntime);
-
- // Mock generateText to return [EMAIL] for the second call
- (generateText as any)
- .mockResolvedValueOnce('[SKIP] First')
- .mockResolvedValueOnce('[EMAIL] Second');
-
- // Mock handleEmailTrigger
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // First message
- await service.evaluateMessage({
- content: { text: 'First message' }
- } as any);
-
- // Wait for throttle to expire
- await new Promise(resolve => setTimeout(resolve, 150));
-
- // Should allow next message
- const result = await service.evaluateMessage({
- content: { text: 'Later message' }
- } as any);
-
- expect(result).toBe(true);
- });
-
- describe('Edge Cases', () => {
- it('should handle zero throttle time', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_THROTTLE_MS') return '0';
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({})
- } as any;
-
- await service.initialize(mockRuntime);
-
- // Mock shouldSendEmail to return true
- (service as any).shouldSendEmail = vi.fn().mockResolvedValue(true);
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // Both messages should process
- const result1 = await service.evaluateMessage({
- content: { text: 'First' }
- } as any);
- const result2 = await service.evaluateMessage({
- content: { text: 'Second' }
- } as any);
-
- expect(result1).toBe(true);
- expect(result2).toBe(true);
- });
-
- it('should handle negative throttle time', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_THROTTLE_MS') return '-1000'; // Negative throttle
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({})
- } as any;
-
- await service.initialize(mockRuntime);
-
- // Mock generateText to return [EMAIL]
- (generateText as any).mockResolvedValueOnce('[EMAIL] Test message');
-
- // Mock handleEmailTrigger
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- const result = await service.evaluateMessage({
- content: { text: 'test' }
- } as any);
-
- // Should treat negative throttle as zero throttle
- expect(result).toBe(true);
- });
- });
-
- describe('Reset Behavior', () => {
- it('should reset throttle after service reinitialization', async () => {
- const mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({})
- } as any;
-
- await service.initialize(mockRuntime);
- (service as any).shouldSendEmail = vi.fn().mockResolvedValue(true);
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // Send first message
- await service.evaluateMessage({
- content: { text: 'test' }
- } as any);
-
- // Reinitialize service
- await service.initialize(mockRuntime);
-
- // Should work immediately after reinitialization
- const result = await service.evaluateMessage({
- content: { text: 'test' }
- } as any);
-
- expect(result).toBe(true);
- });
- });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/__tests__/integration.test.ts b/packages/plugin-email-automation/src/services/__tests__/integration.test.ts
deleted file mode 100644
index eb046545a6d..00000000000
--- a/packages/plugin-email-automation/src/services/__tests__/integration.test.ts
+++ /dev/null
@@ -1,183 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { EmailAutomationService } from '../emailAutomationService';
-import { generateText } from '@elizaos/core';
-
-// Mock the core generateText function
-vi.mock('@elizaos/core', async () => ({
- ...await vi.importActual('@elizaos/core'),
- generateText: vi.fn()
-}));
-
-describe('Email Integration', () => {
- let service: EmailAutomationService;
- let mockRuntime: any;
-
- beforeEach(() => {
- mockRuntime = {
- getSetting: vi.fn((key: string) => {
- if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- if (key === 'RESEND_API_KEY') return 'test_key';
- if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- return null;
- }),
- composeState: vi.fn().mockResolvedValue({
- metadata: {},
- previousMessages: []
- })
- };
-
- service = new EmailAutomationService();
- vi.clearAllMocks();
- });
-
- describe('Basic Flow', () => {
- it('should handle conversation flow', async () => {
- await service.initialize(mockRuntime);
-
- // Mock the email generation chain
- (service as any).shouldSendEmail = vi.fn()
- .mockResolvedValueOnce(false) // First message
- .mockResolvedValueOnce(true); // Second message
-
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // First message should be skipped
- const result1 = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Hi there' }
- } as any);
- expect(result1).toBe(false);
-
- // Second message should trigger email
- const result2 = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Partnership proposal with significant details' }
- } as any);
- expect(result2).toBe(true);
- });
-
- it('should handle error recovery', async () => {
- await service.initialize(mockRuntime);
-
- // Mock shouldSendEmail to first throw error, then succeed
- (service as any).shouldSendEmail = vi.fn()
- .mockRejectedValueOnce(new Error('Network error'))
- .mockResolvedValueOnce(true);
-
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // First attempt should fail gracefully
- const result1 = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Test message' }
- } as any);
- expect(result1).toBe(false);
-
- // Second attempt should succeed
- const result2 = await service.evaluateMessage({
- userId: 'test-user',
- agentId: 'test-agent',
- roomId: 'test-room',
- content: { text: 'Test message' }
- } as any);
- expect(result2).toBe(true);
- });
-
- it('should handle multiple message sequences', async () => {
- await service.initialize(mockRuntime);
-
- const shouldSendEmailMock = vi.fn()
- .mockResolvedValueOnce(false) // Initial greeting
- .mockResolvedValueOnce(false) // Small talk
- .mockResolvedValueOnce(true) // Business proposal
- .mockResolvedValueOnce(false); // Follow-up
-
- (service as any).shouldSendEmail = shouldSendEmailMock;
- (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- const messages = [
- 'Hello there',
- 'How are you?',
- 'We have a business proposal worth $1M',
- 'Thanks for your time'
- ];
-
- const results = await Promise.all(
- messages.map(text =>
- service.evaluateMessage({
- content: { text }
- } as any)
- )
- );
-
- expect(results).toEqual([false, false, true, false]);
- expect(shouldSendEmailMock).toHaveBeenCalledTimes(4);
- });
- });
-
- describe('Error Handling', () => {
- it('should handle missing email service', async () => {
- mockRuntime.getSetting = vi.fn().mockReturnValue(null);
- await service.initialize(mockRuntime);
-
- await expect(service.evaluateMessage({
- content: { text: 'test' }
- } as any)).rejects.toThrow('Missing required email configuration');
- });
-
- it('should handle template rendering errors', async () => {
- await service.initialize(mockRuntime);
-
- (service as any).shouldSendEmail = vi.fn().mockResolvedValue(true);
- (service as any).handleEmailTrigger = vi.fn().mockRejectedValue(
- new Error('Template error')
- );
-
- const result = await service.evaluateMessage({
- content: { text: 'test' }
- } as any);
-
- expect(result).toBe(false);
- });
- });
-
- // describe('Configuration Changes', () => {
- // it('should handle runtime config updates', async () => {
- // const mockRuntime = {
- // getSetting: vi.fn((key: string) => {
- // if (key === 'EMAIL_AUTOMATION_ENABLED') return 'true';
- // if (key === 'RESEND_API_KEY') return 'test_key';
- // if (key === 'DEFAULT_TO_EMAIL') return 'test@test.com';
- // if (key === 'DEFAULT_FROM_EMAIL') return 'from@test.com';
- // return null;
- // }),
- // composeState: vi.fn().mockResolvedValue({})
- // };
-
- // await service.initialize(mockRuntime);
-
- // // Mock the evaluation methods
- // (service as any).shouldSendEmail = vi.fn().mockResolvedValue(true);
- // (service as any).handleEmailTrigger = vi.fn().mockResolvedValue(true);
-
- // // First message
- // await service.evaluateMessage({
- // content: { text: 'test' }
- // } as any);
-
- // // Second message should trigger email
- // const result = await service.evaluateMessage({
- // content: { text: 'test' }
- // } as any);
-
- // expect(result).toBe(true);
- // });
- // });
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/emailAutomationService.ts b/packages/plugin-email-automation/src/services/emailAutomationService.ts
deleted file mode 100644
index 7211a2d466a..00000000000
--- a/packages/plugin-email-automation/src/services/emailAutomationService.ts
+++ /dev/null
@@ -1,393 +0,0 @@
-import { Service, ServiceType, IAgentRuntime, elizaLogger, Memory, ModelClass, generateText, composeContext } from "@elizaos/core";
-import { EmailService } from "./emailService";
-import { EmailContext, EmailOptions, GeneratedEmailContent } from "../types";
-import { shouldEmailTemplate } from "../templates/shouldEmail";
-import { emailFormatTemplate } from "../templates/emailFormat";
-
-export class EmailAutomationService extends Service {
- static get serviceType(): ServiceType {
- return ServiceType.EMAIL_AUTOMATION;
- }
-
- get serviceType(): ServiceType {
- return ServiceType.EMAIL_AUTOMATION;
- }
-
- private emailService!: EmailService;
- private runtime!: IAgentRuntime;
-
- constructor() {
- super();
- }
-
- async initialize(runtime: IAgentRuntime): Promise {
- this.runtime = runtime;
-
- // Check if enabled
- const isEnabled = runtime.getSetting('EMAIL_AUTOMATION_ENABLED')?.toLowerCase() === 'true' || false;
- elizaLogger.debug(`📋 Email Automation Enabled: ${isEnabled}`);
-
- if (!isEnabled) {
- elizaLogger.debug("❌ Email automation is disabled");
- return;
- }
-
- elizaLogger.info("🔄 Initializing Email Automation Service...");
-
- try {
- // Required settings
- const resendApiKey = runtime.getSetting('RESEND_API_KEY');
- const defaultToEmail = runtime.getSetting('DEFAULT_TO_EMAIL');
- const defaultFromEmail = runtime.getSetting('DEFAULT_FROM_EMAIL');
-
- elizaLogger.debug("🔑 Checking configuration:", {
- hasApiKey: !!resendApiKey,
- hasToEmail: !!defaultToEmail,
- hasFromEmail: !!defaultFromEmail
- });
-
- if (!resendApiKey || !defaultToEmail || !defaultFromEmail) {
- throw new Error('Missing required email configuration: RESEND_API_KEY, DEFAULT_TO_EMAIL, DEFAULT_FROM_EMAIL');
- }
-
- this.emailService = new EmailService({
- RESEND_API_KEY: resendApiKey,
- OWNER_EMAIL: defaultToEmail
- });
-
- elizaLogger.success(`✅ Service ${this.serviceType} initialized successfully`);
- elizaLogger.info("📧 Email service ready to process messages");
- } catch (error) {
- elizaLogger.error("❌ Failed to initialize email service:", error);
- // Don't rethrow - let the service gracefully handle missing config
- }
- }
-
- private async buildContext(memory: Memory): Promise {
- elizaLogger.debug("🔄 Building email context for message:", {
- userId: memory.userId,
- messageId: memory.id,
- contentLength: memory.content.text.length
- });
-
- const state = await this.runtime.composeState(memory);
-
- // Include message content in state for template access
- if (state) {
- state.message = {
- content: memory.content,
- userId: memory.userId,
- id: memory.id
- };
- }
-
- return {
- memory,
- state,
- metadata: state?.metadata as Record,
- timestamp: new Date(),
- conversationId: memory.id || ''
- };
- }
-
- async evaluateMessage(memory: Memory): Promise {
- if (!this.emailService) {
- elizaLogger.error("❌ Email service not initialized");
- throw new Error('Missing required email configuration');
- }
-
- try {
- // Build context first
- const context = await this.buildContext(memory);
- elizaLogger.info("🔍 Evaluating accumulated conversation for email automation:", {
- text: memory.content.text,
- userId: memory.userId,
- roomId: memory.roomId
- });
-
- // Check if we should send an email
- const shouldEmail = await this.shouldSendEmail(context);
-
- if (shouldEmail) {
- elizaLogger.info("✨ Accumulated context triggered email automation, preparing to send...");
- await this.handleEmailTrigger(context);
- elizaLogger.success("✅ Email processed and sent successfully");
- return true;
- }
-
- elizaLogger.info("⏭️ Current context does not warrant email automation");
- return false;
-
- } catch (error) {
- elizaLogger.error("❌ Error evaluating message for email:", error);
- return false;
- }
- }
-
- private async shouldSendEmail(context: EmailContext): Promise {
- elizaLogger.info("🤔 Evaluating if message should trigger email...");
- const customPrompt = this.runtime.getSetting('EMAIL_EVALUATION_PROMPT');
- const template = customPrompt || shouldEmailTemplate;
-
- elizaLogger.debug("📝 Using template:", {
- isCustom: !!customPrompt,
- templateLength: template.length
- });
-
- const decision = await generateText({
- runtime: this.runtime,
- context: composeContext({
- state: context.state,
- template
- }),
- modelClass: ModelClass.SMALL
- });
-
- elizaLogger.info("📝 Final composed prompt:", {
- prompt: composeContext({
- state: context.state,
- template
- })
- });
-
- const shouldEmail = decision.includes("[EMAIL]");
- elizaLogger.info(`📊 Email decision: ${shouldEmail ? "✅ Should send" : "❌ Should not send"}`, {
- decision: decision.trim(),
- trigger: shouldEmail
- });
-
- return shouldEmail;
- }
-
- private async handleEmailTrigger(context: EmailContext) {
- try {
- // Extract user info and format Discord ID if present
- const userInfo = {
- id: context.memory.userId,
- displayName: this.formatUserIdentifier(context.memory.userId),
- platform: this.detectPlatform(context.memory.userId),
- metadata: context.metadata || {}
- };
-
- // Parse message content for relevant details
- const messageText = context.memory.content.text;
- const enhancedContext = {
- ...context.state,
- userInfo,
- platform: userInfo.platform,
- originalMessage: messageText,
- // Let the LLM extract and structure the details from the original message
- // rather than hardcoding values
- messageContent: messageText
- };
-
- // Generate content with enhanced context
- const formattedEmail = await generateText({
- runtime: this.runtime,
- context: composeContext({
- state: enhancedContext,
- template: emailFormatTemplate
- }),
- modelClass: ModelClass.SMALL
- });
-
- // Parse and validate sections
- const sections = this.parseFormattedEmail(formattedEmail);
-
- // Add explicit validation with helpful errors
- if (!sections.background) {
- elizaLogger.error("Missing background section in generated email");
- throw new Error("Email generation failed: Missing background section");
- }
-
- if (!sections.keyPoints || sections.keyPoints.length === 0) {
- elizaLogger.error("Missing or empty key points in generated email");
- throw new Error("Email generation failed: No key points generated");
- }
-
- // If validation passes, create email content
- const emailContent: GeneratedEmailContent = {
- subject: sections.subject,
- blocks: [
- {
- type: 'paragraph',
- content: sections.background,
- metadata: {
- style: 'margin-bottom: 1.5em;'
- }
- },
- {
- type: 'heading',
- content: 'Key Points'
- },
- {
- type: 'bulletList',
- content: sections.keyPoints
- }
- ],
- metadata: {
- tone: 'professional',
- intent: 'connection_request',
- priority: 'high'
- }
- };
-
- // Add optional technical details if present
- if (sections.technicalDetails?.length) {
- emailContent.blocks.push(
- {
- type: 'heading',
- content: 'Technical Details'
- },
- {
- type: 'bulletList',
- content: sections.technicalDetails
- }
- );
- }
-
- // Add next steps if present
- if (sections.nextSteps?.length) {
- emailContent.blocks.push(
- {
- type: 'heading',
- content: 'Next Steps'
- },
- {
- type: 'bulletList',
- content: sections.nextSteps
- }
- );
- }
-
- elizaLogger.info("📋 Email content prepared:", {
- subject: emailContent.subject,
- blocksCount: emailContent.blocks.length,
- metadata: emailContent.metadata
- });
-
- const emailOptions = {
- to: this.runtime.getSetting('DEFAULT_TO_EMAIL') || '',
- from: this.runtime.getSetting('DEFAULT_FROM_EMAIL') || '',
- headers: {
- 'X-Conversation-ID': context.conversationId,
- 'X-User-ID': userInfo.id,
- 'X-Platform': userInfo.platform,
- 'X-Display-Name': userInfo.displayName
- }
- };
-
- elizaLogger.info("📤 Composing email...", {
- to: emailOptions.to,
- from: emailOptions.from,
- conversationId: context.conversationId
- });
-
- await this.emailService.sendEmail(emailContent, emailOptions);
- } catch (error) {
- elizaLogger.error("❌ Email generation failed:", { error, context });
- throw error;
- }
- }
-
- private parseFormattedEmail(formattedEmail: string): {
- subject: string;
- background: string;
- keyPoints: string[];
- technicalDetails?: string[];
- nextSteps: string[];
- } {
- const sections: any = {};
-
- try {
- // Extract subject
- const subjectMatch = formattedEmail.match(/Subject: (.+?)(?:\n|$)/);
- sections.subject = subjectMatch?.[1]?.trim() || 'New Connection Request';
- elizaLogger.debug("📝 Parsed subject:", sections.subject);
-
- // Extract background
- const backgroundMatch = formattedEmail.match(/Background:\n([\s\S]*?)(?=\n\n|Key Points:|$)/);
- sections.background = backgroundMatch?.[1]?.trim() || '';
- elizaLogger.debug("📝 Parsed background:", {
- found: !!backgroundMatch,
- length: sections.background.length
- });
-
- // Extract key points
- const keyPointsMatch = formattedEmail.match(/Key Points:\n([\s\S]*?)(?=\n\n|Technical Details:|Next Steps:|$)/);
- sections.keyPoints = keyPointsMatch?.[1]
- ?.split('\n')
- .filter(point => point.trim())
- .map(point => point.trim().replace(/^[•\-]\s*/, '')) || [];
- elizaLogger.debug("📝 Parsed key points:", {
- count: sections.keyPoints.length,
- points: sections.keyPoints
- });
-
- // Extract technical details (optional)
- const technicalMatch = formattedEmail.match(/Technical Details:\n([\s\S]*?)(?=\n\n|Next Steps:|$)/);
- if (technicalMatch) {
- sections.technicalDetails = technicalMatch[1]
- ?.split('\n')
- .filter(point => point.trim())
- .map(point => point.trim().replace(/^[•\-]\s*/, ''));
- elizaLogger.debug("📝 Parsed technical details:", {
- count: sections.technicalDetails.length
- });
- }
-
- // Extract next steps
- const nextStepsMatch = formattedEmail.match(/Next Steps:\n([\s\S]*?)(?=\n\n|$)/);
- sections.nextSteps = nextStepsMatch?.[1]
- ?.split('\n')
- .filter(step => step.trim())
- .map(step => step.trim().replace(/^(\d+\.|\-|\•)\s*/, '')) || [];
- elizaLogger.debug("📝 Parsed next steps:", {
- count: sections.nextSteps.length
- });
-
- // Validate required sections
- if (!sections.subject || !sections.background || !sections.keyPoints.length) {
- elizaLogger.warn("⚠️ Missing required sections:", {
- hasSubject: !!sections.subject,
- hasBackground: !!sections.background,
- keyPointsCount: sections.keyPoints.length
- });
- }
-
- return sections;
- } catch (error) {
- elizaLogger.error("❌ Error parsing email format:", {
- error: error instanceof Error ? error.message : String(error),
- sections: Object.keys(sections)
- });
- throw new Error(`Failed to parse email format: ${error}`);
- }
- }
-
- private formatUserIdentifier(userId: string): string {
- // If userId is a Discord ID (typically a large number)
- if (/^\d{17,19}$/.test(userId)) {
- return `Discord User ${userId}`;
- }
- // For email addresses
- if (userId.includes('@')) {
- return userId;
- }
- // Default format
- return `User ${userId}`;
- }
-
- private detectPlatform(userId: string): string {
- // Discord IDs are typically 17-19 digit numbers
- if (/^\d{17,19}$/.test(userId)) {
- return 'discord';
- }
- // Email format
- if (userId.includes('@')) {
- return 'email';
- }
- // Default platform
- return 'unknown';
- }
-}
diff --git a/packages/plugin-email-automation/src/services/emailGenerationService.ts b/packages/plugin-email-automation/src/services/emailGenerationService.ts
deleted file mode 100644
index 4e7f4a63297..00000000000
--- a/packages/plugin-email-automation/src/services/emailGenerationService.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { elizaLogger, IAgentRuntime, generateObject, ModelClass } from "@elizaos/core";
-import { GeneratedEmailContent, EmailGenerationOptions } from "../types";
-import { EmailGenerationSchema, EmailPromptSchema } from "../schemas/emailGenerationSchema";
-
-export class EmailGenerationService {
- constructor(private runtime: IAgentRuntime) {
- if (!runtime) throw new Error('Runtime not configured');
- }
-
- async generateEmail(options: EmailGenerationOptions): Promise {
- try {
- elizaLogger.debug("Starting email generation with options:", options);
-
- const validatedOptions = EmailPromptSchema.parse(options);
- elizaLogger.debug("Options validated successfully");
-
- elizaLogger.debug("Generating email content via AI...");
- const { object } = await generateObject({
- runtime: this.runtime,
- context: validatedOptions.content,
- modelClass: ModelClass.LARGE,
- schema: EmailGenerationSchema,
- schemaName: 'generateEmail',
- schemaDescription: "Generate a structured email"
- });
- elizaLogger.debug("AI generation complete:", object);
-
- if (!object) throw new Error('Invalid response: missing object');
-
- const emailContent = EmailGenerationSchema.parse(object);
- elizaLogger.debug("Generated content validated successfully");
-
- const blocks = emailContent.parameters.blocks.map(block => ({
- ...block,
- metadata: {
- ...block.metadata,
- }
- }));
-
- return {
- subject: emailContent.parameters.subject,
- blocks: blocks,
- metadata: emailContent.parameters.metadata
- };
-
- } catch (error) {
- elizaLogger.error("Email generation failed:", {
- error,
- errorMessage: error instanceof Error ? error.message : String(error),
- options
- });
- throw error;
- }
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/emailService.ts b/packages/plugin-email-automation/src/services/emailService.ts
deleted file mode 100644
index 3d879d33277..00000000000
--- a/packages/plugin-email-automation/src/services/emailService.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-import { elizaLogger } from "@elizaos/core";
-import { EmailTemplateManager } from "./emailTemplateManager";
-import { ResendProvider } from "../providers/resend";
-import {
- EmailOptions,
- EmailServiceOptions,
- EmailProviderResponse,
- GeneratedEmailContent,
- EmailTemplate
-} from "../types";
-
-export class EmailService {
- private templateManager: EmailTemplateManager;
- private provider: ResendProvider;
-
- constructor(
- private secrets: EmailServiceOptions,
- templateManager?: EmailTemplateManager
- ) {
- elizaLogger.debug("Initializing EmailService");
- this.templateManager = templateManager || new EmailTemplateManager();
- this.provider = new ResendProvider(this.secrets.RESEND_API_KEY);
- }
-
- async sendEmail(
- content: GeneratedEmailContent,
- options: Omit
- ): Promise {
- elizaLogger.info("Starting email send process", {
- hasContent: !!content,
- contentType: content ? typeof content : 'undefined',
- templateManager: !!this.templateManager,
- blocks: content.blocks
- });
-
- try {
- const html = await this.templateManager.renderEmail(content);
- const plainText = this.generatePlainText(content);
-
- elizaLogger.debug("Template rendered", {
- hasHtml: !!html,
- template: options.template || 'default',
- htmlLength: html?.length || 0,
- htmlPreview: html ? html.substring(0, 200) : 'No HTML generated'
- });
-
- elizaLogger.debug("Sending via Resend...");
- const response = await this.provider.sendEmail({
- ...options,
- from: options.from || this.secrets.OWNER_EMAIL || 'onboarding@resend.dev',
- subject: content.subject,
- body: plainText,
- text: plainText,
- html: html,
- headers: {
- ...options.headers,
- 'X-Template-ID': options.template || 'default',
- 'X-Email-Priority': content.metadata.priority
- },
- tags: [
- ...(options.tags || []),
- { name: 'template', value: options.template || 'default' },
- { name: 'priority', value: content.metadata.priority }
- ]
- });
- elizaLogger.debug("Resend API response:", response);
-
- return {
- id: response.id,
- provider: 'resend',
- status: 'success',
- timestamp: new Date()
- };
-
- } catch (error) {
- elizaLogger.error("Failed to send email:", {
- error,
- errorMessage: error instanceof Error ? error.message : String(error),
- options: {
- to: options.to,
- subject: content.subject,
- blocksCount: content.blocks?.length
- }
- });
- throw error;
- }
- }
-
- private generatePlainText(content: GeneratedEmailContent): string {
- const parts: string[] = [content.subject, ''];
-
- content.blocks.forEach(block => {
- if (block.type === 'bulletList' && Array.isArray(block.content)) {
- parts.push(block.content.map(item => `• ${item}`).join('\n'));
- } else if (block.type === 'heading') {
- parts.push(`\n${typeof block.content === 'string' ? block.content.toUpperCase() : ''}\n`);
- } else {
- parts.push(block.content.toString());
- }
- parts.push(''); // Add spacing between blocks
- });
-
- return parts.join('\n');
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/services/emailTemplateManager.ts b/packages/plugin-email-automation/src/services/emailTemplateManager.ts
deleted file mode 100644
index 5eb8cbadbd4..00000000000
--- a/packages/plugin-email-automation/src/services/emailTemplateManager.ts
+++ /dev/null
@@ -1,548 +0,0 @@
-import { EmailTemplate, EmailBlock, GeneratedEmailContent } from '../types';
-import Handlebars from 'handlebars';
-import { emailFormatTemplate } from '../templates/emailFormat';
-
-export class EmailTemplateManager {
- private templates: Map = new Map();
-
- constructor() {
- this.registerDefaultTemplates();
- this.registerHelpers();
- // Register Handlebars helpers if needed
- Handlebars.registerHelper('formatBlock', (block) => {
- return new Handlebars.SafeString(this.formatBlock(block));
- });
- }
-
- private registerDefaultTemplates() {
- this.templates.set('default', {
- id: 'default',
- name: 'Default Template',
- html: this.getDefaultTemplate(),
- variables: ['subject', 'blocks', 'signature'],
- defaultStyle: {
- container: this.getDefaultStyles(),
- notification: ''
- }
- });
-
- this.templates.set('notification', {
- id: 'notification',
- name: 'Notification Template',
- html: this.getNotificationTemplate(),
- variables: ['subject', 'blocks', 'signature', 'priority'],
- defaultStyle: {
- container: this.getDefaultStyles(),
- notification: this.getNotificationStyles()
- }
- });
-
- // Register email format template
- this.templates.set('format', {
- id: 'format',
- name: 'Email Format Template',
- html: this.getEmailFormatTemplate(),
- variables: ['memory', 'previousMessages'],
- defaultStyle: {
- container: this.getDefaultStyles(),
- notification: ''
- }
- });
- }
-
- private registerHelpers() {
- // Add the eq helper
- Handlebars.registerHelper('eq', function(arg1: any, arg2: any) {
- return arg1 === arg2;
- });
-
- // Existing helpers
- Handlebars.registerHelper('formatBlock', (block: EmailBlock) => {
- switch (block.type) {
- case 'paragraph':
- return new Handlebars.SafeString(
- `${block.content}
`
- );
- case 'bulletList':
- return new Handlebars.SafeString(
- ``
- );
- case 'heading':
- return new Handlebars.SafeString(
- ``
- );
- case 'signature':
- return new Handlebars.SafeString(
- `${block.content}
`
- );
- case 'callout':
- return new Handlebars.SafeString(
- `${block.content}
`
- );
- default:
- return block.content;
- }
- });
-
- // Existing priority badge helper
- Handlebars.registerHelper('priorityBadge', (priority: string) => {
- const colors = {
- high: '#dc3545',
- medium: '#ffc107',
- low: '#28a745'
- };
- return new Handlebars.SafeString(
- `
- ${priority.toUpperCase()}
-
`
- );
- });
-
- // Add currentYear helper
- Handlebars.registerHelper('currentYear', function() {
- return new Date().getFullYear();
- });
- }
-
- getTemplate(templateId: string): EmailTemplate {
- const template = this.templates.get(templateId);
- if (!template) {
- return this.templates.get('default')!;
- }
- return template;
- }
-
- registerTemplate(template: EmailTemplate): void {
- this.validateTemplate(template);
- this.templates.set(template.id, template);
- }
-
- private getDefaultTemplate(): string {
- return `
-
-
-
-
-
- {{subject}}
-
-
-
-
-
-
-
![ElizaOS](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMGSURBVFiF7ZdNiFZVGMd/z7lvM42WYR8GZkIxFhFR0SaIIYKoFrWQClpUq4jIjRAtWkWLNkEtoke3LiIiEmoVFBW0KKgQIgxCsKgPqEbMJnScyY9m3vt/WtxzZ+68H3PvO4vEH1zOc59zzvM/z3Oe8zznXuv1eqaqqmeBy4ClwGXApcB8YB4wC+gBCmAM+Bv4DTgGHAEOA4eAn4HjwIRz7lSz2SyMMTNZa7uAjcBDwB3A7LbhE8BPwEHgG2Af8BVwyvf9KedcL4Ax5gygH7gXWA/cBMw5g4EW8D3wMfAR8I1zbqIoCq8sy24gAh4G1gGzz9LwdOSBz4G3gY+dc+PGmPnAvcDjwMozjP0H+ALYB+wGDgHHgFNAE6iBi4ErgGuAQWAlsKhj/jjwLvC6c+5PY0wPMAQ8CawBvG7GgO+AncBOY8xeYMJaW5dlmTfGzAZuBe4H7gYub5s7CmwD3nLOjRpj5gKPAE8By9rm/QXsALYbY/YAjTzPTdd13XVd13med4Ux5lHgAWBh29yvgNeAHc65MQBjzELgceBp4MK2ed8C24wxO40xR+u6bvi+71dVVRRFUQRBEBhjFhtjHgQeBZYBPnAS2A1sNcZ86ZzLjTEXAE8AzwAXt637KLAd2GaM+b0oCr+u6zzP86ooikZZlkEQBHPSNN0ErAUuAQLgb+BzYKsx5rM0TcuttQ8BzwOL29b7AdgKvJ+m6bEkSYKqqvI8z6uyLJtlWQZ1XTfSNL0OeBFYDVyQJv8L/Ai8A7yXJMnBOI5XAy8AK9rW+RN4B3grSZL9URTNqaoqz/O8KsuylabpnLquG1VVNcqybBRFERRF4fu+PwDcDNwOrAKWkO6AY8CPwF5gD/CVtfZEkiRrgOeBwbb1jwPvA28mSfJ1FEWzgQZAXddlURRBXdeNoigC3/d9z/M8Y0xXmqaLgaVpmi5N03RxmqYL0jSdl6bprDRNZ6ZpGqRp6qdp6qVpijFm0hhzMk3TkTRNj6Vp+keapofTND2QpumPxpijxpimMcY45wqALMv+A2qXz6gxuUEjAAAAAElFTkSuQmCC)
- Powered by ElizaOS
-
-
-
-
{{subject}}
- {{#each blocks}}
- {{{formatBlock this}}}
- {{/each}}
-
-
-
-
- `.trim();
- }
-
- private getNotificationTemplate(): string {
- return `
-
-
-
-
-
-
-
-
-
-
- {{#each blocks}}
- {{formatBlock this}}
- {{/each}}
- {{#if signature}}
-
{{{signature}}}
- {{/if}}
-
-
-
-
- `;
- }
-
- public getDefaultStyles(): string {
- return `
- /* Reset styles */
- body, html {
- margin: 0;
- padding: 0;
- width: 100%;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
- line-height: 1.6;
- color: #333333;
- background-color: #f6f9fc;
- }
-
- /* Container */
- .email-container {
- max-width: 600px;
- margin: 20px auto;
- background-color: #ffffff;
- border-radius: 8px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- overflow: hidden;
- }
-
- /* Header */
- .header {
- text-align: center;
- padding: 24px;
- background-color: #f8f9fa;
- }
-
- .logo {
- height: 12px;
- width: 12px;
- margin: 12px;
- object-fit: contain;
- }
-
- /* Content */
- .content {
- padding: 32px 24px;
- background-color: #ffffff;
- }
-
- /* Typography */
- h1 {
- color: #2c3e50;
- font-size: 24px;
- font-weight: 600;
- margin: 0 0 24px;
- padding-bottom: 16px;
- border-bottom: 1px solid #eaeaea;
- }
-
- .email-paragraph {
- margin: 0 0 20px;
- color: #2c3e50;
- }
-
- .email-list {
- margin: 20px 0;
- padding-left: 20px;
- }
-
- .email-list-item {
- margin: 8px 0;
- }
-
- .signature {
- margin-top: 30px;
- padding-top: 20px;
- border-top: 1px solid #eaeaea;
- font-style: italic;
- color: #666;
- }
-
- /* Footer */
- .footer-divider {
- height: 1px;
- background-color: #eaeaea;
- margin: 0;
- }
-
- .footer {
- padding: 16px;
- text-align: center;
- background-color: #f8f9fa;
- color: #6b7280;
- }
-
- .footer-text {
- font-size: 14px;
- display: block;
- margin-bottom: 8px;
- }
-
- .copyright {
- font-size: 12px;
- color: #9ca3af;
- }
-
- .powered-by {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
- margin: 12px 0;
- }
-
- .eliza-icon {
- opacity: 0.8;
- }
-
- .footer-links {
- margin-top: 12px;
- }
-
- .footer-links a {
- color: #666666;
- text-decoration: none;
- transition: color 0.15s ease;
- }
-
- .footer-links a:hover {
- color: #333333;
- }
-
- /* Responsive */
- @media only screen and (max-width: 640px) {
- .email-container {
- margin: 0;
- border-radius: 0;
- }
-
- .content {
- padding: 24px 20px;
- }
- }
-
- .powered-link {
- color: #6b7280;
- text-decoration: none;
- transition: color 0.15s ease;
- }
-
- .powered-link:hover {
- color: #374151;
- }
-
- .default-logo {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 16px 0;
- background: #f8f9fa;
- }
-
- .default-logo svg {
- height: 48px;
- width: 48px;
- color: #2c3e50;
- }
-
- /* Dark mode support */
- @media (prefers-color-scheme: dark) {
- .default-logo svg {
- color: #f8f9fa;
- }
- }
-
- .copyright {
- text-align: center;
- padding: 16px;
- color: #6b7280;
- font-size: 12px;
- border-top: 1px solid #eaeaea;
- }
-
- .footer {
- text-align: center;
- padding: 12px;
- background-color: #f8f9fa;
- color: #6b7280;
- font-size: 13px;
- border-top: 1px solid #eaeaea;
- }
-
- .paragraph {
- color: #374151;
- margin: 16px 0;
- line-height: 1.6;
- }
-
- .bullet-list {
- margin: 16px 0;
- padding-left: 24px;
- }
-
- .bullet-list li {
- color: #374151;
- margin: 8px 0;
- line-height: 1.5;
- }
-
- .heading {
- color: #111827;
- font-size: 20px;
- font-weight: 600;
- margin: 24px 0 16px 0;
- }
-
- .signature {
- margin: 32px 0 24px;
- color: #4B5563;
- font-style: italic;
- }
- `.trim();
- }
-
- private getNotificationStyles(): string {
- return `
- ${this.getDefaultStyles()}
- .notification {
- border: 1px solid #e1e4e8;
- border-radius: 6px;
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
- }
- .notification-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 24px;
- }
- .priority-badge {
- display: inline-block;
- padding: 4px 8px;
- border-radius: 12px;
- color: white;
- font-size: 12px;
- font-weight: 500;
- text-transform: uppercase;
- letter-spacing: 0.5px;
- }
- .notification .email-paragraph {
- background: #f8f9fa;
- padding: 16px;
- border-radius: 4px;
- margin: 12px 0;
- }
- .notification .email-list {
- background: #f8f9fa;
- padding: 16px 16px 16px 36px;
- border-radius: 4px;
- margin: 12px 0;
- }
- `;
- }
-
- async renderEmail(content: GeneratedEmailContent): Promise {
- try {
- const template = this.getTemplate(content.metadata.priority === 'high' ? 'notification' : 'default');
- const compiledTemplate = Handlebars.compile(template.html);
-
- const rendered = compiledTemplate({
- subject: content.subject,
- blocks: content.blocks,
- metadata: content.metadata,
- defaultStyle: this.getDefaultStyles()
- });
-
- return rendered;
- } catch (error) {
- console.error('Template rendering error:', error);
- throw error;
- }
- }
-
- renderBlock(block: EmailBlock): string {
- switch (block.type) {
- case 'paragraph':
- return `${block.content}
`;
- case 'bulletList':
- const items = Array.isArray(block.content)
- ? block.content
- : [block.content];
- return `
-
- ${items.map(item => `- ${item}
`).join('\n')}
-
- `;
- case 'heading':
- return `${block.content}
`;
- default:
- return String(block.content);
- }
- }
-
- private formatBlock(block: EmailBlock): string {
- switch (block.type) {
- case 'paragraph':
- return `${block.content}
`;
- case 'bulletList':
- if (!block.content) return ''; // Ensure content is available
- const items = Array.isArray(block.content) ? block.content : [block.content];
- return `
- ${items.map((item: string) => `- ${item}
`).join('\n')}
-
`;
- case 'heading':
- return `${block.content}
`;
- default:
- return String(block.content || ''); // Ensure a string is always returned
- }
- }
-
- private getEmailFormatTemplate(): string {
- return emailFormatTemplate;
- }
-
- private validateTemplate(template: EmailTemplate): void {
- if (!template.id || !template.html || !template.variables) {
- throw new Error(
- 'Invalid template: missing required fields (id, html, variables)'
- );
- }
-
- // Validate HTML structure
- if (!template.html.includes('{{content}}') &&
- !template.html.includes('{{blocks}}')) {
- throw new Error(
- 'Invalid template: missing required content placeholder'
- );
- }
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/templates/emailFormat.ts b/packages/plugin-email-automation/src/templates/emailFormat.ts
deleted file mode 100644
index 9fd00b0771e..00000000000
--- a/packages/plugin-email-automation/src/templates/emailFormat.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-export const emailFormatTemplate = `
-
-# Conversation Details
-User ID: {{memory.userId}}
-Name: {{memory.senderName}}
-Bio: {{memory.bio}}
-Recent Messages: {{previousMessages}}
-
-
-
-1. Extract Key Quotes:
-• Pull exact phrases about role/company
-• Identify specific technical claims
-• Note any metrics or numbers
-• Capture stated intentions
-
-2. Extract Core Information:
-• Professional context
-• Technical details
-• Project specifics
-• Team background
-
-3. Organize Key Points:
-• Identify main value propositions
-• Extract concrete metrics/details
-• Note specific technical requirements
-• Highlight relevant experience
-
-4. Plan Next Steps:
-• Consider conversation stage
-• Identify information gaps
-• Determine appropriate follow-up
-• Set clear action items
-
-
-
-First, extract the most relevant quotes from the conversation that should be included in the email. Put them in tags.
-
-Then, format an email summary using EXACTLY this format:
-
-
-Subject: [Clear, specific title with role/company]
-
-Background:
-[2-3 sentences about who they are and relevant context, based on extracted quotes]
-
-Key Points:
-• [3-5 bullet points about their main interests/proposals, supported by quotes]
-
-Technical Details:
-• [Technical detail 1 if available]
-• [Technical detail 2 if available]
-
-Next Steps:
-1. [First action item]
-2. [Second action item]
-
-Output the email in this exact format, omitting sections if insufficient information exists. Only include information that can be supported by the extracted quotes.
-
-
-
-Remember: Be concise and factual. Focus on actionable information over general statements. Do not include details that aren't supported by extracted quotes.
-
-`;
-
diff --git a/packages/plugin-email-automation/src/templates/shouldEmail.ts b/packages/plugin-email-automation/src/templates/shouldEmail.ts
deleted file mode 100644
index 338ce8bba67..00000000000
--- a/packages/plugin-email-automation/src/templates/shouldEmail.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-export const shouldEmailTemplate = `
-
-# Current Conversation
-Message: {{message.content.text}}
-Previous Context: {{previousMessages}}
-
-# Agent Context
-Name: {{agentName}}
-Background: {{bio}}
-Key Interests: {{topics}}
-
-
-
-1. Extract Key Quotes:
-• Pull exact phrases about role/company
-• Identify specific technical claims
-• Note any metrics or numbers
-• Capture stated intentions
-
-2. Assess Information Quality:
-• Verify professional context
-• Check for technical specifics
-• Look for concrete project details
-• Confirm decision-making authority
-
-3. Evaluate Readiness:
-• Sufficient context present
-• Actionable information shared
-• Appropriate timing for email
-• Clear follow-up potential
-
-4. Check Partnership Signals:
-• Explicit collaboration interest
-• Technical capability alignment
-• Resource commitment signals
-
-
-
-First, extract the most relevant quotes from the message that indicate email readiness. Put them in tags.
-
-Then, analyze the quotes to determine if an email should be sent.
-
-Respond in this format:
-[EMAIL] - This warrants sending an email because
-[SKIP] - This does not warrant an email
-
-Only base your decision on information explicitly present in the extracted quotes. Do not make assumptions or infer details not directly quoted.
-
-
-Remember: Quality of information over speed of engagement. Never assume details that aren't explicitly quoted.
-`;
\ No newline at end of file
diff --git a/packages/plugin-email-automation/src/types.ts b/packages/plugin-email-automation/src/types.ts
deleted file mode 100644
index 3ebb0d8f261..00000000000
--- a/packages/plugin-email-automation/src/types.ts
+++ /dev/null
@@ -1,321 +0,0 @@
-import { z } from "zod";
-import type{ IAgentRuntime as CoreAgentRuntime, Memory, State } from "@elizaos/core";
-
-export interface EmailOptions {
- from: string;
- to: string | string[];
- subject: string;
- body: string;
- bcc?: string | string[];
- cc?: string | string[];
- replyTo?: string | string[];
- html?: string;
- text?: string;
- scheduledAt?: string;
- headers?: Record;
- attachments?: Array<{
- filename: string;
- content: Buffer | string;
- path?: string;
- contentType?: string;
- }>;
- tags?: Array<{
- name: string;
- value: string;
- }>;
- template?: string;
- variables?: Record;
- theme?: 'light' | 'dark' | 'custom';
- style?: Record;
-}
-
-export type PoweredByOptions = {
- text: string;
- link: string;
-} | false;
-
-export const SendEmailSchema = z.object({
- from: z.string().email(),
- to: z.union([z.string().email(), z.array(z.string().email())]),
- cc: z.union([z.string().email(), z.array(z.string().email())]).optional(),
- bcc: z.union([z.string().email(), z.array(z.string().email())]).optional(),
- replyTo: z.union([z.string().email(), z.array(z.string().email())]).optional(),
- subject: z.string(),
- body: z.string(),
- text: z.string().optional(),
- headers: z.record(z.string()).optional(),
- attachments: z.array(z.object({
- filename: z.string(),
- content: z.union([z.instanceof(Buffer), z.string()]),
- path: z.string().optional(),
- contentType: z.string().optional()
- })).optional(),
- tags: z.array(z.object({
- name: z.string(),
- value: z.string()
- })).optional()
-});
-
-export type SendEmailContent = z.infer;
-
-export interface EmailServiceOptions {
- RESEND_API_KEY: string;
- OWNER_EMAIL?: string;
-}
-
-export interface EmailProviderResponse {
- id: string;
- provider: string;
- status: 'success' | 'failed';
- timestamp: Date;
-}
-
-export interface IEmailProvider {
- send(params: EmailParams): Promise;
- validateConfig(): boolean;
-}
-
-export interface EmailParams {
- to: string[];
- from?: string;
- cc?: string[];
- subject: string;
- body: string;
- attachments?: EmailAttachment[];
-}
-
-export interface EmailAttachment {
- filename: string;
- content: Buffer;
- contentType: string;
-}
-
-export interface ResendConfig {
- apiKey: string;
- defaultFrom?: string;
-}
-
-export interface EmailProviderError extends Error {
- provider: string;
- originalError: unknown;
-}
-
-export interface EmailConfig {
- poweredBy?: boolean | {
- text?: string;
- link?: string;
- };
-}
-
-export const EmailContentSchema = z.object({
- subject: z.string().min(1),
- body: z.string().min(1)
-});
-
-export type EmailContent = z.infer;
-
-export const EmailResponseSchema = z.object({
- analysis: z.object({
- purpose: z.string(),
- tone: z.string(),
- keyPoints: z.array(z.string()),
- urgency: z.string()
- }),
- email: z.object({
- subject: z.string(),
- html: z.string().refine(html => html.endsWith('
'), {
- message: 'HTML content must be complete'
- }),
- to: z.array(z.string().email()),
- from: z.string().email(),
- tags: z.array(z.string()).optional()
- })
-});
-
-export interface EmailResponse {
- id: string;
- error?: {
- message: string;
- code: string;
- };
-}
-
-export interface EmailBlock {
- type: "paragraph" | "bulletList" | "heading" | "signature" | "callout" | "banner";
- content: string | string[];
- metadata?: {
- style?: string;
- className?: string;
- importance?: "low" | "medium" | "high";
- };
-}
-
-export interface GeneratedEmailContent {
- subject: string;
- blocks: EmailBlock[];
- metadata: {
- tone: string;
- intent: string;
- priority: 'low' | 'medium' | 'high';
- language?: string;
- };
-}
-
-export interface EmailTemplate {
- id: string;
- name: string;
- html: string;
- variables: string[];
- defaultStyle?: Record;
- promptTemplate?: string;
- contextRules?: {
- tone?: string[];
- topics?: string[];
- maxLength?: number;
- customVariables?: Record;
- };
-}
-
-export interface EmailAutomationConfig {
- templates: {
- followUp?: EmailTemplate;
- reminder?: EmailTemplate;
- engagement?: EmailTemplate;
- [key: string]: EmailTemplate | undefined;
- };
- rules: AutomationRule[];
- promptDefaults?: {
- systemPrompt?: string;
- userPrompt?: string;
- generatePrompt?: (context: EmailContext) => Promise;
- };
-}
-
-export interface LLMEmailPrompt {
- content: string;
- format?: 'bullet' | 'paragraph';
- tone?: string;
- language?: string;
- style?: 'casual' | 'formal' | 'technical';
- functionCall: {
- name: 'generateEmail';
- parameters: Record;
- };
-}
-
-export interface EmailPrompt {
- content: string;
- format?: 'bullet' | 'paragraph';
- tone?: 'professional' | 'casual' | 'formal' | 'friendly' | 'urgent';
- language?: string;
- style?: 'casual' | 'formal' | 'technical';
-}
-
-export interface EmailGenerationOptions {
- content: string;
- format?: 'bullet' | 'paragraph';
- tone?: 'professional' | 'casual' | 'formal' | 'friendly' | 'urgent';
- language?: string;
- style?: 'casual' | 'formal' | 'technical';
-}
-
-export interface GenerateTextOptions {
- context: string;
- modelClass: string;
- tools?: {
- [key: string]: {
- type: "function";
- parameters: unknown;
- description?: string;
- };
- };
-}
-
-export type IAgentRuntime = CoreAgentRuntime;
-
-export const EmailMetadataSchema = z.object({
- tone: z.string().describe('The overall tone of the email'),
- intent: z.string().describe('The primary purpose of the email'),
- priority: z.enum(['low', 'medium', 'high']).describe('The priority level of the email'),
- language: z.string().optional().describe('The language to use for the email'),
- theme: z.enum(['light', 'dark', 'custom']).optional().describe('The email theme to use')
-});
-
-export interface AutomationRule {
- id: string;
- name: string;
- trigger: EmailTrigger;
- conditions: EmailCondition[];
- templateId: string;
- cooldown?: number; // minutes
-}
-
-export interface EmailCondition {
- evaluate(context: EmailContext): boolean;
-}
-
-export interface EmailContext {
- memory: Memory;
- state: State;
- metadata: Record;
- timestamp: Date;
- conversationId: string;
-}
-
-export type EmailTrigger =
- | 'follow_up'
- | 'reminder'
- | 'engagement'
- | 'inactive';
-
-// Example condition implementations
-export class FollowUpCondition implements EmailCondition {
- evaluate(context: EmailContext): boolean {
- return context.metadata.requiresFollowUp === true;
- }
-}
-
-export class InactiveCondition implements EmailCondition {
- private readonly thresholdHours: number;
-
- constructor(thresholdHours = 24) {
- this.thresholdHours = thresholdHours;
- }
-
- evaluate(context: EmailContext): boolean {
- const lastActivity = context.timestamp;
- const hoursSinceActivity =
- (new Date().getTime() - lastActivity.getTime()) / (1000 * 60 * 60);
- return hoursSinceActivity >= this.thresholdHours;
- }
-}
-
-export interface EmailPluginConfig {
- defaultToEmail: string;
- defaultFromEmail: string;
- evaluationRules?: {
- maxEmailsPerDay?: number;
- cooldownMinutes?: number;
- blacklistedDomains?: string[];
- };
- templates?: {
- shouldEmailPrompt?: string;
- connectionEmailTemplate?: string;
- };
-}
-
-export interface EmailTriggerContext extends EmailContext {
- recentInteractions: {
- lastEmailSent?: Date;
- emailCount24h: number;
- conversationActivity: {
- lastMessage: Date;
- messageCount: number;
- };
- };
- userPreferences?: {
- emailFrequency?: 'low' | 'medium' | 'high';
- timezone?: string;
- preferredTimes?: string[];
- };
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/tsconfig.json b/packages/plugin-email-automation/tsconfig.json
deleted file mode 100644
index 714e7f18b32..00000000000
--- a/packages/plugin-email-automation/tsconfig.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "module": "ESNext",
- "moduleResolution": "bundler",
- "esModuleInterop": true,
- "strict": true,
- "skipLibCheck": true,
- "outDir": "dist",
- "rootDir": "src",
- "declaration": true,
- "types": [
- "node"
- ]
- },
- "include": [
- "src/**/*.ts"
- ]
-}
\ No newline at end of file
diff --git a/packages/plugin-email-automation/tsup.config.ts b/packages/plugin-email-automation/tsup.config.ts
deleted file mode 100644
index 89f5c9291f9..00000000000
--- a/packages/plugin-email-automation/tsup.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { defineConfig } from "tsup";
-
-export default defineConfig({
- entry: ["src/index.ts"],
- outDir: "dist",
- sourcemap: true,
- clean: true,
- format: ["esm"],
- external: [
- "@elizaos/core",
- "resend",
- "zod"
- ],
-});
\ No newline at end of file
diff --git a/packages/plugin-email-automation/vitest.config.ts b/packages/plugin-email-automation/vitest.config.ts
deleted file mode 100644
index b72bc4d92d8..00000000000
--- a/packages/plugin-email-automation/vitest.config.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
- test: {
- globals: true,
- environment: 'node'
- }
-});
\ No newline at end of file
diff --git a/packages/plugin-email/package.json b/packages/plugin-email/package.json
index cd2343dade7..0109a27b7b5 100644
--- a/packages/plugin-email/package.json
+++ b/packages/plugin-email/package.json
@@ -15,7 +15,6 @@
"format:fix": "biome format --write ."
},
"dependencies": {
- "@elizaos/adapter-postgres": "workspace:^",
"@elizaos/core": "workspace:^",
"mail-notifier": "^0.5.0",
"nodemailer": "^6.9.16"
diff --git a/packages/plugin-flow/package.json b/packages/plugin-flow/package.json
index 0133518abfc..2acbc186ea8 100644
--- a/packages/plugin-flow/package.json
+++ b/packages/plugin-flow/package.json
@@ -28,7 +28,8 @@
"elliptic": "6.6.1",
"node-cache": "5.1.2",
"sha3": "2.1.4",
- "uuid": "11.0.3"
+ "uuid": "11.0.3",
+ "zod": "3.23.8"
},
"devDependencies": {
"@biomejs/biome": "1.9.4",
diff --git a/packages/plugin-giphy/package.json b/packages/plugin-giphy/package.json
index 6964f15e830..aadebb0b0e5 100644
--- a/packages/plugin-giphy/package.json
+++ b/packages/plugin-giphy/package.json
@@ -7,7 +7,8 @@
"dependencies": {
"@elizaos/core": "workspace:*",
"axios": "^1.6.7",
- "tsup": "^8.3.5"
+ "tsup": "^8.3.5",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@biomejs/biome": "1.9.4"
diff --git a/packages/plugin-hyperliquid/package.json b/packages/plugin-hyperliquid/package.json
index 72d2091f7e7..644672be12d 100644
--- a/packages/plugin-hyperliquid/package.json
+++ b/packages/plugin-hyperliquid/package.json
@@ -6,7 +6,8 @@
"types": "dist/index.d.ts",
"dependencies": {
"@elizaos/core": "workspace:*",
- "hyperliquid": "^1.5.6"
+ "hyperliquid": "^1.5.6",
+ "zod": "^3.23.8"
},
"devDependencies": {
"@types/node": "^20.0.0",
diff --git a/packages/plugin-injective/injective-sdk-client-ts/tsup.config.ts b/packages/plugin-injective/injective-sdk-client-ts/tsup.config.ts
index 793480487bb..4cda91939c4 100644
--- a/packages/plugin-injective/injective-sdk-client-ts/tsup.config.ts
+++ b/packages/plugin-injective/injective-sdk-client-ts/tsup.config.ts
@@ -24,6 +24,7 @@ export default defineConfig({
],
external: [
+ "zod",
...builtinModules.filter(mod => mod !== 'util'),
...Object.keys(pkg.dependencies || {})
.filter(dep => !dep.startsWith('@injectivelabs/'))
diff --git a/packages/plugin-injective/tsup.config.ts b/packages/plugin-injective/tsup.config.ts
index 78773191659..461acd851d2 100644
--- a/packages/plugin-injective/tsup.config.ts
+++ b/packages/plugin-injective/tsup.config.ts
@@ -25,6 +25,7 @@ export default defineConfig({
],
external: [
+ "zod",
...builtinModules.filter(mod => mod !== 'util'),
...Object.keys(pkg.dependencies || {})
.filter(dep => !['form-data', 'combined-stream', 'delayed-stream',
diff --git a/packages/plugin-letzai/tsup.config.ts b/packages/plugin-letzai/tsup.config.ts
index 66961231649..6a7d0a7f136 100644
--- a/packages/plugin-letzai/tsup.config.ts
+++ b/packages/plugin-letzai/tsup.config.ts
@@ -7,6 +7,7 @@ export default defineConfig({
clean: true,
format: ["esm"], // Ensure you're targeting CommonJS
external: [
+ "zod",
"dotenv", // Externalize dotenv to prevent bundling
"fs", // Externalize fs to use Node.js built-in module
"path", // Externalize other built-ins if necessary
diff --git a/packages/plugin-open-weather/package.json b/packages/plugin-open-weather/package.json
index b63ce815555..ae680e5d896 100644
--- a/packages/plugin-open-weather/package.json
+++ b/packages/plugin-open-weather/package.json
@@ -20,7 +20,8 @@
],
"dependencies": {
"@elizaos/core": "workspace:*",
- "tsup": "8.3.5"
+ "tsup": "8.3.5",
+ "zod": "^3.22.4"
},
"scripts": {
"build": "tsup --format esm --dts",
diff --git a/packages/plugin-rabbi-trader/__tests__/dexscreener.test.ts b/packages/plugin-rabbi-trader/__tests__/dexscreener.test.ts
deleted file mode 100644
index 016025f79a4..00000000000
--- a/packages/plugin-rabbi-trader/__tests__/dexscreener.test.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { getDexScreenerData, analyzePair } from '../src/dexscreener';
-import puppeteer from 'puppeteer';
-
-// Mock puppeteer
-vi.mock('puppeteer', () => ({
- default: {
- launch: vi.fn().mockResolvedValue({
- newPage: vi.fn().mockResolvedValue({
- goto: vi.fn(),
- evaluate: vi.fn().mockResolvedValue({
- pairs: [{
- chainId: 'solana',
- dexId: 'raydium',
- pairAddress: '0x123',
- baseToken: {
- address: '0xabc',
- name: 'Test Token',
- symbol: 'TEST',
- decimals: 18
- },
- price: '1.5',
- priceUsd: '1.5',
- txns: {
- m5: { buys: 10, sells: 5 },
- h1: { buys: 50, sells: 30 },
- h6: { buys: 200, sells: 150 },
- h24: { buys: 500, sells: 400 }
- },
- volume: {
- m5: 1000,
- h1: 5000,
- h6: 20000,
- h24: 50000
- },
- priceChange: {
- m5: 0.5,
- h1: 6.0, // Above 5% threshold
- h6: -0.8,
- h24: 2.5
- }
- }]
- }),
- close: vi.fn()
- }),
- close: vi.fn()
- })
- }
-}));
-
-describe('DexScreener Functions', () => {
- beforeEach(() => {
- vi.clearAllMocks();
- });
-
- describe('getDexScreenerData', () => {
- it('should fetch and return dexscreener data', async () => {
- const data = await getDexScreenerData();
- expect(data).toBeDefined();
- expect(data.pairs).toHaveLength(1);
- expect(data.pairs[0].chainId).toBe('solana');
- expect(data.pairs[0].dexId).toBe('raydium');
- expect(puppeteer.launch).toHaveBeenCalledWith({ headless: 'new' });
- });
-
- it('should handle puppeteer errors', async () => {
- vi.mocked(puppeteer.launch).mockRejectedValueOnce(new Error('Browser launch failed'));
- await expect(getDexScreenerData()).rejects.toThrow('Browser launch failed');
- });
- });
-
- describe('analyzePair', () => {
- const mockPair = {
- chainId: 'solana',
- dexId: 'raydium',
- pairAddress: '0x123',
- baseToken: {
- address: '0xabc',
- name: 'Test Token',
- symbol: 'TEST',
- decimals: 18
- },
- price: '1.5',
- priceUsd: '1.5',
- txns: {
- m5: { buys: 10, sells: 5 },
- h1: { buys: 50, sells: 30 },
- h6: { buys: 200, sells: 150 },
- h24: { buys: 500, sells: 400 }
- },
- volume: {
- m5: 1000,
- h1: 5000,
- h6: 20000,
- h24: 50000 // Above 10k threshold
- },
- priceChange: {
- m5: 0.5,
- h1: 6.0, // Above 5% threshold
- h6: -0.8,
- h24: 2.5
- }
- };
-
- it('should analyze pair data with significant movement', () => {
- const analysis = analyzePair(mockPair);
- expect(analysis).toBeTruthy();
- expect(analysis).toEqual({
- symbol: 'TEST',
- price: 1.5,
- priceChange: 6.0,
- volume24h: 50000,
- buyCount: 50,
- sellCount: 30
- });
- });
-
- it('should return false for low volume pairs', () => {
- const lowVolumePair = {
- ...mockPair,
- volume: {
- ...mockPair.volume,
- h24: 5000 // Below 10k threshold
- }
- };
- expect(analyzePair(lowVolumePair)).toBe(false);
- });
-
- it('should return false for low price change', () => {
- const lowPriceChangePair = {
- ...mockPair,
- priceChange: {
- ...mockPair.priceChange,
- h1: 2.0 // Below 5% threshold
- }
- };
- expect(analyzePair(lowPriceChangePair)).toBe(false);
- });
- });
-});
diff --git a/packages/plugin-rabbi-trader/__tests__/tokenUtils.test.ts b/packages/plugin-rabbi-trader/__tests__/tokenUtils.test.ts
deleted file mode 100644
index e28590d6eba..00000000000
--- a/packages/plugin-rabbi-trader/__tests__/tokenUtils.test.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { loadTokenAddresses } from '../src/tokenUtils';
-import * as fs from 'fs';
-import * as path from 'path';
-
-// Mock fs and path
-vi.mock('fs', async () => {
- const actual = await vi.importActual('fs');
- return {
- ...actual,
- readFileSync: vi.fn()
- };
-});
-
-vi.mock('path', async () => {
- const actual = await vi.importActual('path');
- return {
- ...actual,
- resolve: vi.fn()
- };
-});
-
-describe('Token Utils', () => {
- beforeEach(() => {
- vi.clearAllMocks();
- // Setup default mock implementation
- vi.mocked(path.resolve).mockReturnValue('/mock/path/tokenaddresses.json');
- });
-
- describe('loadTokenAddresses', () => {
- it('should load and parse token addresses successfully', () => {
- const mockAddresses = ['0x123', '0x456', '0x789'];
- vi.mocked(fs.readFileSync).mockReturnValue(JSON.stringify(mockAddresses));
-
- const addresses = loadTokenAddresses();
- expect(addresses).toEqual(mockAddresses);
- expect(fs.readFileSync).toHaveBeenCalledWith('/mock/path/tokenaddresses.json', 'utf8');
- });
-
- it('should throw error if file is not found', () => {
- vi.mocked(fs.readFileSync).mockImplementation(() => {
- throw new Error('ENOENT: no such file or directory');
- });
-
- expect(() => loadTokenAddresses()).toThrow('Token addresses file not found or invalid');
- });
-
- it('should throw error if file contains invalid JSON', () => {
- vi.mocked(fs.readFileSync).mockReturnValue('invalid json content');
-
- expect(() => loadTokenAddresses()).toThrow('Token addresses file not found or invalid');
- });
-
- it('should use correct file path', () => {
- const mockAddresses = ['0x123'];
- vi.mocked(fs.readFileSync).mockReturnValue(JSON.stringify(mockAddresses));
-
- loadTokenAddresses();
- expect(path.resolve).toHaveBeenCalledWith(
- process.cwd(),
- '../characters/tokens/tokenaddresses.json'
- );
- });
- });
-});
diff --git a/packages/plugin-rabbi-trader/__tests__/wallet.test.ts b/packages/plugin-rabbi-trader/__tests__/wallet.test.ts
deleted file mode 100644
index 56b647a6983..00000000000
--- a/packages/plugin-rabbi-trader/__tests__/wallet.test.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { describe, it, expect, vi, beforeEach } from 'vitest';
-import { getWalletKeypair, getWalletBalance } from '../src/wallet';
-import { Connection, Keypair, PublicKey } from '@solana/web3.js';
-import type { IAgentRuntime } from '@elizaos/core';
-
-// Mock dependencies
-vi.mock('@solana/web3.js', () => {
- const mockGetBalance = vi.fn().mockResolvedValue(1000000000); // 1 SOL in lamports
- const mockConnection = {
- getBalance: mockGetBalance
- };
- return {
- Connection: vi.fn(() => mockConnection),
- Keypair: {
- fromSecretKey: vi.fn().mockReturnValue({
- publicKey: {
- toBase58: () => 'mocked-public-key'
- }
- })
- },
- PublicKey: vi.fn()
- };
-});
-
-describe('Wallet Functions', () => {
- let mockRuntime: IAgentRuntime;
-
- beforeEach(() => {
- // Reset mocks
- vi.clearAllMocks();
-
- // Setup mock runtime
- mockRuntime = {
- getSetting: vi.fn((key: string) => {
- switch (key) {
- case 'WALLET_PRIVATE_KEY':
- // Use a valid base58 string (this is just an example, not a real private key)
- return '5KQFVpCEW7wEDVzAj6HnE6YpQem6X2L8qzqXNbrWJCVB';
- case 'SOLANA_RPC_URL':
- return 'https://api.mainnet-beta.solana.com';
- default:
- return undefined;
- }
- }),
- log: vi.fn(),
- error: vi.fn()
- };
- });
-
- describe('getWalletKeypair', () => {
- it('should create a keypair from private key', () => {
- const keypair = getWalletKeypair(mockRuntime);
- expect(keypair).toBeDefined();
- expect(keypair.publicKey).toBeDefined();
- expect(keypair.publicKey.toBase58).toBeDefined();
- expect(keypair.publicKey.toBase58()).toBe('mocked-public-key');
- });
-
- it('should throw error if private key is missing', () => {
- mockRuntime.getSetting = vi.fn().mockReturnValue(undefined);
- expect(() => getWalletKeypair(mockRuntime)).toThrow('No wallet private key configured');
- });
-
- it('should throw error if private key is invalid', () => {
- mockRuntime.getSetting = vi.fn().mockReturnValue('invalid-key');
- expect(() => getWalletKeypair(mockRuntime)).toThrow();
- });
- });
-
- describe('getWalletBalance', () => {
- it('should return correct SOL balance', async () => {
- const balance = await getWalletBalance(mockRuntime);
- expect(balance).toBe(1); // 1 SOL (1000000000 lamports)
- expect(Connection).toHaveBeenCalledWith('https://api.mainnet-beta.solana.com');
- });
-
- it('should use default RPC URL if not provided', async () => {
- mockRuntime.getSetting = vi.fn((key: string) => {
- if (key === 'WALLET_PRIVATE_KEY') {
- return '5MaiiCavjCmn9Hs1o3eznqDEhRwxo7pXiAYez7keQUviUkauRiTMD8DrESdrNjN8zd9mTmVhRvBJeg5vhyvgrAhG';
- }
- return undefined;
- });
-
- await getWalletBalance(mockRuntime);
- expect(Connection).toHaveBeenCalledWith('https://api.mainnet-beta.solana.com');
- });
-
- it('should handle connection errors by returning 0', async () => {
- const mockConnection = {
- getBalance: vi.fn().mockRejectedValue(new Error('Connection failed'))
- };
- vi.mocked(Connection).mockImplementation(() => mockConnection as any);
-
- const balance = await getWalletBalance(mockRuntime);
- expect(balance).toBe(0);
- expect(mockConnection.getBalance).toHaveBeenCalled();
- });
- });
-});
diff --git a/packages/plugin-rabbi-trader/eslint.config.mjs b/packages/plugin-rabbi-trader/eslint.config.mjs
deleted file mode 100644
index 92fe5bbebef..00000000000
--- a/packages/plugin-rabbi-trader/eslint.config.mjs
+++ /dev/null
@@ -1,3 +0,0 @@
-import eslintGlobalConfig from "../../eslint.config.mjs";
-
-export default [...eslintGlobalConfig];
diff --git a/packages/plugin-rabbi-trader/package.json b/packages/plugin-rabbi-trader/package.json
deleted file mode 100644
index e237b2d8cd3..00000000000
--- a/packages/plugin-rabbi-trader/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "@elizaos/plugin-rabbi-trader",
- "version": "0.25.6-alpha.1",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@elizaos/client-twitter": "workspace:*",
- "@elizaos/core": "workspace:*",
- "@elizaos/plugin-solana": "workspace:*",
- "@elizaos/plugin-trustdb": "workspace:*",
- "@solana/web3.js": "1.95.8",
- "@goat-sdk/core": "0.3.8",
- "@goat-sdk/plugin-coingecko": "0.1.4",
- "@goat-sdk/plugin-erc20": "0.1.7",
- "@goat-sdk/wallet-viem": "0.1.3",
- "bignumber": "1.1.0",
- "bignumber.js": "9.1.2",
- "node-cache": "^5.1.2",
- "tsup": "8.3.5",
- "ws": "^8.0.0"
- },
- "devDependencies": {
- "vitest": "^3.0.0",
- "@vitest/coverage-v8": "^1.2.1"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint --fix --cache .",
- "test": "vitest run",
- "test:watch": "vitest watch",
- "test:coverage": "vitest run --coverage"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- },
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/plugin-rabbi-trader/readme.md b/packages/plugin-rabbi-trader/readme.md
deleted file mode 100644
index 8e9eeadf6a4..00000000000
--- a/packages/plugin-rabbi-trader/readme.md
+++ /dev/null
@@ -1,178 +0,0 @@
-# Rabbi Trader Plugin
-
-An automated cryptocurrency trading plugin for Solana tokens with integrated trust scoring, market analysis, and Twitter notifications.
-
-## Features
-
-- Automated trading on Solana blockchain
-- Real-time market data analysis using DexScreener
-- Trust score evaluation for tokens
-- Twitter integration for trade notifications
-- Safety limits and risk management
-- Simulation capabilities before executing trades
-- Performance tracking and trade history
-- Rate limiting and cache management
-
-## Installation
-
-```bash
-npm install @elizaos/plugin-rabbi-trader
-```
-
-## Prerequisites
-
-The following environment variables need to be configured:
-
-- `WALLET_PRIVATE_KEY`: Your Solana wallet private key
-- `WALLET_PUBLIC_KEY`: Your Solana wallet public address
-- `SOLANA_RPC_URL`: Solana RPC endpoint (defaults to mainnet)
-- `BIRDEYE_API_KEY`: API key for Birdeye data provider
-- `TWITTER_ENABLED`: Enable/disable Twitter notifications
-- `TWITTER_USERNAME`: Twitter username for notifications
-- `DEXSCREENER_WATCHLIST_ID`: DexScreener watchlist identifier
-- `COINGECKO_API_KEY`: CoinGecko API key for additional market data
-
-## Usage
-
-```typescript
-import createRabbiTraderPlugin from '@elizaos/plugin-rabbi-trader';
-import { IAgentRuntime } from '@elizaos/core';
-
-const plugin = await createRabbiTraderPlugin(
- (key: string) => process.env[key],
- runtime
-);
-
-// Plugin will automatically start monitoring and trading if enabled
-```
-
-## Configuration
-
-### Safety Limits
-
-The plugin includes built-in safety limits that can be configured:
-
-```typescript
-export const SAFETY_LIMITS = {
- MINIMUM_TRADE: 0.01, // Minimum SOL per trade
- MAX_POSITION_SIZE: 0.1, // Maximum 10% of token liquidity
- MAX_SLIPPAGE: 0.05, // Maximum 5% slippage allowed
- MIN_LIQUIDITY: 1000, // Minimum $1000 liquidity required
- MIN_VOLUME: 2000, // Minimum $2000 24h volume required
- MIN_TRUST_SCORE: 0.4, // Minimum trust score to trade
- STOP_LOSS: 0.2, // 20% stop loss trigger
- TAKE_PROFIT: 0.12, // Take profit at 12% gain
- TRAILING_STOP: 0.2 // 20% trailing stop from highest
-};
-```
-
-### Trading Parameters
-
-Default trading parameters can be adjusted in the configuration:
-
-```typescript
-{
- CHECK_INTERVAL: 5 * 60 * 1000, // Check every 5 minutes
- REENTRY_DELAY: 60 * 60 * 1000, // Wait 1 hour before re-entering
- MAX_ACTIVE_POSITIONS: 5, // Maximum concurrent positions
- MIN_WALLET_BALANCE: 0.05 // Keep minimum 0.05 SOL in wallet
-}
-```
-
-## API Integration
-
-The plugin integrates with multiple APIs:
-
-- **Birdeye API**: Market data and token security information
-- **DexScreener**: Real-time trading data and market analysis
-- **Twitter**: Trade notifications and updates
-- **Jupiter**: Token swaps and liquidity aggregation
-
-## Error Handling
-
-The plugin includes comprehensive error handling for common scenarios:
-
-```typescript
-export const ERROR_SIGNATURES = [
- {
- sig: "0x13be252b",
- name: "InsufficientAllowance",
- description: "Token allowance too low"
- },
- {
- sig: "0xf4d678b8",
- name: "InsufficientBalance",
- description: "Insufficient token balance"
- },
- // ... additional error signatures
-];
-```
-
-## Trade Analysis
-
-The plugin performs detailed analysis before executing trades:
-
-1. Token security evaluation
-2. Market data analysis
-3. Trust score calculation
-4. Liquidity assessment
-5. Volume verification
-6. Price movement analysis
-7. Holder distribution review
-
-## Twitter Integration
-
-When enabled, the plugin can post trade notifications with:
-
-- Token information
-- Trade details (buy/sell price, amount)
-- Trust score and risk level
-- Market metrics
-- Transaction signature
-- Profit/loss for sells
-
-## Caching
-
-The plugin implements multiple caching mechanisms:
-
-- Token analysis cache (20 minutes)
-- Twitter rate limiting cache (hourly limits)
-- Skip/wait cache (2 hours)
-- Analysis history (24 hours)
-
-## Development
-
-### Building
-
-```bash
-npm run build
-```
-
-### Development Mode
-
-```bash
-npm run dev
-```
-
-## Dependencies
-
-Key dependencies include:
-
-- `@solana/web3.js`: Solana blockchain interaction
-- `@elizaos/core`: Core agent runtime
-- `@elizaos/plugin-solana`: Solana integration
-- `@elizaos/plugin-trustdb`: Trust score database
-- `node-cache`: Caching functionality
-- `bignumber.js`: Precise number handling
-
-## Contributing
-
-1. Fork the repository
-2. Create your feature branch
-3. Commit your changes
-4. Push to the branch
-5. Create a new Pull Request
-
-## License
-
-This project is licensed under the MIT License - see the LICENSE file for details.
diff --git a/packages/plugin-rabbi-trader/src/actions.ts b/packages/plugin-rabbi-trader/src/actions.ts
deleted file mode 100644
index 9e38d36a5fa..00000000000
--- a/packages/plugin-rabbi-trader/src/actions.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { analyzeTradeAction } from "./actions/analyzeTrade";
-export const actions = [analyzeTradeAction];
diff --git a/packages/plugin-rabbi-trader/src/actions/analyzeTrade.ts b/packages/plugin-rabbi-trader/src/actions/analyzeTrade.ts
deleted file mode 100644
index 3459f584ff6..00000000000
--- a/packages/plugin-rabbi-trader/src/actions/analyzeTrade.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import {
- type Action,
- elizaLogger,
- generateText,
- ModelClass,
- parseJSONObjectFromText,
-} from "@elizaos/core";
-
-export const analyzeTradeAction: Action = {
- name: "ANALYZE_TRADE",
- description: "Analyze a token for trading opportunities",
- similes: [
- "ANALYZE",
- "ANALYZE_TOKEN",
- "TRADE",
- "ANALYZE_TRADE",
- "EVALUATE",
- "ASSESS",
- ],
- examples: [],
- validate: async () => true,
- handler: async (runtime, memory, state, params, callback) => {
- try {
- // composeState
- if (!state) {
- state = await runtime.composeState(memory);
- } else state = await runtime.updateRecentMessageState(state);
-
- const tokenData = {
- walletBalance: params.walletBalance,
- tokenAddress: params.tokenAddress,
- price: params.price,
- volume: params.volume,
- marketCap: params.marketCap,
- liquidity: params.liquidity,
- holderDistribution: params.holderDistribution,
- trustScore: params.trustScore,
- dexscreener: params.dexscreener,
- position: params.position,
- };
-
- // Direct prompt instead of template
- const prompt = `Analyze the following token data and provide a trading recommendation.
-Return the response as a JSON object with the following structure:
-{
- "recommendation": "BUY" | "SELL" | "HOLD",
- "confidence": number (0-100),
- "reasoning": string,
- "risks": string[],
- "opportunities": string[]
-}
-
-Token Data:
-${JSON.stringify(tokenData, null, 2)}`;
-
- // Generate analysis using direct prompt
- const content = await generateText({
- runtime,
- context: prompt,
- modelClass: ModelClass.LARGE,
- });
-
- if (!content) {
- throw new Error("No analysis generated");
- }
-
- elizaLogger.log(`Raw analysis response:`, content);
-
- // Parse the response to get the recommended action
- const recommendation = parseJSONObjectFromText(content);
- elizaLogger.log(
- `Parsed recommendation for ${params.tokenAddress}:`,
- recommendation
- );
-
- // Send result through callback
- if (callback) {
- await callback({
- text: JSON.stringify(recommendation),
- type: "analysis",
- });
- }
-
- return true;
- } catch (error) {
- elizaLogger.error(`Analysis failed:`, {
- error: error instanceof Error ? error.message : "Unknown error",
- stack: error instanceof Error ? error.stack : undefined,
- });
- return false;
- }
- },
-};
diff --git a/packages/plugin-rabbi-trader/src/config.ts b/packages/plugin-rabbi-trader/src/config.ts
deleted file mode 100644
index 93c8d901066..00000000000
--- a/packages/plugin-rabbi-trader/src/config.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-export const PROVIDER_CONFIG = {
- BIRDEYE_API: "https://public-api.birdeye.so",
- TOKEN_SECURITY_ENDPOINT: "/defi/token_security?address=",
- TOKEN_METADATA_ENDPOINT: "/defi/v3/token/meta-data/single?address=",
- MARKET_SEARCH_ENDPOINT: "/defi/v3/token/trade-data/single?address=",
- TOKEN_PRICE_CHANGE_ENDPOINT:
- "/defi/v3/search?chain=solana&target=token&sort_by=price_change_24h_percent&sort_type=desc&verify_token=true&markets=Raydium&limit=20",
- TOKEN_VOLUME_24_CHANGE_ENDPOINT:
- "/defi/v3/search?chain=solana&target=token&sort_by=volume_24h_change_percent&sort_type=desc&verify_token=true&markets=Raydium&limit=20",
- TOKEN_BUY_24_CHANGE_ENDPOINT:
- "/defi/v3/search?chain=solana&target=token&sort_by=buy_24h_change_percent&sort_type=desc&verify_token=true&markets=Raydium&offset=0&limit=20",
-
- TOKEN_SECURITY_ENDPOINT_BASE: "/defi/token_security?address=",
- TOKEN_METADATA_ENDPOINT_BASE: "/defi/v3/token/meta-data/single?address=",
- MARKET_SEARCH_ENDPOINT_BASE: "/defi/v3/token/trade-data/single?address=",
- TOKEN_PRICE_CHANGE_ENDPOINT_BASE:
- "/defi/v3/search?chain=base&target=token&sort_by=price_change_24h_percent&sort_type=desc&offset=0&limit=20",
- TOKEN_VOLUME_24_ENDPOINT_BASE:
- "/defi/v3/search?chain=base&target=token&sort_by=volume_24h_usd&sort_type=desc&offset=2&limit=20",
- TOKEN_BUY_24_ENDPOINT_BASE:
- "/defi/v3/search?chain=base&target=token&sort_by=buy_24h&sort_type=desc&offset=2&limit=20",
-
- MAX_RETRIES: 3,
- RETRY_DELAY: 2000,
-};
-
-// Add configuration for enabled chains
-export const CHAIN_CONFIG = {
- SOLANA_ENABLED: false, // Can be controlled via settings
- BASE_ENABLED: true, // Can be controlled via settings
-};
-
-// Add Base chain configuration near other export constants
-export const BASE_CONFIG = {
- RPC_URL: process.env.EVM_PROVIDER_URL || "https://mainnet.base.org",
- ROUTER_ADDRESS: "0x327Df1E6de05895d2ab08513aaDD9313Fe505d86", // Base Uniswap V2 Router
- WETH_ADDRESS: "0x4200000000000000000000000000000000000006", // Base WETH
- CHAIN_ID: 8453,
- // Add Aerodrome-specific addresses
- AERODROME: {
- WETH: "0x4200000000000000000000000000000000000006",
- USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
- USDT: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb",
- },
-};
-
-// Add 0x API configuration near other export constants
-export const ZEROEX_CONFIG = {
- API_URL: "https://api.0x.org",
- API_KEY: process.env.ZEROEX_API_KEY || "",
- QUOTE_ENDPOINT: "/swap/permit2/quote",
- PRICE_ENDPOINT: "/swap/permit2/price",
- SUPPORTED_CHAINS: {
- BASE: 8453,
- },
- HEADERS: {
- "Content-Type": "application/json",
- "0x-api-key": process.env.ZEROEX_API_KEY || "",
- "0x-version": "v2",
- },
-};
diff --git a/packages/plugin-rabbi-trader/src/constants.ts b/packages/plugin-rabbi-trader/src/constants.ts
deleted file mode 100644
index 02dc7c457b0..00000000000
--- a/packages/plugin-rabbi-trader/src/constants.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-export const SAFETY_LIMITS = {
- MINIMUM_TRADE: 0.01, // Minimum 0.01 SOL per trade
- MAX_POSITION_SIZE: 0.1, // Maximum 10% of token liquidity
- MAX_SLIPPAGE: 0.05, // Maximum 5% slippage allowed
- MIN_LIQUIDITY: 1000, // Minimum $1000 liquidity required
- MIN_VOLUME: 2000, // Minimum $2000 24h volume required
- MIN_TRUST_SCORE: 0.4, // Minimum trust score to trade
- STOP_LOSS: 0.2, // 20% stop loss trigger
- CHECK_INTERVAL: 5 * 60 * 1000, // Check every 5 minutes
- TAKE_PROFIT: 0.12, // Take profit at 12% gain
- TRAILING_STOP: 0.2, // 20% trailing stop from highest
- PARTIAL_TAKE: 0.06, // Take 50% profit at 6% gain
- REENTRY_DELAY: 60 * 60 * 1000, // Wait 1 hour before re-entering
- MAX_ACTIVE_POSITIONS: 5, // Maximum concurrent positions
- MIN_WALLET_BALANCE: 0.05, // Keep minimum 0.05 SOL in wallet
-};
-
-export const ANALYSIS_HISTORY_EXPIRY = 24 * 60 * 60 * 1000; // 24 hours in milliseconds
-
-export const MAX_TWEETS_PER_HOUR = {
- trade: 10,
- market_search: 5,
-};
-
-export const MARKET_SEARCH_INTERVAL = 60 * 60 * 1000; // 1 hour in milliseconds
diff --git a/packages/plugin-rabbi-trader/src/dexscreener.ts b/packages/plugin-rabbi-trader/src/dexscreener.ts
deleted file mode 100644
index 7d55569a2e2..00000000000
--- a/packages/plugin-rabbi-trader/src/dexscreener.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import puppeteer from 'puppeteer';
-
-interface DexScreenerResponse {
- schemaVersion: string;
- pairs: Array<{
- chainId: string;
- dexId: string;
- pairAddress: string;
- baseToken: {
- address: string;
- name: string;
- symbol: string;
- decimals: number;
- };
- price: string;
- priceUsd: string;
- txns: {
- m5: { buys: number; sells: number; };
- h1: { buys: number; sells: number; };
- h6: { buys: number; sells: number; };
- h24: { buys: number; sells: number; };
- };
- volume: {
- m5: number;
- h1: number;
- h6: number;
- h24: number;
- };
- priceChange: {
- m5: number;
- h1: number;
- h6: number;
- h24: number;
- };
- }>;
-}
-
-export async function getDexScreenerData(): Promise {
- const browser = await puppeteer.launch({
- headless: 'new'
- });
-
- try {
- const page = await browser.newPage();
-
- // Navigate to DexScreener
- await page.goto('https://dexscreener.com');
-
- // Wait for the __SERVER_DATA to be available
- const serverData = await page.evaluate(() => {
- return (window as any).__SERVER_DATA;
- });
-
- return serverData;
-
- } catch (error) {
- console.error('Error fetching DexScreener data:', error);
- throw error;
- } finally {
- await browser.close();
- }
-}
-
-export function analyzePair(pair: DexScreenerResponse['pairs'][0]) {
- const volumeThreshold = 10000; // $10k minimum volume
- const priceChangeThreshold = 5; // 5% price change threshold
-
- // Check if pair meets basic criteria
- if (pair.volume.h24 < volumeThreshold) {
- return false;
- }
-
- // Check for significant price movement
- if (Math.abs(pair.priceChange.h1) > priceChangeThreshold) {
- return {
- symbol: pair.baseToken.symbol,
- price: Number.parseFloat(pair.priceUsd),
- priceChange: pair.priceChange.h1,
- volume24h: pair.volume.h24,
- buyCount: pair.txns.h1.buys,
- sellCount: pair.txns.h1.sells
- };
- }
-
- return false;
-}
\ No newline at end of file
diff --git a/packages/plugin-rabbi-trader/src/evaluators/trust.ts b/packages/plugin-rabbi-trader/src/evaluators/trust.ts
deleted file mode 100644
index b80b8213655..00000000000
--- a/packages/plugin-rabbi-trader/src/evaluators/trust.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { type IAgentRuntime, type Memory, type Evaluator, elizaLogger } from "@elizaos/core";
-import { TrustScoreProvider } from "../providers/trustScoreProvider";
-
-export const trustEvaluator: Evaluator = {
- name: "EVALUATE_TRUST",
- similes: [],
- examples: [],
- description: "Evaluates token trust scores and trading signals",
- validate: async () => true,
- handler: async (runtime: IAgentRuntime, message: Memory) => {
- const trustScoreProvider = new TrustScoreProvider();
- const tokenAddress = message.content?.tokenAddress;
-
- if (!tokenAddress) {
- return false;
- }
-
- try {
- const evaluation = await trustScoreProvider.evaluateToken(tokenAddress);
-
- elizaLogger.log("Trust evaluation:", {
- tokenAddress,
- ...evaluation,
- });
-
- return true;
- } catch (error) {
- elizaLogger.error("Trust evaluation failed:", error);
- return false;
- }
- },
-};
diff --git a/packages/plugin-rabbi-trader/src/index.ts b/packages/plugin-rabbi-trader/src/index.ts
deleted file mode 100644
index 635c8528111..00000000000
--- a/packages/plugin-rabbi-trader/src/index.ts
+++ /dev/null
@@ -1,1232 +0,0 @@
-import type { Plugin, IAgentRuntime, Memory, State } from "@elizaos/core";
-import { elizaLogger, settings } from "@elizaos/core";
-import { TwitterClientInterface } from "@elizaos/client-twitter";
-import {
- solanaPlugin,
- trustScoreProvider,
- trustEvaluator,
- getTokenBalance,
-} from "@elizaos/plugin-solana";
-import { TokenProvider } from "./providers/token";
-import { Connection, PublicKey } from "@solana/web3.js";
-import type { WalletClient, Signature, Balance } from "@goat-sdk/core";
-import * as fs from "fs";
-import * as path from "path";
-import { TrustScoreProvider } from "./providers/trustScoreProvider";
-import { SimulationService } from "./services/simulationService";
-import { SAFETY_LIMITS } from "./constants";
-import NodeCache from "node-cache";
-import { TrustScoreDatabase } from "@elizaos/plugin-trustdb";
-import { v4 as uuidv4 } from "uuid";
-import { actions } from "./actions";
-import {
- tweetTrade,
- TwitterConfigSchema,
- TwitterService,
-} from "./services/twitter";
-import {
- executeTrade,
- getChainWalletBalance,
- getWalletBalance,
- getWalletKeypair,
-} from "./wallet";
-import type { ProcessedTokenData } from "./types";
-import { analyzeTradeAction } from "./actions/analyzeTrade";
-
-// Update Balance interface to include formatted
-interface ExtendedBalance extends Balance {
- formatted: string;
-}
-
-// Extended WalletProvider interface to ensure proper typing
-interface ExtendedWalletProvider extends WalletClient {
- connection: Connection;
- signMessage(message: string): Promise;
- getFormattedPortfolio: (runtime: IAgentRuntime) => Promise;
- balanceOf: (tokenAddress: string) => Promise;
- getMaxBuyAmount: (tokenAddress: string) => Promise;
- executeTrade: (params: {
- tokenIn: string;
- tokenOut: string;
- amountIn: number;
- slippage: number;
- }) => Promise;
-}
-
-const REQUIRED_SETTINGS = {
- WALLET_PUBLIC_KEY: "Solana wallet public key",
- DEXSCREENER_WATCHLIST_ID: "DexScreener watchlist ID",
- COINGECKO_API_KEY: "CoinGecko API key",
-} as const;
-
-// Add near the top imports
-interface ExtendedPlugin extends Plugin {
- name: string;
- description: string;
- evaluators: any[];
- providers: any[];
- actions: any[];
- services: any[];
- autoStart?: boolean;
-}
-
-// Add this helper function
-function validateSolanaAddress(address: string | undefined): boolean {
- if (!address) return false;
- try {
- // Handle Solana addresses
- if (!/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address)) {
- elizaLogger.warn(`Solana address failed format check: ${address}`);
- return false;
- }
-
- // Verify it's a valid Solana public key
- const pubKey = new PublicKey(address);
- const isValid = Boolean(pubKey.toBase58());
- elizaLogger.log(
- `Solana address validation result for ${address}: ${isValid}`
- );
- return isValid;
- } catch (error) {
- elizaLogger.error(`Address validation error for ${address}:`, error);
- return false;
- }
-}
-
-// Add function to load token addresses
-export function loadTokenAddresses(): string[] {
- try {
- const filePath = path.resolve(
- process.cwd(),
- "../characters/tokens/tokenaddresses.json"
- );
- const data = fs.readFileSync(filePath, "utf8");
- const addresses = JSON.parse(data);
-
- // Validate addresses
- const validAddresses = addresses.filter((addr: string) => {
- // Solana address validation
- return validateSolanaAddress(addr);
- });
-
- elizaLogger.log("Loaded token addresses:", {
- total: validAddresses.length,
- solana: validAddresses.filter((addr) => !addr.startsWith("0x"))
- .length,
- base: validAddresses.filter((addr) => addr.startsWith("0x")).length,
- });
-
- return validAddresses;
- } catch (error) {
- elizaLogger.error("Failed to load token addresses:", error);
- throw new Error("Token addresses file not found or invalid");
- }
-}
-
-// Add cache configuration after other interfaces
-interface CacheEntry {
- lastAnalysis: number;
- tokenData: any;
- trustScore: number;
- analysisResult: any;
-}
-
-// Add cache instance before createGoatPlugin
-const tokenCache = new NodeCache({
- stdTTL: 1200, // 20 minutes in seconds
- checkperiod: 120, // Check for expired entries every 2 minutes
-});
-
-/*
-// Add near the top with other interfaces
-interface SkipWaitCache {
- lastTweet: number;
- action: "WAIT" | "SKIP";
-}
-
-// Add near other cache instances
-const skipWaitCache = new NodeCache({
- stdTTL: 7200, // 2 hours in seconds
- checkperiod: 600, // Check for expired entries every 10 minutes
-});
-
-// Add near other interfaces
-interface TweetRateLimit {
- lastTweet: number;
- count: number; // Track number of tweets in the time window
-}
-
-// Add near other cache instances
-const tweetRateCache = new NodeCache({
- stdTTL: 86400, // 24 hours in seconds
- checkperiod: 3600, // Check every hour
-});
-
-// Add helper function
-function canTweet(tweetType: "trade" | "market_search"): boolean {
- const now = Date.now();
- const hourKey = `tweets_${tweetType}_${Math.floor(now / 3600000)}`; // Key by hour and type
- const rateLimit: TweetRateLimit = tweetRateCache.get(hourKey) || {
- lastTweet: now,
- count: 0,
- };
-
- // Different limits for different tweet types
- const MAX_TWEETS_PER_HOUR = {
- trade: 10,
- market_search: 10, // Lower limit for market search tweets
- };
-
- if (rateLimit.count >= MAX_TWEETS_PER_HOUR[tweetType]) {
- elizaLogger.warn(
- `Tweet rate limit reached for ${tweetType}: ${rateLimit.count} tweets this hour`
- );
- return false;
- }
-
- // Update rate limit
- tweetRateCache.set(hourKey, {
- lastTweet: now,
- count: rateLimit.count + 1,
- });
-
- return true;
-}
-*/
-
-// Add new interfaces near the top with other interfaces
-interface TradePerformance {
- token_address: string;
- recommender_id: string;
- buy_price: number;
- sell_price: number;
- buy_timeStamp: string;
- sell_timeStamp: string;
- buy_amount: number;
- sell_amount: number;
- buy_value_usd: number;
- sell_value_usd: number;
- buy_market_cap: number;
- sell_market_cap: number;
- buy_liquidity: number;
- sell_liquidity: number;
- profit_usd: number;
- profit_percent: number;
- market_cap_change: number;
- liquidity_change: number;
- rapidDump: boolean;
-}
-
-interface TradePosition {
- token_address: string;
- entry_price: number;
- size: number;
- stop_loss: number;
- take_profit: number;
- open_timeStamp: string;
- close_timeStamp?: string;
- status?: "OPEN" | "CLOSED";
-}
-
-// Update the analysisParams interface
-interface AnalysisParams extends Record {
- walletBalance: number;
- tokenAddress: string;
- price: number;
- volume: number;
- marketCap: number;
- liquidity: number;
- holderDistribution: string;
- trustScore: number;
- dexscreener: any;
- position?: TradePosition;
- tradeHistory?: TradePerformance[];
-}
-
-// Update the interface to match the SQL parameter order
-interface SellDetailsData {
- // SET clause parameters in order
- sell_price: number;
- sell_timeStamp: string;
- sell_amount: number;
- received_sol: number;
- sell_value_usd: number;
- profit_usd: number;
- profit_percent: number;
- sell_market_cap: number;
- market_cap_change: number;
- sell_liquidity: number;
- liquidity_change: number;
- rapidDump: boolean;
- sell_recommender_id: string | null;
-}
-
-async function updateSellDetails(
- runtime: IAgentRuntime,
- tokenAddress: string,
- recommenderId: string,
- tradeAmount: number,
- latestTrade: any,
- tokenData: any
-) {
- const trustScoreDb = new TrustScoreDatabase(runtime.databaseAdapter.db);
-
- const trade = await trustScoreDb.getLatestTradePerformance(
- tokenAddress,
- recommenderId,
- false
- );
-
- if (!trade) {
- elizaLogger.error(
- `No trade found for token ${tokenAddress} and recommender ${recommenderId}`
- );
- throw new Error("No trade found to update");
- }
-
- const currentPrice = tokenData.dexScreenerData.pairs[0]?.priceUsd || 0;
- const marketCap = tokenData.dexScreenerData.pairs[0]?.marketCap || 0;
- const liquidity = tokenData.dexScreenerData.pairs[0]?.liquidity?.usd || 0;
-
- const sellValueUsd = tradeAmount * Number(currentPrice);
- const profitUsd = sellValueUsd - trade.buy_value_usd;
- const profitPercent = (profitUsd / trade.buy_value_usd) * 100;
-
- // Create sellDetailsData object matching SQL parameter order
- const sellDetails: SellDetailsData = {
- sell_price: Number(currentPrice),
- sell_timeStamp: new Date().toISOString(),
- sell_amount: tradeAmount,
- received_sol: tradeAmount,
- sell_value_usd: sellValueUsd,
- profit_usd: profitUsd,
- profit_percent: profitPercent,
- sell_market_cap: marketCap,
- market_cap_change: marketCap - trade.buy_market_cap,
- sell_liquidity: liquidity,
- liquidity_change: liquidity - trade.buy_liquidity,
- rapidDump: false,
- sell_recommender_id: recommenderId || null,
- };
-
- elizaLogger.log("Attempting to update trade performance with data:", {
- sellDetails,
- whereClause: {
- tokenAddress,
- recommenderId,
- buyTimeStamp: trade.buy_timeStamp,
- },
- isSimulation: false,
- });
-
- try {
- try {
- // Pass sellDetails first (SET clause), then WHERE clause parameters
- elizaLogger.log(
- "Verifying parameters for updateTradePerformanceOnSell:",
- {
- sellDetails,
- tokenAddress,
- recommenderId,
- buyTimeStamp: trade.buy_timeStamp,
- isSimulation: false,
- }
- );
-
- const success = await trustScoreDb.updateTradePerformanceOnSell(
- tokenAddress, // 1. WHERE token_address = ?
- recommenderId, // 2. WHERE recommender_id = ?
- trade.buy_timeStamp, // 3. WHERE buy_timeStamp = ?
- sellDetails, // 4. SET clause parameters
- false // 5. isSimulation flag
- );
-
- if (!success) {
- elizaLogger.warn("Trade update returned false", {
- tokenAddress,
- recommenderId,
- buyTimeStamp: trade.buy_timeStamp,
- });
- }
-
- elizaLogger.log("Trade performance update completed", {
- success,
- tokenAddress,
- recommenderId,
- profitPercent: profitPercent.toFixed(2) + "%",
- profitUsd: profitUsd.toFixed(4) + " USD",
- });
- } catch (dbError) {
- elizaLogger.error("Database error during trade update:", {
- error: dbError,
- query: {
- sellDetails,
- whereClause: {
- tokenAddress,
- recommenderId,
- buyTimeStamp: trade.buy_timeStamp,
- },
- },
- });
- throw dbError;
- }
- } catch (error) {
- elizaLogger.error("Failed to update trade performance:", {
- error,
- parameters: {
- sellDetails,
- whereClause: {
- tokenAddress,
- recommenderId,
- buyTimeStamp: trade.buy_timeStamp,
- },
- originalTrade: trade,
- },
- errorDetails:
- error instanceof Error
- ? {
- message: error.message,
- stack: error.stack,
- name: error.name,
- }
- : error,
- });
- throw error;
- }
-
- return {
- sellDetails,
- currentPrice,
- profitDetails: {
- profitUsd,
- profitPercent,
- sellValueUsd,
- },
- };
-}
-
-// Update the module declaration to match the new parameter order
-declare module "@elizaos/plugin-trustdb" {
- interface TrustScoreDatabase {
- updateTradePerformanceOnSell(
- tokenAddress: string, // Changed order: tokenAddress first
- recommenderId: string, // recommenderId second
- buyTimeStamp: string, // buyTimeStamp third
- sellDetails: SellDetailsData, // sellDetails fourth
- isSimulation: boolean // isSimulation fifth
- ): boolean;
- }
-}
-
-async function getChainBalance(
- connection: Connection,
- walletAddress: PublicKey,
- tokenAddress: string
-): Promise {
- // Use existing Solana balance fetching logic
- return await getTokenBalance(
- connection as any, // TODO: Resolve type conflict caused by multiple versions of @solana/web3.js
- walletAddress,
- new PublicKey(tokenAddress)
- );
-}
-
-async function createRabbiTraderPlugin(
- getSetting: (key: string) => string | undefined,
- runtime?: IAgentRuntime
-): Promise {
- // Define resumeTrading at the start of the function
- const resumeTrading = async () => {
- // Load and analyze tokens
- const tokenAddresses = loadTokenAddresses().filter(
- (addr) => !addr.startsWith("0x")
- );
- elizaLogger.log(`Analyzing ${tokenAddresses.length} Solana tokens...`);
-
- // Analyze regular token list
- for (const tokenAddress of tokenAddresses) {
- await analyzeToken(
- runtime,
- connection,
- twitterService,
- tokenAddress
- );
- }
-
- // Add delay between iterations
- await new Promise((resolve) => setTimeout(resolve, 1200000)); // 20 minutes
- };
-
- elizaLogger.log("Starting GOAT plugin initialization");
-
- // Move connection initialization to the top
- const connection = new Connection(
- runtime?.getSetting("SOLANA_RPC_URL") ||
- "https://api.mainnet-beta.solana.com"
- );
-
- const keypair = getWalletKeypair(runtime);
-
- // Validate required settings
- const missingSettings: string[] = [];
- for (const [key, description] of Object.entries(REQUIRED_SETTINGS)) {
- if (!getSetting(key)) {
- missingSettings.push(`${key} (${description})`);
- }
- }
-
- if (missingSettings.length > 0) {
- const errorMsg = `Missing required settings: ${missingSettings.join(
- ", "
- )}`;
- elizaLogger.error(errorMsg);
- throw new Error(errorMsg);
- }
-
- elizaLogger.log("Initializing Solana connection...");
- const walletProvider: ExtendedWalletProvider = {
- connection,
- getChain: () => ({ type: "solana" }),
- getAddress: () => keypair.publicKey.toBase58(),
- signMessage: async (_message: string): Promise => {
- throw new Error(
- "Message signing not implemented for Solana wallet"
- );
- },
- balanceOf: async (tokenAddress: string): Promise => {
- try {
- if (tokenAddress.startsWith("0x")) {
- // Handle Base token balance
- const baseBalance = await getChainBalance(
- connection,
- keypair.publicKey,
- tokenAddress
- );
- return {
- value: BigInt(baseBalance.toString()),
- decimals: 18, // Base uses 18 decimals
- formatted: (baseBalance / 1e18).toString(),
- symbol: "ETH",
- name: "Base",
- };
- } else {
- // Existing Solana logic
- const tokenPublicKey = new PublicKey(tokenAddress);
- const amount = await getTokenBalance(
- connection as any, // TODO: Resolve type conflict caused by multiple versions of @solana/web3.js
- keypair.publicKey,
- tokenPublicKey
- );
- return {
- value: BigInt(amount.toString()),
- decimals: 9,
- formatted: (amount / 1e9).toString(),
- symbol: "SOL",
- name: "Solana",
- };
- }
- } catch {
- // do we want logging here?
- return {
- value: BigInt(0),
- decimals: tokenAddress.startsWith("0x") ? 18 : 9,
- formatted: "0",
- symbol: tokenAddress.startsWith("0x") ? "ETH" : "SOL",
- name: tokenAddress.startsWith("0x") ? "Base" : "Solana",
- };
- }
- },
- getMaxBuyAmount: async (tokenAddress: string) => {
- try {
- if (tokenAddress.startsWith("0x")) {
- // Handle Base chain balance
- const baseBalance = await getChainBalance(
- connection,
- keypair.publicKey,
- tokenAddress
- );
- return (baseBalance * 0.9) / 1e18; // Base uses 18 decimals
- } else {
- // Handle Solana balance
- const balance = await connection.getBalance(
- keypair.publicKey
- );
- return (balance * 0.9) / 1e9; // Solana uses 9 decimals
- }
- } catch (error) {
- elizaLogger.error(
- `Failed to get max buy amount for ${tokenAddress}:`,
- error
- );
- return 0;
- }
- },
- executeTrade: async (_params) => {
- //try {
- return { success: true };
- //} catch (error) {
- //throw error;
- //}
- },
- getFormattedPortfolio: async () => "",
- };
-
- elizaLogger.log(
- "Solana connection and wallet provider initialized successfully"
- );
-
- // Initialize Twitter service if enabled
- let twitterService: TwitterService | undefined;
- try {
- elizaLogger.log(
- "Configuring Twitter service for trade notifications..."
- );
- const twitterConfig = TwitterConfigSchema.parse({
- enabled: getSetting("TWITTER_ENABLED") === "true",
- username: getSetting("TWITTER_USERNAME"),
- dryRun: false,
- });
-
- if (twitterConfig.enabled && runtime) {
- elizaLogger.log("Starting Twitter client initialization...");
- const twitterClient = await TwitterClientInterface.start(runtime);
- twitterService = new TwitterService(twitterClient, twitterConfig);
-
- // Add delay after initialization
- await new Promise((resolve) => setTimeout(resolve, 5000));
-
- elizaLogger.log("Twitter service initialized successfully", {
- username: twitterConfig.username,
- dryRun: twitterConfig.dryRun,
- });
- }
- } catch (error) {
- elizaLogger.error("Failed to initialize Twitter service:", error);
- }
-
- elizaLogger.log("Initializing Solana plugin components...");
-
- try {
- const customActions = actions;
-
- // Then update the plugin creation
- const plugin: ExtendedPlugin = {
- name: "[Rabbi Trader] Onchain Actions with Solana Integration",
- description: "Autonomous trading integration with AI analysis",
- evaluators: [trustEvaluator, ...(solanaPlugin.evaluators || [])],
- providers: [
- walletProvider,
- trustScoreProvider,
- ...(solanaPlugin.providers || []),
- ],
- actions: [...customActions, ...(solanaPlugin.actions || [])],
- services: [],
- autoStart: true,
- };
-
- // Add auto-start trading analysis
- if (!runtime) return;
-
- elizaLogger.log("Starting autonomous trading system...");
- const analyzeTradeAction = plugin.actions.find(
- (a) => a.name === "ANALYZE_TRADE"
- );
-
- if (!analyzeTradeAction) return;
-
- const interval =
- Number(runtime.getSetting("TRADING_INTERVAL")) || 300000;
-
- // Then start trading loop if enabled
- if (!settings.ENABLE_TRADING) return;
-
- elizaLogger.log("Initializing trading loop...");
- await resumeTrading();
- setInterval(resumeTrading, interval);
-
- elizaLogger.log("GOAT plugin initialization completed successfully");
- return plugin;
- } catch (error) {
- elizaLogger.error("Failed to initialize plugin components:", error);
- throw new Error(
- `Plugin initialization failed: ${
- error instanceof Error ? error.message : String(error)
- }`
- );
- }
-}
-
-async function analyzeToken(
- runtime: IAgentRuntime,
- connection: Connection,
- twitterService: TwitterService,
- tokenAddress: string
-) {
- try {
- // Check cache first
- const cachedData: CacheEntry | undefined = tokenCache.get(tokenAddress);
- const now = Date.now();
-
- // Skip if analyzed within last 20 minutes
- if (cachedData && now - cachedData.lastAnalysis < 1200000) {
- elizaLogger.log(
- `Using cached data for ${tokenAddress}, last analyzed ${Math.floor(
- (now - cachedData.lastAnalysis) / 1000
- )}s ago`
- );
- return;
- }
-
- elizaLogger.log(`Starting analysis for token: ${tokenAddress}`);
-
- await new Promise((resolve) => setTimeout(resolve, 2000));
-
- if (!validateSolanaAddress(tokenAddress)) {
- elizaLogger.error(`Invalid token address format: ${tokenAddress}`);
- return;
- }
-
- // Initialize TokenProvider directly with just the token address
- const tokenProvider = new TokenProvider(tokenAddress);
-
- // Get processed token data which includes DexScreener data
- elizaLogger.log(`Fetching token data for ${tokenAddress}`);
- const tokenData = await tokenProvider.getProcessedTokenData();
- elizaLogger.log(`Token data fetched for ${tokenAddress}:`, tokenData);
-
- // Get trust score and cache it
- const trustProvider = new TrustScoreProvider();
- const trustEvaluation = await trustProvider.evaluateToken(tokenAddress);
- const { trustScore } = trustEvaluation;
-
- // Cache the new data
- const cacheEntry: CacheEntry = {
- lastAnalysis: Date.now(),
- tokenData,
- trustScore,
- analysisResult: null, // Will be updated after analysis
- };
- tokenCache.set(tokenAddress, cacheEntry);
-
- const walletPublicKey = runtime.getSetting("WALLET_PUBLIC_KEY");
- if (!walletPublicKey) {
- elizaLogger.error("No wallet public key configured");
- return;
- }
-
- /*
- const balance = await connection.getBalance(
- new PublicKey(walletPublicKey)
- );
-
- const walletSolBalance = {
- formatted: (balance / 1e9).toString(),
- };
- */
-
- // Initialize trustScoreDb
- const trustScoreDb = new TrustScoreDatabase(runtime.databaseAdapter.db);
-
- // Before creating analysisParams, get the latest trade performance
- const latestTrade = trustScoreDb.getLatestTradePerformance(
- tokenAddress,
- runtime.agentId,
- false // not simulation
- );
-
- elizaLogger.log(`Latest trade for ${tokenAddress}:`, latestTrade);
-
- // Before creating analysisParams, get the correct chain balance
- const walletBalance = await getChainWalletBalance(
- runtime,
- tokenAddress
- );
-
- const pair = tokenData.dexScreenerData.pairs[0];
- const analysisParams: AnalysisParams = {
- walletBalance, // Now using the correct chain's balance
- tokenAddress,
- price: Number(pair?.priceUsd || 0),
- volume: pair?.volume?.h24 || 0,
- marketCap: pair?.marketCap || 0,
- liquidity: pair?.liquidity?.usd || 0,
- holderDistribution: tokenData.holderDistributionTrend,
- trustScore: trustScore || 0,
- dexscreener: tokenData.dexScreenerData,
- position: latestTrade
- ? {
- token_address: latestTrade.token_address,
- entry_price: latestTrade.buy_price,
- size: latestTrade.buy_amount,
- stop_loss: latestTrade.buy_price * 0.85, // 15% stop loss
- take_profit: latestTrade.buy_price * 1.3, // 30% take profit
- open_timeStamp: latestTrade.buy_timeStamp,
- status: latestTrade.sell_timeStamp ? "CLOSED" : "OPEN",
- }
- : undefined,
- };
-
- // Create initial state first
- const state: State = await runtime.composeState({
- userId: runtime.agentId,
- agentId: runtime.agentId,
- roomId: runtime.agentId,
- content: {
- text: `Initialize state for ${tokenAddress}`,
- type: "analysis",
- },
- });
-
- // Then create analysis memory using state
- const analysisMemory: Memory = {
- userId: state.userId,
- agentId: runtime.agentId,
- roomId: state.roomId,
- content: {
- text: `Analyze trade for ${tokenAddress}`,
- type: "analysis",
- },
- };
-
- // Update analysis result in cache after completion
- const analysisResult = await analyzeTradeAction.handler(
- runtime,
- analysisMemory,
- state,
- analysisParams,
- async (response) => {
- if (!response) {
- elizaLogger.error(
- `Empty response from analysis for ${tokenAddress}`
- );
- return [];
- }
-
- elizaLogger.log(
- `Analysis result for ${tokenAddress}:`,
- response
- );
- try {
- // Parse the JSON response from the analysis
- const result =
- typeof response.text === "string"
- ? JSON.parse(response.text)
- : response.text;
-
- if (!result) {
- elizaLogger.error(
- `Invalid analysis result for ${tokenAddress}`
- );
-
- return [];
- }
-
- if (
- result.shouldTrade &&
- result.recommendedAction === "BUY"
- ) {
- await buy({
- result,
- runtime,
- state,
- tokenAddress,
- tokenData,
- twitterService,
- trustScore,
- });
- } else if (result.recommendedAction === "SELL") {
- await sell({
- latestTrade,
- result,
- runtime,
- state,
- tokenAddress,
- tokenProvider,
- trustScoreDb,
- twitterService,
- trustScore,
- });
- } else {
- elizaLogger.log(
- `Trade not recommended for ${tokenAddress}:`,
- result
- );
- }
- } catch (err) {
- elizaLogger.error("rabbi - trade error", err);
- }
- return [];
- }
- );
- cacheEntry.analysisResult = analysisResult;
- tokenCache.set(tokenAddress, cacheEntry);
- } catch (tokenError) {
- elizaLogger.error(`Error processing token ${tokenAddress}:`, {
- error: tokenError,
- stack: tokenError instanceof Error ? tokenError.stack : undefined,
- });
- await new Promise((resolve) => setTimeout(resolve, 2000));
- }
-}
-
-async function buy({
- runtime,
- tokenAddress,
- state,
- tokenData,
- result,
- twitterService,
- trustScore,
-}: {
- runtime: IAgentRuntime;
- tokenAddress: string;
- state: State;
- tokenData: ProcessedTokenData;
- result: any;
- twitterService: TwitterService;
- trustScore: number;
-}) {
- elizaLogger.log(`Trade recommended for ${tokenAddress}:`, result);
-
- // Continue with simulation if analysis recommends trading
- const simulationService = new SimulationService();
- const simulation = await simulationService.simulateTrade(
- tokenAddress,
- result.suggestedAmount || SAFETY_LIMITS.MINIMUM_TRADE
- );
-
- if (simulation.recommendedAction === "EXECUTE") {
- try {
- // Check wallet balance before trade
- const currentBalance = await getWalletBalance(runtime);
-
- const tradeAmount = Math.min(
- result.suggestedAmount || SAFETY_LIMITS.MINIMUM_TRADE,
- currentBalance * 0.95 // Leave some SOL for fees
- );
-
- if (tradeAmount < SAFETY_LIMITS.MINIMUM_TRADE) {
- elizaLogger.warn(
- `Insufficient balance for trade: ${currentBalance} SOL`
- );
- }
-
- // Create trade memory object
- const tradeMemory: Memory = {
- userId: state.userId,
- agentId: runtime.agentId,
- roomId: state.roomId,
- content: {
- text: `Execute trade for ${tokenAddress}`,
- tokenAddress,
- amount: SAFETY_LIMITS.MINIMUM_TRADE,
- action: "BUY",
- source: "system",
- type: "trade",
- },
- };
-
- // Execute trade using our custom function
- const tradeResult = await executeTrade(runtime, {
- tokenAddress,
- amount: tradeAmount,
- slippage: tokenAddress.startsWith("0x") ? 0.03 : 0.3, // 3% for Base, 30% for Solana
- chain: tokenAddress.startsWith("0x") ? "base" : "solana",
- });
-
- if (tradeResult.success) {
- elizaLogger.log(
- `Trade executed successfully for ${tokenAddress}:`,
- {
- signature: tradeResult.signature,
- amount: tradeAmount,
- memory: tradeMemory,
- }
- );
-
- // Check rate limit before tweeting
- if (twitterService && result.recommendedAction === "BUY") {
- await tweetTrade(twitterService, {
- token:
- tokenData.dexScreenerData.pairs[0]?.baseToken
- ?.symbol || tokenAddress,
- tokenAddress: tokenAddress,
- amount: tradeAmount,
- trustScore: Number(trustScore) || 0,
- riskLevel: result.riskLevel || "MEDIUM",
- marketData: {
- priceChange24h:
- tokenData.dexScreenerData.pairs[0]?.priceChange
- ?.h24 || 0,
- volume24h:
- tokenData.dexScreenerData.pairs[0]?.volume
- ?.h24 || 0,
- liquidity: {
- usd:
- tokenData.dexScreenerData.pairs[0]
- ?.liquidity?.usd || 0,
- },
- },
- timestamp: Date.now(),
- signature: tradeResult.signature,
- hash: tradeResult.hash,
- action: "BUY",
- price: Number(
- tokenData.dexScreenerData.pairs[0]?.priceUsd || 0
- ),
- });
- } else {
- elizaLogger.log("Skipping tweet due to rate limit");
- }
-
- // Record trade using TrustScoreDatabase methods
- const trustScoreDb = new TrustScoreDatabase(
- runtime.databaseAdapter.db
- );
-
- try {
- // Remove the PublicKey validation for Base addresses
- elizaLogger.log(
- `Attempting to validate token address: ${tokenAddress}`
- );
- const formattedAddress = tokenAddress.startsWith("0x")
- ? tokenAddress
- : new PublicKey(tokenAddress).toBase58(); // Only convert Solana addresses
- elizaLogger.log(
- `Token address validated successfully: ${formattedAddress}`
- );
-
- // Create a new recommender ID for this trade
- const uuid = uuidv4();
- const recommender =
- await trustScoreDb.getOrCreateRecommender({
- id: uuid,
- address: "",
- solanaPubkey:
- runtime.getSetting("WALLET_PUBLIC_KEY") || "",
- });
- elizaLogger.log(`Created/retrieved recommender:`, {
- recommender,
- chainType: tokenAddress.startsWith("0x")
- ? "base"
- : "solana",
- });
-
- // Prepare trade data
- const tradeData = {
- buy_amount: tradeAmount,
- is_simulation: false,
- token_address: new PublicKey(tokenAddress).toBase58(),
- buy_price:
- tokenData.dexScreenerData.pairs[0]?.priceUsd || 0,
- buy_timeStamp: new Date().toISOString(),
- buy_market_cap:
- tokenData.dexScreenerData.pairs[0]?.marketCap || 0,
- buy_liquidity:
- tokenData.dexScreenerData.pairs[0]?.liquidity
- ?.usd || 0,
- buy_value_usd:
- tradeAmount *
- Number(
- tokenData.dexScreenerData.pairs[0]?.priceUsd ||
- 0
- ),
- };
- elizaLogger.log(`Prepared trade data:`, tradeData);
-
- // Create trade record directly using trustScoreDb
- await trustScoreDb.addTradePerformance(
- {
- token_address: formattedAddress, // Use the properly formatted address
- recommender_id: recommender.id,
- buy_price: Number(tradeData.buy_price),
- buy_timeStamp: tradeData.buy_timeStamp,
- buy_amount: tradeData.buy_amount,
- buy_value_usd: tradeData.buy_value_usd,
- buy_market_cap: tradeData.buy_market_cap,
- buy_liquidity: tradeData.buy_liquidity,
- buy_sol: tradeAmount,
- last_updated: new Date().toISOString(),
- sell_price: 0,
- sell_timeStamp: "",
- sell_amount: 0,
- received_sol: 0,
- sell_value_usd: 0,
- sell_market_cap: 0,
- sell_liquidity: 0,
- profit_usd: 0,
- profit_percent: 0,
- market_cap_change: 0,
- liquidity_change: 0,
- rapidDump: false,
- },
- false
- );
-
- elizaLogger.log(
- `Successfully recorded trade performance for ${tokenAddress}`
- );
- } catch (error) {
- elizaLogger.error("Failed to record trade performance:", {
- error,
- tokenAddress,
- errorMessage:
- error instanceof Error
- ? error.message
- : String(error),
- stack: error instanceof Error ? error.stack : undefined,
- errorType: error?.constructor?.name,
- });
- }
- } else {
- elizaLogger.error(
- `Trade execution failed for ${tokenAddress}:`,
- tradeResult.error
- );
- }
- } catch (tradeError) {
- elizaLogger.error(
- `Error during trade execution for ${tokenAddress}:`,
- {
- error: tradeError,
- stack:
- tradeError instanceof Error
- ? tradeError.stack
- : undefined,
- }
- );
- }
- } else {
- elizaLogger.log(
- `Simulation rejected trade for ${tokenAddress}:`,
- simulation
- );
- }
-}
-
-async function sell({
- // eslint-disable-next-line
- state,
- runtime,
- tokenAddress,
- tokenProvider,
- twitterService,
- trustScoreDb,
- latestTrade,
- result,
- trustScore,
-}: {
- state: State;
- runtime: IAgentRuntime;
- tokenAddress: string;
- tokenProvider: TokenProvider;
- twitterService: TwitterService;
- trustScoreDb: TrustScoreDatabase;
- result: any;
- latestTrade: TradePerformance;
- trustScore: number;
-}) {
- // Get the trade amount from the latest trade
- const tradeAmount = Number(latestTrade?.buy_amount || 0);
-
- /*
- // Create and save trade memory object for sell
- const tradeMemory: Memory = {
- userId: state.userId,
- agentId: runtime.agentId,
- roomId: state.roomId,
- content: {
- text: `Execute sell for ${tokenAddress}`,
- tokenAddress,
- amount: tradeAmount,
- action: "SELL",
- source: "system",
- type: "trade",
- },
- };
- */
-
- // Execute sell trade
- const tradeResult = await executeTrade(runtime, {
- tokenAddress,
- amount: tradeAmount,
- slippage: 0.3, // 30% for Solana
- chain: "solana",
- });
-
- if (tradeResult.success) {
- elizaLogger.log(`Sell executed successfully for ${tokenAddress}:`, {
- signature: tradeResult.signature,
- amount: tradeAmount,
- });
-
- // Get token data first
- const tokenData = await tokenProvider.getProcessedTokenData();
-
- // Create recommender
- const uuid = uuidv4();
- const recommender = await trustScoreDb.getOrCreateRecommender({
- id: uuid,
- address: "", // Empty since we're only handling Solana
- solanaPubkey: runtime.getSetting("WALLET_PUBLIC_KEY") || "",
- });
-
- // Update sell details and get prices
- const { sellDetails, currentPrice } = await updateSellDetails(
- runtime,
- tokenAddress,
- recommender.id,
- tradeAmount,
- latestTrade,
- tokenData
- );
-
- // Post tweet if enabled
- if (twitterService) {
- await tweetTrade(twitterService, {
- token:
- tokenData.dexScreenerData.pairs[0]?.baseToken?.symbol ||
- tokenAddress,
- tokenAddress: tokenAddress,
- amount: tradeAmount,
- trustScore: Number(trustScore) || 0,
- riskLevel: result.riskLevel || "MEDIUM",
- marketData: {
- priceChange24h:
- tokenData.dexScreenerData.pairs[0]?.priceChange?.h24 ||
- 0,
- volume24h:
- tokenData.dexScreenerData.pairs[0]?.volume?.h24 || 0,
- liquidity: {
- usd:
- tokenData.dexScreenerData.pairs[0]?.liquidity
- ?.usd || 0,
- },
- },
- timestamp: Date.now(),
- signature: tradeResult.signature,
- hash: tradeResult.hash,
- action: "SELL",
- price: Number(currentPrice),
- profitPercent: `${sellDetails.profit_percent.toFixed(2)}%`,
- profitUsd: `${sellDetails.profit_usd.toFixed(4)} USD`,
- reason: `P/L: ${sellDetails.profit_percent.toFixed(2)}%`,
- });
- }
-
- elizaLogger.log(
- `Successfully updated sell details for ${tokenAddress}`,
- {
- sellPrice: currentPrice,
- sellAmount: tradeAmount,
- }
- );
- } else {
- elizaLogger.error(
- `Sell execution failed for ${tokenAddress}:`,
- tradeResult.error
- );
- }
-}
-
-export default createRabbiTraderPlugin;
diff --git a/packages/plugin-rabbi-trader/src/providers/token.ts b/packages/plugin-rabbi-trader/src/providers/token.ts
deleted file mode 100644
index 1bc38691eb2..00000000000
--- a/packages/plugin-rabbi-trader/src/providers/token.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { elizaLogger } from "@elizaos/core";
-import NodeCache from "node-cache";
-import type { ProcessedTokenData, TokenSecurityData, TokenTradeData, DexScreenerPair } from "../types/token";
-import { toBN } from "../utils/bignumber";
-
-export class TokenProvider {
- private cache: NodeCache;
- private isBase: boolean;
-
- constructor(private tokenAddress: string, options?: { isBase?: boolean }) {
- this.cache = new NodeCache({ stdTTL: 300 });
- this.isBase = options?.isBase || false;
- }
-
- async getProcessedTokenData(): Promise {
- const cacheKey = `processed_${this.tokenAddress}`;
- const cached = this.cache.get(cacheKey);
- if (cached) return cached;
-
- try {
- // Fetch DexScreener data
- const dexData = await this.fetchDexScreenerData();
- const pair = dexData.pairs[0];
-
- // Calculate security metrics
- const security: TokenSecurityData = {
- ownerBalance: toBN(pair.liquidity.base).toString(),
- creatorBalance: '0',
- ownerPercentage: 0,
- creatorPercentage: 0,
- top10HolderBalance: toBN(pair.liquidity.base).times(0.1).toString(),
- top10HolderPercent: 10
- };
-
- // Calculate trade metrics
- const tradeData: TokenTradeData = {
- price: Number(pair.priceUsd),
- priceChange24h: pair.priceChange.h24,
- volume24h: pair.volume.h24,
- volume24hUsd: toBN(pair.volume.h24).toString(),
- uniqueWallets24h: pair.txns.h24.buys + pair.txns.h24.sells,
- uniqueWallets24hChange: 0
- };
-
- // Analyze holder distribution
- const holderDistributionTrend = this.analyzeHolderDistribution(tradeData);
-
- const processedData: ProcessedTokenData = {
- security,
- tradeData,
- dexScreenerData: { pairs: [pair] },
- holderDistributionTrend,
- highValueHolders: [],
- recentTrades: pair.volume.h24 > 0,
- highSupplyHoldersCount: 0,
- tokenCodex: { isScam: false }
- };
-
- this.cache.set(cacheKey, processedData);
- return processedData;
- } catch (error) {
- elizaLogger.error(`Failed to process token data: ${error}`);
- throw error;
- }
- }
-
- private analyzeHolderDistribution(tradeData: TokenTradeData): string {
- const buyRatio = tradeData.uniqueWallets24h > 0 ?
- tradeData.uniqueWallets24hChange / tradeData.uniqueWallets24h : 0;
-
- if (buyRatio > 0.1) return "increasing";
- if (buyRatio < -0.1) return "decreasing";
- return "stable";
- }
-
- async shouldTradeToken(): Promise {
- const data = await this.getProcessedTokenData();
- const pair = data.dexScreenerData.pairs[0];
-
- return (
- pair.liquidity.usd > 50000 &&
- pair.volume.h24 > 10000 &&
- Math.abs(pair.priceChange.h24) < 30 &&
- !data.tokenCodex?.isScam
- );
- }
-
- private async fetchDexScreenerData(): Promise<{ pairs: DexScreenerPair[] }> {
- const chainParam = this.isBase ? 'base' : 'solana';
- const response = await fetch(`https://api.dexscreener.com/latest/dex/tokens/${this.tokenAddress}?chainId=${chainParam}`);
- const data = await response.json();
- return data;
- }
-}
diff --git a/packages/plugin-rabbi-trader/src/providers/trustScoreProvider.ts b/packages/plugin-rabbi-trader/src/providers/trustScoreProvider.ts
deleted file mode 100644
index 945b06f1d51..00000000000
--- a/packages/plugin-rabbi-trader/src/providers/trustScoreProvider.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { elizaLogger } from "@elizaos/core";
-import { TokenProvider } from "./token";
-import type { ProcessedTokenData } from "../types/token";
-
-export class TrustScoreProvider {
- private tokenProviders: Map = new Map();
-
- getTokenProvider(tokenAddress: string): TokenProvider {
- if (!this.tokenProviders.has(tokenAddress)) {
- this.tokenProviders.set(tokenAddress, new TokenProvider(tokenAddress));
- }
- return this.tokenProviders.get(tokenAddress)!;
- }
-
- async calculateTrustScore(tokenData: ProcessedTokenData): Promise {
- const pair = tokenData.dexScreenerData.pairs[0];
- const {
- liquidity,
- volume,
- marketCap
- } = pair;
-
- // Weight factors
- const LIQUIDITY_WEIGHT = 0.4;
- const VOLUME_WEIGHT = 0.4;
- const MCAP_WEIGHT = 0.2;
-
- // Calculate component scores
- const liquidityScore = Math.min(liquidity.usd / 100000, 1) * LIQUIDITY_WEIGHT;
- const volumeScore = Math.min(volume.h24 / 50000, 1) * VOLUME_WEIGHT;
- const mcapScore = Math.min(marketCap / 1000000, 1) * MCAP_WEIGHT;
-
- return liquidityScore + volumeScore + mcapScore;
- }
-
- async evaluateToken(tokenAddress: string): Promise<{
- trustScore: number;
- riskLevel: "LOW" | "MEDIUM" | "HIGH";
- tradingAdvice: "BUY" | "SELL" | "HOLD";
- reason: string;
- }> {
- try {
- const provider = this.getTokenProvider(tokenAddress);
- const tokenData = await provider.getProcessedTokenData();
- const trustScore = await this.calculateTrustScore(tokenData);
- const pair = tokenData.dexScreenerData.pairs[0];
-
- // Risk assessment
- const riskLevel = trustScore > 0.7 ? "LOW" :
- trustScore > 0.4 ? "MEDIUM" : "HIGH";
-
- // Trading signals
- let tradingAdvice: "BUY" | "SELL" | "HOLD" = "HOLD";
- let reason = "Market conditions stable";
-
- if (pair.priceChange.h24 > 5 && trustScore > 0.4) {
- tradingAdvice = "BUY";
- reason = "Strong upward momentum with good trust score";
- } else if (pair.priceChange.h24 < -10 || trustScore < 0.3) {
- tradingAdvice = "SELL";
- reason = "Deteriorating conditions or low trust score";
- }
-
- return { trustScore, riskLevel, tradingAdvice, reason };
- } catch (error) {
- elizaLogger.error(`Trust evaluation failed: ${error}`);
- throw error;
- }
- }
-}
diff --git a/packages/plugin-rabbi-trader/src/services/simulationService.ts b/packages/plugin-rabbi-trader/src/services/simulationService.ts
deleted file mode 100644
index 867b488c3c8..00000000000
--- a/packages/plugin-rabbi-trader/src/services/simulationService.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { elizaLogger } from "@elizaos/core";
-import { TokenProvider } from "../providers/token";
-import { TrustScoreProvider } from "../providers/trustScoreProvider";
-
-export class SimulationService {
- private trustScoreProvider: TrustScoreProvider;
-
- constructor() {
- this.trustScoreProvider = new TrustScoreProvider();
- }
-
- async simulateTrade(
- tokenAddress: string,
- amount: number
- ): Promise<{
- expectedPrice: number;
- priceImpact: number;
- recommendedAction: "EXECUTE" | "ABORT";
- reason: string;
- }> {
- try {
- const evaluation =
- await this.trustScoreProvider.evaluateToken(tokenAddress);
- const tokenProvider = new TokenProvider(tokenAddress);
- const tokenData = await tokenProvider.getProcessedTokenData();
-
- // Get liquidity from DexScreener data
- const liquidity =
- tokenData.dexScreenerData.pairs[0]?.liquidity?.usd || 0;
- const priceImpact = (amount / liquidity) * 100;
-
- let recommendedAction: "EXECUTE" | "ABORT" = "ABORT";
- let reason = "Default safety check failed";
-
- if (evaluation.trustScore > 0.4 && priceImpact < 1) {
- recommendedAction = "EXECUTE";
- reason = "Trade meets safety parameters";
- }
-
- return {
- expectedPrice: tokenData.tradeData.price,
- priceImpact,
- recommendedAction,
- reason,
- };
- } catch (error) {
- elizaLogger.error("Trade simulation failed:", error);
- throw error;
- }
- }
-}
diff --git a/packages/plugin-rabbi-trader/src/services/twitter.ts b/packages/plugin-rabbi-trader/src/services/twitter.ts
deleted file mode 100644
index c3617cfa009..00000000000
--- a/packages/plugin-rabbi-trader/src/services/twitter.ts
+++ /dev/null
@@ -1,181 +0,0 @@
-import { z } from "zod";
-import { elizaLogger } from "@elizaos/core";
-import { MAX_TWEETS_PER_HOUR } from "../constants";
-import type { MarketData } from "../types";
-
-export const TwitterConfigSchema = z.object({
- enabled: z.boolean(),
- username: z.string().min(1),
- dryRun: z.boolean().optional().default(false),
- apiKey: z.string().optional(),
-});
-
-export interface TradeAlert {
- token: string;
- amount: number;
- trustScore: number;
- riskLevel: "LOW" | "MEDIUM" | "HIGH";
- marketData: {
- priceChange24h: number;
- volume24h: number;
- liquidity: {
- usd: number;
- };
- };
- timestamp: number;
- signature?: string;
- action?: "BUY" | "SELL" | "WAIT" | "SKIP";
- reason?: string;
- price?: number;
- profitPercent?: string;
- profitUsd?: string;
-}
-
-export interface TradeBuyAlert {
- token: string;
- tokenAddress: string;
- amount: number;
- trustScore: number;
- riskLevel: "LOW" | "MEDIUM" | "HIGH";
- marketData: MarketData;
- timestamp: number;
- signature?: string;
- hash?: string;
- explorerUrl?: string;
- action?: "BUY" | "SELL" | "WAIT" | "SKIP";
- reason?: string;
- price?: number;
- profitPercent?: string;
- profitUsd?: string;
-}
-
-// Set up trade notification function
-export const tweetTrade = async (
- twitterService: TwitterService,
- alert: TradeBuyAlert,
-) => {
- if (twitterService) {
- await twitterService.postTradeAlert({
- ...alert,
- timestamp: Date.now(),
- });
- }
-};
-
-export function canTweet(tweetType: "trade" | "market_search" | "shabbat" | "holiday"): boolean {
- const now = Date.now();
- const hourKey = `tweets_${tweetType}_${Math.floor(now / 3600000)}`;
-
- // Simple in-memory rate limiting
- const tweetCounts = new Map();
- const currentCount = tweetCounts.get(hourKey) || 0;
-
- if (currentCount >= MAX_TWEETS_PER_HOUR[tweetType]) {
- elizaLogger.warn(`Tweet rate limit reached for ${tweetType}`);
- return false;
- }
-
- tweetCounts.set(hourKey, currentCount + 1);
- return true;
-}
-
-/*
-interface TweetOptions {
- skipRateLimit?: boolean;
- type?: 'trade' | 'market_search' | 'shabbat' | 'holiday';
-}
-*/
-
-export class TwitterService {
- private client: any;
- private config: z.infer;
-
- // Add public getter for config
- public getConfig() {
- return this.config;
- }
-
- constructor(client: any, config: z.infer) {
- this.client = client;
- this.config = config;
- }
-
- async postTradeAlert(alert: TradeBuyAlert): Promise {
- try {
- const tweetContent = this.formatBuyAlert(alert);
-
- if (this.config.dryRun) {
- elizaLogger.log(
- "Dry run mode - would have posted tweet:",
- tweetContent,
- );
- return true;
- }
-
- if (!canTweet("trade")) {
- elizaLogger.warn("Trade tweet rate limit reached");
- return false;
- }
-
- // Use the correct client structure
- await this.client.post.client.twitterClient.sendTweet(tweetContent);
- elizaLogger.log("Successfully posted trade alert to Twitter:", {
- content: tweetContent,
- });
-
- return true;
- } catch (error) {
- elizaLogger.error("Failed to post trade alert to Twitter:", {
- error: error instanceof Error ? error.message : String(error),
- alert,
- });
- return false;
- }
- }
-
- private formatBuyAlert(alert: TradeBuyAlert): string {
- const priceChangePrefix = alert.marketData.priceChange24h >= 0 ? "+" : "";
- const trustScoreEmoji =
- alert.trustScore >= 0.8 ? "🟢" : alert.trustScore >= 0.5 ? "🟡" : "🔴";
-
-
- // Don't include explorer URL if we don't have a valid signature/hash
- const hasValidTxId = alert.hash || alert.signature;
- const explorerUrl = hasValidTxId
- ? `https://solscan.io/tx/${alert.signature}`
- : null;
-
- if (alert.action === "SELL") {
- // Simplified SELL format
- const actionEmoji =
- Number(alert.profitPercent?.replace("%", "")) >= 0
- ? "💰 PROFIT SELL"
- : "🔴 LOSS SELL";
-
- const lines = [
- `${actionEmoji} | ${alert.token}`,
- `📊 P/L: ${alert.profitPercent}`,
- `⚠️ Risk: ${alert.riskLevel}`,
- `💲 Price: $${alert.price?.toFixed(6)}`,
- `📈 24h: ${priceChangePrefix}${alert.marketData.priceChange24h.toFixed(1)}%`,
- explorerUrl ? `🔍 ${explorerUrl}` : null,
- `$${alert.token}`,
- ];
-
- return lines.filter(Boolean).join("\n");
- } else {
- // Simplified BUY format
- const lines = [
- `🟢 BUY | ${alert.token}`,
- `🎯 Trust: ${trustScoreEmoji} ${(alert.trustScore * 100).toFixed(0)}%`,
- `📈 24h: ${priceChangePrefix}${alert.marketData.priceChange24h.toFixed(1)}%`,
- `⚠️ Risk: ${alert.riskLevel}`,
- `💲 Price: $${alert.price?.toFixed(6)}`,
- explorerUrl ? `🔍 ${explorerUrl}` : null,
- `$${alert.token}`,
- ];
-
- return lines.filter(Boolean).join("\n");
- }
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-rabbi-trader/src/swap.ts b/packages/plugin-rabbi-trader/src/swap.ts
deleted file mode 100644
index 0e1e0c734b4..00000000000
--- a/packages/plugin-rabbi-trader/src/swap.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import {
- type Connection,
- PublicKey,
- Transaction,
- type TransactionInstruction,
- SystemProgram,
- LAMPORTS_PER_SOL,
-} from "@solana/web3.js";
-
-export interface SwapParams {
- fromToken: string;
- toToken: string;
- amount: number;
- slippage: number;
- swapMode?: "ExactIn" | "ExactOut";
-}
-
-export async function executeSwap(
- connection: Connection,
- walletPubkey: PublicKey,
- params: SwapParams,
-): Promise<{ signature: string }> {
- // Create transaction
- const tx = new Transaction();
-
- // Add swap instruction
- const swapIx = await createSwapInstruction(connection, walletPubkey, params);
- tx.add(swapIx);
-
- // Get recent blockhash
- const { blockhash } = await connection.getRecentBlockhash();
- tx.recentBlockhash = blockhash;
- tx.feePayer = walletPubkey;
-
- // Send and confirm transaction
- const signature = await connection.sendTransaction(tx, []);
- await connection.confirmTransaction(signature);
-
- return { signature };
-}
-
-export async function createSwapInstruction(
- connection: Connection,
- walletPubkey: PublicKey,
- params: SwapParams,
-): Promise {
- // For now, just create a simple SOL transfer instruction
- return SystemProgram.transfer({
- fromPubkey: walletPubkey,
- toPubkey: new PublicKey(params.toToken),
- lamports: params.amount * LAMPORTS_PER_SOL,
- });
-}
-
-export async function getTokenAccount(
- connection: Connection,
- walletPubkey: PublicKey,
- _mint: PublicKey,
-): Promise {
- // For SOL transfers, just return the wallet pubkey
- return walletPubkey;
-}
diff --git a/packages/plugin-rabbi-trader/src/tokenUtils.ts b/packages/plugin-rabbi-trader/src/tokenUtils.ts
deleted file mode 100644
index 0e84ddac6fd..00000000000
--- a/packages/plugin-rabbi-trader/src/tokenUtils.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as fs from "fs";
-import * as path from "path";
-import { elizaLogger } from "@elizaos/core";
-
-export function loadTokenAddresses(): string[] {
- try {
- const filePath = path.resolve(
- process.cwd(),
- "../characters/tokens/tokenaddresses.json"
- );
- const data = fs.readFileSync(filePath, "utf8");
- const addresses = JSON.parse(data);
- elizaLogger.log("Loaded token addresses:", addresses);
- return addresses;
- } catch (error) {
- elizaLogger.error("Failed to load token addresses:", error);
- throw new Error("Token addresses file not found or invalid");
- }
-}
diff --git a/packages/plugin-rabbi-trader/src/types/index.ts b/packages/plugin-rabbi-trader/src/types/index.ts
deleted file mode 100644
index 75247c3726f..00000000000
--- a/packages/plugin-rabbi-trader/src/types/index.ts
+++ /dev/null
@@ -1,112 +0,0 @@
-export * from "./token";
-
-export type MarketData = {
- priceChange24h: number;
- volume24h: number;
- liquidity: {
- usd: number;
- };
-};
-
-export type Position = {
- token: string;
- tokenAddress: string;
- entryPrice: number;
- amount: number;
- timestamp: number;
- sold?: boolean;
- exitPrice?: number;
- exitTimestamp?: number;
- initialMetrics: {
- trustScore: number;
- volume24h: number;
- liquidity: { usd: number };
- riskLevel: "LOW" | "MEDIUM" | "HIGH";
- };
- highestPrice?: number;
- partialTakeProfit?: boolean;
-};
-
-export type TokenAnalysis = {
- security: {
- ownerBalance: string;
- creatorBalance: string;
- ownerPercentage: number;
- top10HolderPercent: number;
- };
- trading: {
- price: number;
- priceChange24h: number;
- volume24h: number;
- uniqueWallets24h: number;
- walletChanges: {
- unique_wallet_30m_change_percent: number;
- unique_wallet_1h_change_percent: number;
- unique_wallet_24h_change_percent: number;
- };
- };
- market: {
- liquidity: number;
- marketCap: number;
- fdv: number;
- };
-};
-
-// Add interface for 0x quote response
-export interface ZeroExQuote {
- price: string;
- guaranteedPrice: string;
- estimatedPriceImpact: string;
- to: string;
- data: string;
- value: string;
- gas: string;
- estimatedGas: string;
- gasPrice: string;
- protocolFee: string;
- minimumProtocolFee: string;
- buyAmount: string;
- sellAmount: string;
- sources: Array<{
- name: string;
- proportion: string;
- }>;
- buyTokenAddress: string;
- sellTokenAddress: string;
- allowanceTarget: string;
- gasless?: {
- gasEstimate: string;
- approvalGasEstimate: string;
- feeToken: string;
- feeAmount: string;
- feeRecipient: string;
- validTo: number;
- signature: string;
- };
- transaction?: {
- data: string;
- to: string;
- value: string;
- gas: string;
- gasPrice: string;
- };
- permit2?: {
- eip712?: any;
- signature?: string;
- };
-}
-
-// Add new interface for 0x price response
-export interface ZeroExPriceResponse extends ZeroExQuote {
- issues?: {
- allowance?: {
- spender: string;
- };
- };
-}
-
-// Add a new interface to track analyzed tokens
-export interface TokenAnalysisState {
- lastAnalyzedIndex: number;
- analyzedTokens: Set;
-}
diff --git a/packages/plugin-rabbi-trader/src/types/token.ts b/packages/plugin-rabbi-trader/src/types/token.ts
deleted file mode 100644
index ecc0efb0476..00000000000
--- a/packages/plugin-rabbi-trader/src/types/token.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface TokenSecurityData {
- ownerBalance: string;
- creatorBalance: string;
- ownerPercentage: number;
- creatorPercentage: number;
- top10HolderBalance: string;
- top10HolderPercent: number;
-}
-
-export interface TokenTradeData {
- price: number;
- priceChange24h: number;
- volume24h: number;
- volume24hUsd: string;
- uniqueWallets24h: number;
- uniqueWallets24hChange: number;
-}
-
-export interface DexScreenerPair {
- chainId: string;
- dexId: string;
- url: string;
- pairAddress: string;
- baseToken: {
- address: string;
- name: string;
- symbol: string;
- };
- quoteToken: {
- address: string;
- name: string;
- symbol: string;
- };
- priceUsd: string;
- priceChange: {
- m5: number;
- h1: number;
- h24: number;
- };
- liquidity: {
- usd: number;
- base: number;
- quote: number;
- };
- volume: {
- h24: number;
- };
- txns: {
- h24: {
- buys: number;
- sells: number;
- };
- };
- fdv: number;
- marketCap: number;
-}
-
-export interface ProcessedTokenData {
- security: TokenSecurityData;
- tradeData: TokenTradeData;
- dexScreenerData: {
- pairs: DexScreenerPair[];
- };
- holderDistributionTrend: string;
- highValueHolders: Array<{
- holderAddress: string;
- balanceUsd: string;
- }>;
- recentTrades: boolean;
- highSupplyHoldersCount: number;
- tokenCodex?: {
- isScam: boolean;
- };
-}
diff --git a/packages/plugin-rabbi-trader/src/utils.ts b/packages/plugin-rabbi-trader/src/utils.ts
deleted file mode 100644
index 064047af812..00000000000
--- a/packages/plugin-rabbi-trader/src/utils.ts
+++ /dev/null
@@ -1,168 +0,0 @@
-import { elizaLogger, type IAgentRuntime, settings, type State } from "@elizaos/core";
-import { PublicKey } from "@solana/web3.js";
-import { PROVIDER_CONFIG } from "./config";
-import { ANALYSIS_HISTORY_EXPIRY } from "./constants";
-
-export function isValidSolanaAddress(address: string): boolean {
- try {
- // Check if it's a valid Solana public key format
- new PublicKey(address);
- return true;
- } catch {
- return false;
- }
-}
-
-export async function fetchWithRetry(
- url: string,
- options: RequestInit = {},
- chain: "solana" | "base" = "solana"
-): Promise {
- let lastError: Error;
-
- for (let i = 0; i < PROVIDER_CONFIG.MAX_RETRIES; i++) {
- try {
- elizaLogger.log(`Attempt ${i + 1} for ${url} with chain ${chain}`);
-
- // Ensure headers are properly initialized
- const headers = {
- Accept: "application/json",
- "x-chain": chain,
- "X-API-KEY": settings.BIRDEYE_API_KEY || "",
- ...options.headers,
- };
-
- const response = await fetch(url, {
- ...options,
- headers,
- });
-
- const responseText = await response.text();
-
- if (!response.ok) {
- throw new Error(
- `HTTP error! status: ${response.status}, message: ${responseText}`
- );
- }
-
- try {
- return JSON.parse(responseText);
- } catch (parseError) {
- throw new Error(
- `Failed to parse response: ${responseText}, error: ${parseError.message}`
- );
- }
- } catch (error) {
- elizaLogger.error(`Attempt ${i + 1} failed:`, {
- error: error instanceof Error ? error.message : String(error),
- url,
- chain,
- attempt: i + 1,
- });
- lastError =
- error instanceof Error ? error : new Error(String(error));
-
- if (i < PROVIDER_CONFIG.MAX_RETRIES - 1) {
- await new Promise((resolve) =>
- setTimeout(
- resolve,
- PROVIDER_CONFIG.RETRY_DELAY * Math.pow(2, i)
- )
- );
- continue;
- }
- }
- }
-
- throw lastError;
-}
-
-export function decodeBase58(str: string): Uint8Array {
- const ALPHABET =
- "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
- const ALPHABET_MAP = new Map(
- ALPHABET.split("").map((c, i) => [c, BigInt(i)])
- );
-
- let result = BigInt(0);
- for (const char of str) {
- const value = ALPHABET_MAP.get(char);
- if (value === undefined) throw new Error("Invalid base58 character");
- result = result * BigInt(58) + value;
- }
-
- const bytes = [];
- while (result > 0n) {
- bytes.unshift(Number(result & 0xffn));
- result = result >> 8n;
- }
-
- for (let i = 0; i < str.length && str[i] === "1"; i++) {
- bytes.unshift(0);
- }
-
- return new Uint8Array(bytes);
-}
-
-interface AnalyzedToken {
- address: string;
- timestamp: number;
- symbol: string;
-}
-
-export async function manageAnalyzedTokens(
- runtime: IAgentRuntime,
- state: any,
- newToken?: AnalyzedToken
-): Promise {
- try {
- const historyKey = "analyzed_tokens_history";
- let history: AnalyzedToken[] = [];
-
- if (!state) {
- state = {};
- }
-
- if (state[historyKey]) {
- try {
- const parsed = JSON.parse(state[historyKey]);
- if (Array.isArray(parsed)) {
- history = parsed;
- }
- } catch (e) {
- elizaLogger.warn("Failed to parse history, resetting", e);
- }
- }
-
- const now = Date.now();
- history = history.filter(
- (token) =>
- token &&
- token.timestamp &&
- now - token.timestamp < ANALYSIS_HISTORY_EXPIRY
- );
-
- if (newToken) {
- history.push(newToken);
- }
-
- // Update state with roomId
- state = await runtime.updateRecentMessageState({
- ...state,
- userId: runtime.agentId,
- agentId: runtime.agentId,
- roomId: runtime.agentId,
- content: {
- ...state.content,
- [historyKey]: JSON.stringify(history),
- },
- } as State);
-
- return history;
- } catch (error) {
- elizaLogger.error("Failed to manage analyzed tokens history:", {
- error: error instanceof Error ? error.message : error,
- });
- return [];
- }
-}
diff --git a/packages/plugin-rabbi-trader/src/utils/bignumber.ts b/packages/plugin-rabbi-trader/src/utils/bignumber.ts
deleted file mode 100644
index 8c3c16111f8..00000000000
--- a/packages/plugin-rabbi-trader/src/utils/bignumber.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import BigNumber from "bignumber.js";
-
-// Re-export BigNumber constructor
-export const BN = BigNumber;
-
-// Helper function to create new BigNumber instances
-export function toBN(value: string | number | BigNumber): BigNumber {
- return new BigNumber(value);
-}
-
diff --git a/packages/plugin-rabbi-trader/src/wallet.ts b/packages/plugin-rabbi-trader/src/wallet.ts
deleted file mode 100644
index 66a423715f7..00000000000
--- a/packages/plugin-rabbi-trader/src/wallet.ts
+++ /dev/null
@@ -1,276 +0,0 @@
-import { elizaLogger, type IAgentRuntime } from "@elizaos/core";
-import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js";
-import { decodeBase58 } from "./utils";
-import { SAFETY_LIMITS } from "./constants";
-
-/**
- * Gets wallet keypair from runtime settings
- * @param runtime Agent runtime environment
- * @returns Solana keypair for transactions
- * @throws Error if private key is missing or invalid
- */
-export function getWalletKeypair(runtime?: IAgentRuntime): Keypair {
- // Check chain type from token address or configuration
-
- const privateKeyString = runtime?.getSetting("WALLET_PRIVATE_KEY");
- if (!privateKeyString) {
- throw new Error("No wallet private key configured");
- }
-
- try {
- const privateKeyBytes = decodeBase58(privateKeyString);
- return Keypair.fromSecretKey(privateKeyBytes);
- } catch (error) {
- elizaLogger.error("Failed to create wallet keypair:", error);
- throw error;
- }
-}
-
-/**
- * Gets current SOL balance for wallet
- * @param runtime Agent runtime environment
- * @returns Balance in SOL
- */
-export async function getWalletBalance(
- runtime: IAgentRuntime
-): Promise {
- try {
- // Existing Solana balance logic
- const walletKeypair = getWalletKeypair(runtime);
- const walletPubKey = walletKeypair.publicKey;
- const connection = new Connection(
- runtime.getSetting("SOLANA_RPC_URL") ||
- "https://api.mainnet-beta.solana.com"
- );
-
- const balance = await connection.getBalance(walletPubKey);
- const solBalance = balance / 1e9;
-
- elizaLogger.log("Fetched Solana wallet balance:", {
- address: walletPubKey.toBase58(),
- lamports: balance,
- sol: solBalance,
- });
-
- return solBalance;
- } catch (error) {
- elizaLogger.error("Failed to get wallet balance:", error);
- return 0;
- }
-}
-
-// Add helper function to get connection
-async function getConnection(runtime: IAgentRuntime): Promise {
- return new Connection(
- runtime.getSetting("SOLANA_RPC_URL") || "https://api.mainnet-beta.solana.com"
- );
-}
-
-// Add executeTrade function
-export async function executeTrade(
- runtime: IAgentRuntime,
- params: {
- tokenAddress: string;
- amount: number;
- slippage: number;
- isSell?: boolean;
- chain?: "base" | "solana";
- },
- retryCount = 0
-): Promise {
- // Existing Solana trade logic remains unchanged
- try {
- elizaLogger.log("Executing Solana trade with params:", params);
-
- const SOL_ADDRESS = "So11111111111111111111111111111111111111112";
-
- if (!params.isSell && params.amount < SAFETY_LIMITS.MINIMUM_TRADE) {
- elizaLogger.warn("Trade amount too small:", {
- amount: params.amount,
- minimumRequired: SAFETY_LIMITS.MINIMUM_TRADE,
- });
- return {
- success: false,
- error: "Trade amount too small",
- details: {
- amount: params.amount,
- minimumRequired: SAFETY_LIMITS.MINIMUM_TRADE,
- },
- };
- }
-
- const walletKeypair = getWalletKeypair(runtime);
- const connection = await getConnection(runtime);
-
- // Setup swap parameters
- const inputTokenCA = params.isSell ? params.tokenAddress : SOL_ADDRESS;
- const outputTokenCA = params.isSell ? SOL_ADDRESS : params.tokenAddress;
- const swapAmount = Math.floor(params.amount * 1e9);
-
- elizaLogger.log("Trade execution details:", {
- isSell: params.isSell,
- inputToken: inputTokenCA,
- outputToken: outputTokenCA,
- amount: params.amount,
- slippage: params.slippage,
- });
-
- // Get quote
- const quoteResponse = await fetch(
- `https://quote-api.jup.ag/v6/quote?inputMint=${inputTokenCA}&outputMint=${outputTokenCA}&amount=${swapAmount}&slippageBps=${Math.floor(params.slippage * 10000)}`
- );
-
- if (!quoteResponse.ok) {
- const error = await quoteResponse.text();
- elizaLogger.warn("Quote request failed:", {
- status: quoteResponse.status,
- error,
- });
- return {
- success: false,
- error: "Failed to get quote",
- details: { status: quoteResponse.status, error },
- };
- }
-
- const quoteData = await quoteResponse.json();
- if (!quoteData || quoteData.error) {
- elizaLogger.warn("Invalid quote data:", quoteData);
- return {
- success: false,
- error: "Invalid quote data",
- details: quoteData,
- };
- }
-
- elizaLogger.log("Quote received:", quoteData);
-
- // Get swap transaction
- const swapResponse = await fetch("https://quote-api.jup.ag/v6/swap", {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify({
- quoteResponse: quoteData,
- userPublicKey: walletKeypair.publicKey.toString(),
- wrapAndUnwrapSol: true,
- computeUnitPriceMicroLamports: 2000000,
- dynamicComputeUnitLimit: true,
- }),
- });
-
- const swapData = await swapResponse.json();
- if (!swapData?.swapTransaction) {
- throw new Error("No swap transaction returned");
- }
-
- elizaLogger.log("Swap transaction received");
-
- // Deserialize transaction
- const transactionBuf = Buffer.from(swapData.swapTransaction, "base64");
- const tx = VersionedTransaction.deserialize(transactionBuf);
-
- // Get fresh blockhash and sign transaction
- const { blockhash, lastValidBlockHeight } =
- await connection.getLatestBlockhash("finalized");
- tx.message.recentBlockhash = blockhash;
- tx.sign([walletKeypair]);
-
- // Send with confirmation using more lenient settings
- const signature = await connection.sendTransaction(tx, {
- skipPreflight: false,
- maxRetries: 5,
- preflightCommitment: "processed",
- });
-
- elizaLogger.log("Transaction sent:", signature);
-
- // Wait for confirmation with more lenient settings
- const confirmation = await connection.confirmTransaction(
- {
- signature,
- blockhash,
- lastValidBlockHeight,
- },
- "processed"
- ); // Use 'processed' instead of default 'finalized'
-
- if (confirmation.value.err) {
- throw new Error(`Transaction failed: ${confirmation.value.err}`);
- }
-
- // Add additional verification
- const status = await connection.getSignatureStatus(signature);
- if (status.value?.err) {
- throw new Error(
- `Transaction verification failed: ${status.value.err}`
- );
- }
-
- elizaLogger.log("Solana trade executed successfully:", {
- signature,
- explorer: `https://solscan.io/tx/${signature}`,
- });
-
- return {
- success: true,
- signature,
- confirmation,
- explorer: `https://solscan.io/tx/${signature}`,
- };
- } catch (error) {
- // Handle blockhash errors with retry and longer timeout
- if (
- (error.message?.includes("Blockhash not found") ||
- error.message?.includes("block height exceeded")) &&
- retryCount < 3
- ) {
- elizaLogger.warn(
- `Transaction error, retrying (${retryCount + 1}/3)...`
- );
- await new Promise((resolve) => setTimeout(resolve, 5000)); // Longer delay between retries
- return executeTrade(runtime, params, retryCount + 1);
- }
-
- elizaLogger.error("Trade execution failed:", {
- error: error instanceof Error ? error.message : error,
- stack: error instanceof Error ? error.stack : undefined,
- params,
- retryCount,
- });
-
- return {
- success: false,
- error: error.message || error,
- params,
- stack: error instanceof Error ? error.stack : undefined,
- };
- }
-}
-
-export async function getChainWalletBalance(
- runtime: IAgentRuntime,
- _tokenAddress: string
-): Promise {
- // Get Solana balance
- return await getWalletBalance(runtime);
-}
-
-// Add this helper function at the top level
-export async function simulateTransaction(
- client: any,
- tx: any
-): Promise {
- try {
- const result = await client.call({
- account: client.account,
- to: tx.to,
- data: tx.data,
- value: tx.value,
- gas: tx.gas,
- gasPrice: tx.gasPrice,
- });
- return result;
- } catch (error) {
- return `Simulation failed: ${error.message}`;
- }
-}
diff --git a/packages/plugin-rabbi-trader/tsconfig.json b/packages/plugin-rabbi-trader/tsconfig.json
deleted file mode 100644
index 33e9858f482..00000000000
--- a/packages/plugin-rabbi-trader/tsconfig.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "extends": "../core/tsconfig.json",
- "compilerOptions": {
- "outDir": "dist",
- "rootDir": "./src",
- "declaration": true
- },
- "include": [
- "src"
- ]
-}
\ No newline at end of file
diff --git a/packages/plugin-rabbi-trader/tsup.config.ts b/packages/plugin-rabbi-trader/tsup.config.ts
deleted file mode 100644
index b0c1a8a9f46..00000000000
--- a/packages/plugin-rabbi-trader/tsup.config.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { defineConfig } from "tsup";
-
-export default defineConfig({
- entry: ["src/index.ts"],
- outDir: "dist",
- sourcemap: true,
- clean: true,
- format: ["esm"], // Ensure you're targeting CommonJS
- external: [
- "dotenv", // Externalize dotenv to prevent bundling
- "fs", // Externalize fs to use Node.js built-in module
- "path", // Externalize other built-ins if necessary
- "@reflink/reflink",
- "@node-llama-cpp",
- "https",
- "http",
- "agentkeepalive",
- "viem",
- "@lifi/sdk"
- ],
-});
diff --git a/packages/plugin-rabbi-trader/vitest.config.ts b/packages/plugin-rabbi-trader/vitest.config.ts
deleted file mode 100644
index 8083c60c8aa..00000000000
--- a/packages/plugin-rabbi-trader/vitest.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
- test: {
- globals: true,
- environment: 'node',
- include: ['__tests__/**/*.test.ts'],
- coverage: {
- provider: 'v8',
- reporter: ['text', 'json', 'html'],
- include: ['src/**/*.ts'],
- exclude: ['**/*.d.ts', '**/*.test.ts']
- }
- }
-});
diff --git a/packages/plugin-solana-agent-kit/package.json b/packages/plugin-solana-agent-kit/package.json
index 1d68fd29d0f..747c5ce46ba 100644
--- a/packages/plugin-solana-agent-kit/package.json
+++ b/packages/plugin-solana-agent-kit/package.json
@@ -5,7 +5,7 @@
"type": "module",
"types": "dist/index.d.ts",
"dependencies": {
- "@coral-xyz/anchor": "0.28.0",
+ "@coral-xyz/anchor": "0.30.1",
"@elizaos/core": "workspace:*",
"@elizaos/plugin-tee": "workspace:*",
"@elizaos/plugin-trustdb": "workspace:*",
diff --git a/packages/plugin-solana/package.json b/packages/plugin-solana/package.json
index 9e4f58cb68b..799600d743d 100644
--- a/packages/plugin-solana/package.json
+++ b/packages/plugin-solana/package.json
@@ -19,7 +19,7 @@
"dist"
],
"dependencies": {
- "@coral-xyz/anchor": "0.28.0",
+ "@coral-xyz/anchor": "0.30.1",
"@elizaos/core": "workspace:*",
"@elizaos/plugin-tee": "workspace:*",
"@elizaos/plugin-trustdb": "workspace:*",
diff --git a/packages/plugin-spheron/package.json b/packages/plugin-spheron/package.json
index 7270daf24e1..0578369a7fa 100644
--- a/packages/plugin-spheron/package.json
+++ b/packages/plugin-spheron/package.json
@@ -15,7 +15,8 @@
},
"dependencies": {
"@elizaos/core": "workspace:*",
- "@spheron/protocol-sdk": "^1.0.0"
+ "@spheron/protocol-sdk": "^1.0.0",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@types/node": "^20.0.0",
diff --git a/packages/plugin-stargaze/package.json b/packages/plugin-stargaze/package.json
index 0362bc1acf9..74202701e33 100644
--- a/packages/plugin-stargaze/package.json
+++ b/packages/plugin-stargaze/package.json
@@ -7,7 +7,8 @@
"dependencies": {
"@elizaos/core": "workspace:*",
"axios": "^1.6.7",
- "tsup": "^8.3.5"
+ "tsup": "^8.3.5",
+ "zod": "^3.22.4"
},
"devDependencies": {
"@biomejs/biome": "1.5.3"
diff --git a/packages/plugin-suno/tsup.config.ts b/packages/plugin-suno/tsup.config.ts
index b8e24f86409..2191cb30b65 100644
--- a/packages/plugin-suno/tsup.config.ts
+++ b/packages/plugin-suno/tsup.config.ts
@@ -7,5 +7,6 @@ export default defineConfig({
splitting: false,
sourcemap: true,
clean: true,
- external: ["@elizaos/core"]
+ external: [
+ "zod","@elizaos/core"]
});
diff --git a/packages/plugin-udio/tsup.config.ts b/packages/plugin-udio/tsup.config.ts
index adeffa83b80..74dcad9e8ef 100644
--- a/packages/plugin-udio/tsup.config.ts
+++ b/packages/plugin-udio/tsup.config.ts
@@ -7,5 +7,6 @@ export default defineConfig({
splitting: false,
sourcemap: true,
clean: true,
- external: ["@elizaos/core"],
+ external: [
+ "zod","@elizaos/core"],
});
diff --git a/packages/plugin-whatsapp/src/index.ts b/packages/plugin-whatsapp/src/index.ts
index 82a20ffd41e..c6feadf6857 100644
--- a/packages/plugin-whatsapp/src/index.ts
+++ b/packages/plugin-whatsapp/src/index.ts
@@ -11,7 +11,7 @@ export class WhatsAppPlugin implements Plugin {
name: string;
description: string;
- constructor(private config: WhatsAppConfig) {
+ constructor(config: WhatsAppConfig) {
this.name = "WhatsApp Cloud API Plugin";
this.description =
"A plugin for integrating WhatsApp Cloud API with your application.";
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ed52b9e0295..a548376a2de 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -38,13 +38,16 @@ importers:
version: 0.10.0(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1)
'@deepgram/sdk':
specifier: ^3.9.0
- version: 3.10.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
+ version: 3.10.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)
+ '@elizaos-plugins/adapter-sqlite':
+ specifier: workspace:*
+ version: link:packages/adapter-sqlite
'@injectivelabs/sdk-ts':
specifier: ^1.14.33
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.23.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@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.0.1(@typescript-eslint/utils@8.23.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@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
amqplib:
specifier: 0.10.5
version: 0.10.5
@@ -117,415 +120,22 @@ 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.13.1)(terser@5.38.0)
+ version: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
vitest:
specifier: 3.0.5
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
agent:
dependencies:
- '@elizaos/adapter-mongodb':
- specifier: workspace:*
- version: link:../packages/adapter-mongodb
- '@elizaos/adapter-pglite':
- specifier: workspace:*
- version: link:../packages/adapter-pglite
- '@elizaos/adapter-postgres':
- specifier: workspace:*
- version: link:../packages/adapter-postgres
- '@elizaos/adapter-qdrant':
- specifier: workspace:*
- version: link:../packages/adapter-qdrant
- '@elizaos/adapter-redis':
- specifier: workspace:*
- version: link:../packages/adapter-redis
- '@elizaos/adapter-sqlite':
- specifier: workspace:*
- version: link:../packages/adapter-sqlite
- '@elizaos/adapter-supabase':
- specifier: workspace:*
- version: link:../packages/adapter-supabase
- '@elizaos/client-alexa':
- specifier: workspace:*
- version: link:../packages/client-alexa
- '@elizaos/client-auto':
- specifier: workspace:*
- version: link:../packages/client-auto
- '@elizaos/client-deva':
- specifier: workspace:*
- version: link:../packages/client-deva
'@elizaos/client-direct':
specifier: workspace:*
version: link:../packages/client-direct
- '@elizaos/client-discord':
- specifier: workspace:*
- version: link:../packages/client-discord
- '@elizaos/client-farcaster':
- specifier: workspace:*
- version: link:../packages/client-farcaster
- '@elizaos/client-instagram':
- specifier: workspace:*
- version: link:../packages/client-instagram
- '@elizaos/client-lens':
- specifier: workspace:*
- version: link:../packages/client-lens
- '@elizaos/client-simsai':
- specifier: workspace:*
- version: link:../packages/client-simsai
- '@elizaos/client-slack':
- specifier: workspace:*
- version: link:../packages/client-slack
- '@elizaos/client-telegram':
- specifier: workspace:*
- version: link:../packages/client-telegram
- '@elizaos/client-telegram-account':
- specifier: workspace:*
- version: link:../packages/client-telegram-account
- '@elizaos/client-twitter':
- specifier: workspace:*
- version: link:../packages/client-twitter
- '@elizaos/client-xmtp':
- specifier: workspace:*
- version: link:../packages/client-xmtp
'@elizaos/core':
specifier: workspace:*
version: link:../packages/core
- '@elizaos/plugin-0g':
- specifier: workspace:*
- version: link:../packages/plugin-0g
- '@elizaos/plugin-0x':
- specifier: workspace:*
- version: link:../packages/plugin-0x
- '@elizaos/plugin-3d-generation':
- specifier: workspace:*
- version: link:../packages/plugin-3d-generation
- '@elizaos/plugin-abstract':
- specifier: workspace:*
- version: link:../packages/plugin-abstract
- '@elizaos/plugin-agentkit':
- specifier: workspace:*
- version: link:../packages/plugin-agentkit
- '@elizaos/plugin-akash':
- specifier: workspace:*
- version: link:../packages/plugin-akash
- '@elizaos/plugin-allora':
- specifier: workspace:*
- version: link:../packages/plugin-allora
- '@elizaos/plugin-ankr':
- specifier: workspace:*
- version: link:../packages/plugin-ankr
- '@elizaos/plugin-aptos':
- specifier: workspace:*
- version: link:../packages/plugin-aptos
- '@elizaos/plugin-arbitrage':
- specifier: workspace:*
- version: link:../packages/plugin-arbitrage
- '@elizaos/plugin-arthera':
- specifier: workspace:*
- version: link:../packages/plugin-arthera
- '@elizaos/plugin-autonome':
- specifier: workspace:*
- version: link:../packages/plugin-autonome
- '@elizaos/plugin-avail':
- specifier: workspace:*
- version: link:../packages/plugin-avail
- '@elizaos/plugin-avalanche':
- specifier: workspace:*
- version: link:../packages/plugin-avalanche
- '@elizaos/plugin-b2':
- specifier: workspace:*
- version: link:../packages/plugin-b2
- '@elizaos/plugin-binance':
- specifier: workspace:*
- version: link:../packages/plugin-binance
- '@elizaos/plugin-birdeye':
- specifier: workspace:*
- version: link:../packages/plugin-birdeye
- '@elizaos/plugin-bittensor':
- specifier: workspace:*
- version: link:../packages/plugin-bittensor
- '@elizaos/plugin-bnb':
- specifier: workspace:*
- version: link:../packages/plugin-bnb
'@elizaos/plugin-bootstrap':
specifier: workspace:*
version: link:../packages/plugin-bootstrap
- '@elizaos/plugin-chainbase':
- specifier: workspace:*
- version: link:../packages/plugin-chainbase
- '@elizaos/plugin-coinbase':
- specifier: workspace:*
- version: link:../packages/plugin-coinbase
- '@elizaos/plugin-coingecko':
- specifier: workspace:*
- version: link:../packages/plugin-coingecko
- '@elizaos/plugin-coinmarketcap':
- specifier: workspace:*
- version: link:../packages/plugin-coinmarketcap
- '@elizaos/plugin-conflux':
- specifier: workspace:*
- version: link:../packages/plugin-conflux
- '@elizaos/plugin-cosmos':
- specifier: workspace:*
- version: link:../packages/plugin-cosmos
- '@elizaos/plugin-cronos':
- specifier: workspace:*
- version: link:../packages/plugin-cronos
- '@elizaos/plugin-cronoszkevm':
- specifier: workspace:*
- version: link:../packages/plugin-cronoszkevm
- '@elizaos/plugin-dcap':
- specifier: workspace:*
- version: link:../packages/plugin-dcap
- '@elizaos/plugin-depin':
- specifier: workspace:*
- version: link:../packages/plugin-depin
- '@elizaos/plugin-desk-exchange':
- specifier: workspace:*
- version: link:../packages/plugin-desk-exchange
- '@elizaos/plugin-devin':
- specifier: workspace:*
- version: link:../packages/plugin-devin
- '@elizaos/plugin-dexscreener':
- specifier: workspace:*
- version: link:../packages/plugin-dexscreener
- '@elizaos/plugin-di':
- specifier: workspace:*
- version: link:../packages/plugin-di
- '@elizaos/plugin-dkg':
- specifier: workspace:*
- version: link:../packages/plugin-dkg
- '@elizaos/plugin-echochambers':
- specifier: workspace:*
- version: link:../packages/plugin-echochambers
- '@elizaos/plugin-edwin':
- specifier: workspace:*
- version: link:../packages/plugin-edwin
- '@elizaos/plugin-email':
- specifier: workspace:*
- version: link:../packages/plugin-email
- '@elizaos/plugin-email-automation':
- specifier: workspace:*
- version: link:../packages/plugin-email-automation
- '@elizaos/plugin-ethstorage':
- specifier: workspace:*
- version: link:../packages/plugin-ethstorage
- '@elizaos/plugin-evm':
- specifier: workspace:*
- version: link:../packages/plugin-evm
- '@elizaos/plugin-flow':
- specifier: workspace:*
- version: link:../packages/plugin-flow
- '@elizaos/plugin-football':
- specifier: workspace:*
- version: link:../packages/plugin-football
- '@elizaos/plugin-form':
- specifier: workspace:*
- version: link:../packages/plugin-form
- '@elizaos/plugin-fuel':
- specifier: workspace:*
- version: link:../packages/plugin-fuel
- '@elizaos/plugin-gelato':
- specifier: workspace:*
- version: link:../packages/plugin-gelato
- '@elizaos/plugin-genlayer':
- specifier: workspace:*
- version: link:../packages/plugin-genlayer
- '@elizaos/plugin-giphy':
- specifier: workspace:*
- version: link:../packages/plugin-giphy
- '@elizaos/plugin-gitbook':
- specifier: workspace:*
- version: link:../packages/plugin-gitbook
- '@elizaos/plugin-gitcoin-passport':
- specifier: workspace:*
- version: link:../packages/plugin-gitcoin-passport
- '@elizaos/plugin-goat':
- specifier: workspace:*
- version: link:../packages/plugin-goat
- '@elizaos/plugin-holdstation':
- specifier: workspace:*
- version: link:../packages/plugin-holdstation
- '@elizaos/plugin-hyperbolic':
- specifier: workspace:*
- version: link:../packages/plugin-hyperbolic
- '@elizaos/plugin-hyperliquid':
- specifier: workspace:*
- version: link:../packages/plugin-hyperliquid
- '@elizaos/plugin-icp':
- specifier: workspace:*
- version: link:../packages/plugin-icp
- '@elizaos/plugin-image-generation':
- specifier: workspace:*
- version: link:../packages/plugin-image-generation
- '@elizaos/plugin-imgflip':
- specifier: workspace:*
- version: link:../packages/plugin-imgflip
- '@elizaos/plugin-initia':
- specifier: workspace:*
- version: link:../packages/plugin-initia
- '@elizaos/plugin-injective':
- specifier: workspace:*
- version: link:../packages/plugin-injective
- '@elizaos/plugin-intiface':
- specifier: workspace:*
- version: link:../packages/plugin-intiface
- '@elizaos/plugin-iq6900':
- specifier: workspace:*
- version: link:../packages/plugin-iq6900
- '@elizaos/plugin-lens-network':
- specifier: workspace:*
- version: link:../packages/plugin-lens-network
- '@elizaos/plugin-letzai':
- specifier: workspace:*
- version: link:../packages/plugin-letzai
- '@elizaos/plugin-lightning':
- specifier: workspace:*
- version: link:../packages/plugin-lightning
- '@elizaos/plugin-lit':
- specifier: workspace:*
- version: link:../packages/plugin-lit
- '@elizaos/plugin-massa':
- specifier: workspace:*
- version: link:../packages/plugin-massa
- '@elizaos/plugin-mina':
- specifier: workspace:*
- version: link:../packages/plugin-mina
- '@elizaos/plugin-mind-network':
- specifier: workspace:*
- version: link:../packages/plugin-mind-network
- '@elizaos/plugin-moralis':
- specifier: workspace:*
- version: link:../packages/plugin-moralis
- '@elizaos/plugin-movement':
- specifier: workspace:*
- version: link:../packages/plugin-movement
- '@elizaos/plugin-multiversx':
- specifier: workspace:*
- version: link:../packages/plugin-multiversx
- '@elizaos/plugin-near':
- specifier: workspace:*
- version: link:../packages/plugin-near
- '@elizaos/plugin-news':
- specifier: workspace:*
- version: link:../packages/plugin-news
- '@elizaos/plugin-nft-collections':
- specifier: workspace:*
- version: link:../packages/plugin-nft-collections
- '@elizaos/plugin-nft-generation':
- specifier: workspace:*
- version: link:../packages/plugin-nft-generation
- '@elizaos/plugin-node':
- specifier: workspace:*
- version: link:../packages/plugin-node
- '@elizaos/plugin-nvidia-nim':
- specifier: workspace:*
- version: link:../packages/plugin-nvidia-nim
- '@elizaos/plugin-obsidian':
- specifier: workspace:*
- version: link:../packages/plugin-obsidian
- '@elizaos/plugin-omniflix':
- specifier: workspace:*
- version: link:../packages/plugin-omniflix
- '@elizaos/plugin-opacity':
- specifier: workspace:*
- version: link:../packages/plugin-opacity
- '@elizaos/plugin-open-weather':
- specifier: workspace:*
- version: link:../packages/plugin-open-weather
- '@elizaos/plugin-openai':
- specifier: workspace:*
- version: link:../packages/plugin-openai
- '@elizaos/plugin-primus':
- specifier: workspace:*
- version: link:../packages/plugin-primus
- '@elizaos/plugin-pyth-data':
- specifier: workspace:*
- version: link:../packages/plugin-pyth-data
- '@elizaos/plugin-quai':
- specifier: workspace:*
- version: link:../packages/plugin-quai
- '@elizaos/plugin-quick-intel':
- specifier: workspace:*
- version: link:../packages/plugin-quick-intel
- '@elizaos/plugin-router-nitro':
- specifier: workspace:*
- version: link:../packages/plugin-router-nitro
- '@elizaos/plugin-sei':
- specifier: workspace:*
- version: link:../packages/plugin-sei
- '@elizaos/plugin-sgx':
- specifier: workspace:*
- version: link:../packages/plugin-sgx
- '@elizaos/plugin-solana':
- specifier: workspace:*
- version: link:../packages/plugin-solana
- '@elizaos/plugin-solana-agent-kit':
- specifier: workspace:*
- version: link:../packages/plugin-solana-agent-kit
- '@elizaos/plugin-solana-v2':
- specifier: workspace:*
- version: link:../packages/plugin-solana-v2
- '@elizaos/plugin-squid-router':
- specifier: workspace:*
- version: link:../packages/plugin-squid-router
- '@elizaos/plugin-stargaze':
- specifier: workspace:*
- version: link:../packages/plugin-stargaze
- '@elizaos/plugin-starknet':
- specifier: workspace:*
- version: link:../packages/plugin-starknet
- '@elizaos/plugin-story':
- specifier: workspace:*
- version: link:../packages/plugin-story
- '@elizaos/plugin-sui':
- specifier: workspace:*
- version: link:../packages/plugin-sui
- '@elizaos/plugin-suno':
- specifier: workspace:*
- version: link:../packages/plugin-suno
- '@elizaos/plugin-tee':
- specifier: workspace:*
- version: link:../packages/plugin-tee
- '@elizaos/plugin-tee-log':
- specifier: workspace:*
- version: link:../packages/plugin-tee-log
- '@elizaos/plugin-tee-marlin':
- specifier: workspace:*
- version: link:../packages/plugin-tee-marlin
- '@elizaos/plugin-tee-verifiable-log':
- specifier: workspace:*
- version: link:../packages/plugin-tee-verifiable-log
- '@elizaos/plugin-thirdweb':
- specifier: workspace:*
- version: link:../packages/plugin-thirdweb
- '@elizaos/plugin-ton':
- specifier: workspace:*
- version: link:../packages/plugin-ton
- '@elizaos/plugin-trikon':
- specifier: workspace:*
- version: link:../packages/plugin-trikon
- '@elizaos/plugin-twitter':
- specifier: workspace:*
- version: link:../packages/plugin-twitter
- '@elizaos/plugin-udio':
- specifier: workspace:*
- version: link:../packages/plugin-udio
- '@elizaos/plugin-video-generation':
- specifier: workspace:*
- version: link:../packages/plugin-video-generation
- '@elizaos/plugin-web-search':
- specifier: workspace:*
- version: link:../packages/plugin-web-search
- '@elizaos/plugin-zerion':
- specifier: workspace:*
- version: link:../packages/plugin-zerion
- '@elizaos/plugin-zilliqa':
- specifier: workspace:*
- version: link:../packages/plugin-zilliqa
- '@elizaos/plugin-zksync-era':
- specifier: workspace:*
- version: link:../packages/plugin-zksync-era
readline:
specifier: 1.3.0
version: 1.3.0
@@ -631,7 +241,7 @@ importers:
version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.6.3)))
vite-plugin-compression:
specifier: ^0.5.1
- version: 0.5.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0))
+ version: 0.5.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0))
devDependencies:
'@eslint/js':
specifier: ^9.17.0
@@ -656,7 +266,7 @@ importers:
version: 8.23.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.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0))
+ version: 3.7.2(@swc/helpers@0.5.15)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0))
autoprefixer:
specifier: ^10.4.19
version: 10.4.20(postcss@8.5.1)
@@ -701,10 +311,10 @@ importers:
version: 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)
vite:
specifier: ^6.0.5
- version: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)
+ version: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(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.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0))
+ version: 5.1.4(typescript@5.6.3)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0))
docs:
dependencies:
@@ -852,28 +462,6 @@ importers:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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/adapter-redis:
- dependencies:
- '@elizaos/core':
- specifier: workspace:*
- version: link:../core
- ioredis:
- specifier: 5.4.2
- version: 5.4.2
- whatwg-url:
- specifier: 7.1.0
- version: 7.1.0
- devDependencies:
- '@types/ioredis':
- specifier: ^5.0.0
- version: 5.0.0
- tsup:
- specifier: 8.3.5
- version: 8.3.5(@swc/core@1.10.14(@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.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
-
packages/adapter-sqlite:
dependencies:
'@elizaos/core':
@@ -894,13 +482,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: ^3.0.2
- version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/adapter-sqljs:
dependencies:
@@ -938,13 +526,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: ^3.0.2
- version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-alexa:
dependencies:
@@ -972,7 +560,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.6.1
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-auto:
dependencies:
@@ -1087,9 +675,6 @@ importers:
'@elizaos/core':
specifier: workspace:*
version: link:../core
- '@elizaos/plugin-node':
- specifier: workspace:*
- version: link:../plugin-node
discord.js:
specifier: 14.16.3
version: 14.16.3(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -1102,13 +687,16 @@ importers:
whatwg-url:
specifier: 7.1.0
version: 7.1.0
+ zod:
+ specifier: 3.23.8
+ version: 3.23.8
devDependencies:
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.6.1
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-eliza-home:
dependencies:
@@ -1118,13 +706,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: ^1.2.1
- version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-farcaster:
dependencies:
@@ -1140,7 +728,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-github:
dependencies:
@@ -1168,7 +756,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-instagram:
dependencies:
@@ -1193,7 +781,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-lens:
dependencies:
@@ -1212,13 +800,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: ^1.2.1
- version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: ^8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-simsai:
dependencies:
@@ -1283,7 +871,7 @@ importers:
version: 5.7.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@18.19.75)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@18.19.75)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-telegram:
dependencies:
@@ -1302,7 +890,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.6.1
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-telegram-account:
dependencies:
@@ -1324,13 +912,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: 1.1.3
- version: 1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.6.1
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-twitter:
dependencies:
@@ -1352,13 +940,13 @@ importers:
devDependencies:
'@vitest/coverage-v8':
specifier: 1.1.3
- version: 1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.6.1
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/client-xmtp:
dependencies:
@@ -1379,11 +967,11 @@ importers:
specifier: 1.1.0
version: 1.1.0(zod@3.24.1)
'@ai-sdk/anthropic':
- specifier: 0.0.56
- version: 0.0.56(zod@3.24.1)
+ specifier: 1.1.6
+ version: 1.1.6(zod@3.24.1)
'@ai-sdk/google':
- specifier: 0.0.55
- version: 0.0.55(zod@3.24.1)
+ specifier: 1.1.0
+ version: 1.1.0(zod@3.24.1)
'@ai-sdk/google-vertex':
specifier: 0.0.43
version: 0.0.43(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(zod@3.24.1)
@@ -1516,7 +1104,7 @@ importers:
version: 8.16.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)
'@vitest/coverage-v8':
specifier: 2.1.5
- version: 2.1.5(vitest@3.0.5(@types/debug@4.1.12)(@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.38.0))
+ version: 2.1.5(vitest@3.0.5(@types/debug@4.1.12)(@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.38.1))
jest:
specifier: 29.7.0
version: 29.7.0(@types/node@22.8.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.8.4)(typescript@5.6.3))
@@ -1570,6 +1158,8 @@ importers:
specifier: 2.0.0
version: 2.0.0(typescript@5.7.3)
+ packages/dynamic-imports: {}
+
packages/plugin-0g:
dependencies:
'@0glabs/0g-ts-sdk':
@@ -1590,7 +1180,7 @@ importers:
version: 1.5.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-0x:
dependencies:
@@ -1615,7 +1205,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-3d-generation:
dependencies:
@@ -1634,7 +1224,7 @@ importers:
version: 1.5.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-abstract:
dependencies:
@@ -1662,7 +1252,7 @@ importers:
version: 4.9.5
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-agentkit:
dependencies:
@@ -1687,7 +1277,7 @@ importers:
version: 1.9.4
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-akash:
dependencies:
@@ -1757,13 +1347,13 @@ importers:
version: 5.7.3
vite:
specifier: ^5.0.10
- version: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
+ version: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
vite-tsconfig-paths:
specifier: ^4.2.2
- version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))
+ version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
packages/plugin-allora:
dependencies:
@@ -1778,7 +1368,7 @@ importers:
version: 5.1.2
vitest:
specifier: 2.1.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -1858,13 +1448,13 @@ importers:
version: 5.7.3
vite:
specifier: ^5.0.10
- version: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
+ version: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
vite-tsconfig-paths:
specifier: ^4.2.2
- version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))
+ version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-anyone:
dependencies:
@@ -1889,10 +1479,10 @@ importers:
version: 1.9.4
'@vitest/coverage-v8':
specifier: ^1.2.1
- version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-apro:
dependencies:
@@ -1920,7 +1510,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
packages/plugin-aptos:
dependencies:
@@ -1944,7 +1534,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -2015,7 +1605,7 @@ importers:
version: 8.5.14
'@vitest/coverage-v8':
specifier: ^2.1.4
- version: 2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0))
+ version: 2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1))
rimraf:
specifier: ^5.0.5
version: 5.0.10
@@ -2027,7 +1617,7 @@ importers:
version: 5.7.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
packages/plugin-arthera:
dependencies:
@@ -2092,7 +1682,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-autonome:
dependencies:
@@ -2145,13 +1735,13 @@ importers:
version: 20.17.9
'@vitest/coverage-v8':
specifier: ^2.1.8
- version: 2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@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.38.0))
+ version: 2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@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.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-avalanche:
dependencies:
@@ -2170,7 +1760,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-b2:
dependencies:
@@ -2196,6 +1786,9 @@ importers:
'@elizaos/core':
specifier: workspace:*
version: link:../core
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
devDependencies:
'@types/node':
specifier: ^20.0.0
@@ -2205,10 +1798,10 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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)
vite-tsconfig-paths:
specifier: ^5.1.4
- version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0))
+ version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0))
vitest:
specifier: ^3.0.2
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-birdeye:
dependencies:
@@ -2250,7 +1843,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -2273,9 +1866,6 @@ importers:
packages/plugin-bittensor:
dependencies:
- '@elizaos/client-twitter':
- specifier: workspace:*
- version: link:../client-twitter
'@elizaos/core':
specifier: workspace:*
version: link:../core
@@ -2356,7 +1946,7 @@ importers:
version: 1.9.4
vitest:
specifier: ^3.0.5
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-coinbase:
dependencies:
@@ -2387,7 +1977,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-coingecko:
dependencies:
@@ -2406,10 +1996,10 @@ importers:
version: 1.9.4
'@vitest/coverage-v8':
specifier: ^1.2.2
- version: 1.6.1(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 1.6.1(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
vitest:
specifier: ^1.2.2
- version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-coinmarketcap:
dependencies:
@@ -2419,6 +2009,9 @@ importers:
axios:
specifier: ^1.6.7
version: 1.7.9
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
devDependencies:
'@biomejs/biome':
specifier: 1.9.4
@@ -2441,7 +2034,7 @@ importers:
version: 1.9.4
vitest:
specifier: 1.4.0
- version: 1.4.0(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 1.4.0(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-cosmos:
dependencies:
@@ -2503,7 +2096,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.5
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-cronoszkevm:
dependencies:
@@ -2604,7 +2197,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-dexscreener:
dependencies:
@@ -2622,37 +2215,6 @@ importers:
specifier: 1.9.4
version: 1.9.4
- packages/plugin-di:
- dependencies:
- '@elizaos/core':
- specifier: workspace:*
- version: link:../core
- inversify:
- specifier: ^6.2.1
- version: 6.2.2(reflect-metadata@0.2.2)
- reflect-metadata:
- specifier: ^0.2.2
- version: 0.2.2
- uuid:
- specifier: 11.0.3
- version: 11.0.3
- devDependencies:
- '@biomejs/biome':
- specifier: 1.9.4
- version: 1.9.4
- '@types/node':
- specifier: ^20.0.0
- version: 20.17.9
- '@types/uuid':
- specifier: 10.0.0
- version: 10.0.0
- tsup:
- specifier: 8.3.5
- version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@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.38.0)
-
packages/plugin-dkg:
dependencies:
'@elizaos/core':
@@ -2660,7 +2222,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.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3)
+ version: 8.0.6(@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.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(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.14(@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)
@@ -2702,9 +2264,6 @@ importers:
packages/plugin-email:
dependencies:
- '@elizaos/adapter-postgres':
- specifier: workspace:^
- version: link:../adapter-postgres
'@elizaos/core':
specifier: workspace:^
version: link:../core
@@ -2743,43 +2302,6 @@ importers:
specifier: ^5.0.0
version: 5.7.3
- packages/plugin-email-automation:
- dependencies:
- '@elizaos/core':
- specifier: workspace:*
- version: link:../core
- handlebars:
- specifier: ^4.7.8
- version: 4.7.8
- resend:
- specifier: ^2.0.0
- version: 2.1.0
- devDependencies:
- '@biomejs/biome':
- specifier: 1.9.4
- version: 1.9.4
- '@types/jest':
- specifier: ^29.0.0
- version: 29.5.14
- '@types/node':
- specifier: ^20.0.0
- version: 20.17.9
- jest:
- specifier: ^29.0.0
- version: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3))
- rimraf:
- specifier: ^5.0.0
- version: 5.0.10
- ts-jest:
- specifier: ^29.0.0
- 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@20.17.9)(babel-plugin-macros@3.1.0))(typescript@5.7.3)
- typescript:
- specifier: ^5.0.0
- version: 5.7.3
- vitest:
- specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
-
packages/plugin-ethstorage:
dependencies:
'@elizaos/core':
@@ -2868,6 +2390,9 @@ importers:
whatwg-url:
specifier: 7.1.0
version: 7.1.0
+ zod:
+ specifier: 3.23.8
+ version: 3.23.8
devDependencies:
'@biomejs/biome':
specifier: 1.9.4
@@ -2883,7 +2408,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-football:
dependencies:
@@ -2930,13 +2455,13 @@ importers:
version: 4.0.1
fuels:
specifier: 0.97.2
- version: 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ version: 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
tsup:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -2997,6 +2522,9 @@ importers:
tsup:
specifier: ^8.3.5
version: 8.3.5(@swc/core@1.10.14(@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)
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
devDependencies:
'@biomejs/biome':
specifier: 1.9.4
@@ -3174,13 +2702,13 @@ importers:
version: 5.7.3
vite:
specifier: ^5.0.10
- version: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
+ version: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
vite-tsconfig-paths:
specifier: ^4.2.2
- version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))
+ version: 4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-hyperliquid:
dependencies:
@@ -3190,6 +2718,9 @@ importers:
hyperliquid:
specifier: ^1.5.6
version: 1.5.8(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+ zod:
+ specifier: ^3.23.8
+ version: 3.24.1
devDependencies:
'@types/node':
specifier: ^20.0.0
@@ -3276,7 +2807,7 @@ importers:
dependencies:
'@elizaos/adapter-sqlite':
specifier: 0.1.7-alpha.2
- version: 0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(whatwg-url@14.1.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))
+ version: 0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(whatwg-url@14.1.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))
'@elizaos/core':
specifier: workspace:*
version: link:../core
@@ -3545,7 +3076,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.5
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -3609,7 +3140,7 @@ importers:
version: 5.7.3
vitest:
specifier: 2.1.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-multiversx:
dependencies:
@@ -3642,7 +3173,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -3724,7 +3255,7 @@ importers:
version: 5.7.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-nft-generation:
dependencies:
@@ -3787,10 +3318,10 @@ importers:
dependencies:
'@aws-sdk/client-s3':
specifier: ^3.705.0
- version: 3.741.0
+ version: 3.743.0
'@aws-sdk/s3-request-presigner':
specifier: ^3.705.0
- version: 3.741.0
+ version: 3.743.0
'@cliqz/adblocker-playwright':
specifier: 1.34.0
version: 1.34.0(playwright@1.48.2)
@@ -4008,7 +3539,7 @@ importers:
version: 5.7.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-obsidian:
dependencies:
@@ -4071,7 +3602,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4100,6 +3631,9 @@ importers:
whatwg-url:
specifier: 7.1.0
version: 7.1.0
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
packages/plugin-openai:
dependencies:
@@ -4115,7 +3649,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-primus:
dependencies:
@@ -4136,10 +3670,10 @@ importers:
dependencies:
'@elizaos/core':
specifier: ^0.1.7
- version: 0.1.9(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ version: 0.1.9(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
'@pythnetwork/client':
specifier: ^2.22.0
- version: 2.22.0(@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)(utf-8-validate@5.0.10)
+ version: 2.22.1(@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)(utf-8-validate@5.0.10)
'@pythnetwork/hermes-client':
specifier: ^1.3.0
version: 1.3.1(axios@1.7.9)
@@ -4200,7 +3734,7 @@ importers:
version: 5.7.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-quai:
dependencies:
@@ -4221,7 +3755,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4235,61 +3769,6 @@ importers:
specifier: 8.3.5
version: 8.3.5(@swc/core@1.10.14(@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/plugin-rabbi-trader:
- dependencies:
- '@elizaos/client-twitter':
- specifier: workspace:*
- version: link:../client-twitter
- '@elizaos/core':
- specifier: workspace:*
- version: link:../core
- '@elizaos/plugin-solana':
- specifier: workspace:*
- version: link:../plugin-solana
- '@elizaos/plugin-trustdb':
- specifier: workspace:*
- version: link:../plugin-trustdb
- '@goat-sdk/core':
- specifier: 0.3.8
- version: 0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)
- '@goat-sdk/plugin-coingecko':
- specifier: 0.1.4
- version: 0.1.4(@goat-sdk/core@0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(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))
- '@goat-sdk/plugin-erc20':
- specifier: 0.1.7
- version: 0.1.7(@goat-sdk/core@0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(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))
- '@goat-sdk/wallet-viem':
- specifier: 0.1.3
- version: 0.1.3(@goat-sdk/core@0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(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))
- '@solana/web3.js':
- specifier: npm:@solana/web3.js@1.95.8
- version: 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
- bignumber:
- specifier: 1.1.0
- version: 1.1.0
- bignumber.js:
- specifier: 9.1.2
- version: 9.1.2
- node-cache:
- specifier: ^5.1.2
- version: 5.1.2
- tsup:
- specifier: 8.3.5
- version: 8.3.5(@swc/core@1.10.14(@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)
- whatwg-url:
- specifier: 7.1.0
- version: 7.1.0
- ws:
- specifier: ^8.0.0
- version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
- devDependencies:
- '@vitest/coverage-v8':
- specifier: ^1.2.1
- version: 1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0))
- vitest:
- specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
-
packages/plugin-router-nitro:
dependencies:
'@elizaos/core':
@@ -4324,7 +3803,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4391,7 +3870,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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)
vitest:
specifier: 2.1.9
- version: 2.1.9(@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.38.0)
+ version: 2.1.9(@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.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4449,7 +3928,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4508,7 +3987,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-spheron:
dependencies:
@@ -4518,6 +3997,9 @@ importers:
'@spheron/protocol-sdk':
specifier: ^1.0.0
version: 1.3.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
devDependencies:
'@biomejs/biome':
specifier: 1.5.3
@@ -4574,6 +4056,9 @@ importers:
tsup:
specifier: ^8.3.5
version: 8.3.5(@swc/core@1.10.14(@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)
+ zod:
+ specifier: ^3.22.4
+ version: 3.24.1
devDependencies:
'@biomejs/biome':
specifier: 1.5.3
@@ -4607,7 +4092,7 @@ importers:
version: 1.4.0(starknet@6.18.0(encoding@0.1.13))
vitest:
specifier: 2.1.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4645,13 +4130,13 @@ importers:
dependencies:
'@cetusprotocol/aggregator-sdk':
specifier: ^0.3.21
- version: 0.3.21(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)
+ version: 0.3.22(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)
'@elizaos/core':
specifier: workspace:*
version: link:../core
'@mysten/sui':
specifier: ^1.16.0
- version: 1.21.1(typescript@5.7.3)
+ version: 1.21.2(typescript@5.7.3)
axios:
specifier: ^1.7.9
version: 1.7.9
@@ -4669,7 +4154,7 @@ importers:
version: 8.3.5(@swc/core@1.10.14(@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.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4809,7 +4294,7 @@ importers:
version: 11.0.3
vitest:
specifier: 2.1.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4831,7 +4316,7 @@ importers:
version: link:../core
thirdweb:
specifier: ^5.80.0
- version: 5.87.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.87.4(@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.14(@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)
@@ -4915,7 +4400,7 @@ importers:
version: 11.0.3
vitest:
specifier: 2.1.9
- version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
whatwg-url:
specifier: 7.1.0
version: 7.1.0
@@ -4963,7 +4448,7 @@ importers:
version: 1.5.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
packages/plugin-udio:
dependencies:
@@ -5054,7 +4539,7 @@ importers:
version: 5.6.3
vitest:
specifier: ^3.0.0
- version: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ version: 3.0.5(@types/debug@4.1.12)(@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.38.1)
packages/plugin-zerion:
dependencies:
@@ -5222,6 +4707,12 @@ packages:
peerDependencies:
zod: ^3.0.0
+ '@ai-sdk/anthropic@1.1.6':
+ resolution: {integrity: sha512-4TZBg2VoU/F58DmnyfPPGU9wMUTwLP15XyAFSrUqk9sSdjszwcojXw3LE7YbxifZ+RK7wT7lTkuyK1k2UdfFng==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+
'@ai-sdk/google-vertex@0.0.43':
resolution: {integrity: sha512-lmZukH74m6MUl4fbyfz3T4qs5ukDUJ6YB5Dedtu+aK+Mdp05k9qTHAXxWiB8i/VdZqWlS+DEo/+b7pOPX0V7wA==}
engines: {node: '>=18'}
@@ -5235,6 +4726,12 @@ packages:
peerDependencies:
zod: ^3.0.0
+ '@ai-sdk/google@1.1.0':
+ resolution: {integrity: sha512-fOsh87rasHVOxiaMiodMLPGi162fD4dAoNq/k42hUHec7d9/zSvgY7L7xJrFmuRlFNEz1mbsB5VFZBVHsOU3oA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+
'@ai-sdk/groq@0.0.3':
resolution: {integrity: sha512-Iyj2p7/M0TVhoPrQfSiwfvjTpZFfc17a6qY/2s22+VgpT0yyfai9dVyLbfUAdnNlpGGrjDpxPHqK1L03r4KlyA==}
engines: {node: '>=18'}
@@ -5487,11 +4984,11 @@ packages:
peerDependencies:
openapi-types: '>=7'
- '@apollo/client@3.12.9':
- resolution: {integrity: sha512-rH2Vzfbp+IR0l/xAjUIbDH4/sqBzPATMbzXv/L36E33yhp40yM5LFJnC6cc4YDPUH2gom7Dk4BrYZVLbFpYTsA==}
+ '@apollo/client@3.12.10':
+ resolution: {integrity: sha512-XVNOBLkU3mC/tmDSJhZ2lv0sgq8ahHTLtjMeCclcsRinXfUfV8neZQ+OAkE0Mkd0uYsaRjijN51xu0ok39mqbA==}
peerDependencies:
graphql: ^15.0.0 || ^16.0.0
- graphql-ws: ^5.5.5
+ graphql-ws: ^5.5.5 || ^6.0.3
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc
subscriptions-transport-ws: ^0.9.0 || ^0.11.0
@@ -5554,24 +5051,24 @@ packages:
'@aws-crypto/util@5.2.0':
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
- '@aws-sdk/client-bedrock-runtime@3.741.0':
- resolution: {integrity: sha512-YYNpzVG9Dwt131BkSrBnRo8yUnrJz7pYpvMYq78mz+1etFTj0rtZWG8+/jNIucbPFjtq/8RVTAtbjNb2v3eBRA==}
+ '@aws-sdk/client-bedrock-runtime@3.743.0':
+ resolution: {integrity: sha512-pM/Bk/T86/f9W8H2A6WJ6HSebkHOY7w28D8O9IPhwJz/ge6q9CxJmoV2vD0aI1fGV5cAhkdFlVVxlA4T54rD1g==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-polly@3.741.0':
- resolution: {integrity: sha512-ve3yGgwVf2HN5JVz9vu2otknrHzhJyJAT1NkpO0Pztsu04mZ4XZMWY34bY+GB/CZtPcZHzNy7UTY8pM5fJdWZA==}
+ '@aws-sdk/client-polly@3.743.0':
+ resolution: {integrity: sha512-m+IQ3Xou0QRdpX54NpJ5IBTWYzChHTL9XuRiA20SfHVYXNQdHf4Y5Cnf9zA1NkMF5ygFieOUa5/FGSG0VTi+IQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-s3@3.741.0':
- resolution: {integrity: sha512-sZvdbRZ+E9/GcOMUOkZvYvob95N6c9LdzDneXHFASA7OIaEOQxQT1Arimz7JpEhfq/h9K2/j7wNO4jh4x80bmA==}
+ '@aws-sdk/client-s3@3.743.0':
+ resolution: {integrity: sha512-zfHfxjr41m3vYCmaCf0P55lJhOYj9EPKoaftBMZni5OQkA98AI7jVeIAT5nisGPrp3eDXEdV00GhFlSyUHkl7A==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-sso@3.734.0':
- resolution: {integrity: sha512-oerepp0mut9VlgTwnG5Ds/lb0C0b2/rQ+hL/rF6q+HGKPfGsCuPvFx1GtwGKCXd49ase88/jVgrhcA9OQbz3kg==}
+ '@aws-sdk/client-sso@3.743.0':
+ resolution: {integrity: sha512-zzIukqTlBJ/GUxVhQUqBZNMfxK2m8J2AfWN/xdXh8uqj+yqGLFl7E9wftmDxzyj6oHOerv4s1SlE36BGavtHGA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-transcribe-streaming@3.741.0':
- resolution: {integrity: sha512-h94D76//OJBLoOYDwjdk+x28JV0Ugr154jTYfAHDcTlixA9tI2umJDEa6Csy2KTt2KlwVQnNsGz32oCLD1BRnw==}
+ '@aws-sdk/client-transcribe-streaming@3.743.0':
+ resolution: {integrity: sha512-fXrwBZe3+KU8c1vyZ0kH44Lpdq8yY/1l1+Ih7QP9RHWdfhYukqgN2Y3M81ktS0uAGd2dj4DzeTzXc2wIlEkx4Q==}
engines: {node: '>=18.0.0'}
'@aws-sdk/core@3.734.0':
@@ -5586,24 +5083,24 @@ packages:
resolution: {integrity: sha512-JFSL6xhONsq+hKM8xroIPhM5/FOhiQ1cov0lZxhzZWj6Ai3UAjucy3zyIFDr9MgP1KfCYNdvyaUq9/o+HWvEDg==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-ini@3.741.0':
- resolution: {integrity: sha512-/XvnVp6zZXsyUlP1FtmspcWnd+Z1u2WK0wwzTE/x277M0oIhAezCW79VmcY4jcDQbYH+qMbtnBexfwgFDARxQg==}
+ '@aws-sdk/credential-provider-ini@3.743.0':
+ resolution: {integrity: sha512-mzIgzX9//kmx9BW/vICnLVgwu0KF2nOUfFLYF4ybBuqw13nspMavgJiZ11NwJ4aeCempgiJNnH+d/Kj4hq49nQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-node@3.741.0':
- resolution: {integrity: sha512-iz/puK9CZZkZjrKXX2W+PaiewHtlcD7RKUIsw4YHFyb8lrOt7yTYpM6VjeI+T//1sozjymmAnnp1SST9TXApLQ==}
+ '@aws-sdk/credential-provider-node@3.743.0':
+ resolution: {integrity: sha512-Tm5HUfjWhI6nTcqBKvTYRYd4Y8xsLB3AvpCGqBYhItUDRIDIDsubgQfXnxaYrs4SRMzWSIpOvxu2YfqB8Z5BDQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-process@3.734.0':
resolution: {integrity: sha512-zvjsUo+bkYn2vjT+EtLWu3eD6me+uun+Hws1IyWej/fKFAqiBPwyeyCgU7qjkiPQSXqk1U9+/HG9IQ6Iiz+eBw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-sso@3.734.0':
- resolution: {integrity: sha512-cCwwcgUBJOsV/ddyh1OGb4gKYWEaTeTsqaAK19hiNINfYV/DO9r4RMlnWAo84sSBfJuj9shUNsxzyoe6K7R92Q==}
+ '@aws-sdk/credential-provider-sso@3.743.0':
+ resolution: {integrity: sha512-Qbwx1wMa2L/JPVZcDzn2vBEWoEzKBIeIu0PUN4EHhzY08KRbpe6Jd15znW6ZplpgrW9qkYc6RommJpmD8J8YpQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-web-identity@3.734.0':
- resolution: {integrity: sha512-t4OSOerc+ppK541/Iyn1AS40+2vT/qE+MFMotFkhCgCJbApeRF2ozEdnDN6tGmnl4ybcUuxnp9JWLjwDVlR/4g==}
+ '@aws-sdk/credential-provider-web-identity@3.743.0':
+ resolution: {integrity: sha512-FviWKReYdEnt/dvNWddtIY+WrucZWmV2JT54jwAlhYgvFp0HjI2ldsQswvCynOg2Rp18tPVih6rFo/8NeerS8A==}
engines: {node: '>=18.0.0'}
'@aws-sdk/eventstream-handler-node@3.734.0':
@@ -5654,32 +5151,32 @@ packages:
resolution: {integrity: sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-user-agent@3.734.0':
- resolution: {integrity: sha512-MFVzLWRkfFz02GqGPjqSOteLe5kPfElUrXZft1eElnqulqs6RJfVSpOV7mO90gu293tNAeggMWAVSGRPKIYVMg==}
+ '@aws-sdk/middleware-user-agent@3.743.0':
+ resolution: {integrity: sha512-bpAhfmsOc6PR3JTOYbJtdD4lw1hSUBCJMlOIrwVUJS4Jiuscxn8+HOSjkSNXB/BaleYOVQ+xlR62Qlnjn4o8rw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-websocket@3.734.0':
resolution: {integrity: sha512-v5ECYLqtB/zwwiQf3pX3a4QGJHeC5HLG7UZHOqF1DJ02gjDctVB2FMTTYr0qcEKqpG7IPpLhZBYkpIAiV/h6Hw==}
engines: {node: '>= 14.0.0'}
- '@aws-sdk/nested-clients@3.734.0':
- resolution: {integrity: sha512-iph2XUy8UzIfdJFWo1r0Zng9uWj3253yvW9gljhtu+y/LNmNvSnJxQk1f3D2BC5WmcoPZqTS3UsycT3mLPSzWA==}
+ '@aws-sdk/nested-clients@3.743.0':
+ resolution: {integrity: sha512-nq0lLbo8OY07tUxNPzA8ShhOXu9u5Q6MkI1POEuhl8nhyyci8JR98D7cEg3YLOxRmrxvs3mlvOa3wZux0ah5UA==}
engines: {node: '>=18.0.0'}
'@aws-sdk/region-config-resolver@3.734.0':
resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/s3-request-presigner@3.741.0':
- resolution: {integrity: sha512-qrYYS+XG6wRwNDt60tcFKDCkQoLiBHhNlHaUtsHwdmSnlwA4aIuxCGXMkuskX93FsoLUDpuxtA0MZth3JL36dw==}
+ '@aws-sdk/s3-request-presigner@3.743.0':
+ resolution: {integrity: sha512-yPgzibuplpRu+KWBnAjyjhGvgaCrYbICvjh6NIqYZtp3hX2DlXaiGXVCOdH7c5oy/QN6SHiIoT0ZoLqs3uJnig==}
engines: {node: '>=18.0.0'}
'@aws-sdk/signature-v4-multi-region@3.740.0':
resolution: {integrity: sha512-w+psidN3i+kl51nQEV3V+fKjKUqcEbqUA1GtubruDBvBqrl5El/fU2NF3Lo53y8CfI9wCdf3V7KOEpHIqxHNng==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/token-providers@3.734.0':
- resolution: {integrity: sha512-2U6yWKrjWjZO8Y5SHQxkFvMVWHQWbS0ufqfAIBROqmIZNubOL7jXCiVdEFekz6MZ9LF2tvYGnOW4jX8OKDGfIw==}
+ '@aws-sdk/token-providers@3.743.0':
+ resolution: {integrity: sha512-t60WqBM37KnUiD5CE5BhqO6RCgGm5pnPD22UGCTB+Rlbc1L5HRXrzrXoITtqsJ40d7sPo9QxNAmzLmhVHvig5g==}
engines: {node: '>=18.0.0'}
'@aws-sdk/types@3.734.0':
@@ -5690,8 +5187,8 @@ packages:
resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/util-endpoints@3.734.0':
- resolution: {integrity: sha512-w2+/E88NUbqql6uCVAsmMxDQKu7vsKV0KqhlQb0lL+RCq4zy07yXYptVNs13qrnuTfyX7uPXkXrlugvK9R1Ucg==}
+ '@aws-sdk/util-endpoints@3.743.0':
+ resolution: {integrity: sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/util-format-url@3.734.0':
@@ -5705,8 +5202,8 @@ packages:
'@aws-sdk/util-user-agent-browser@3.734.0':
resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==}
- '@aws-sdk/util-user-agent-node@3.734.0':
- resolution: {integrity: sha512-c6Iinh+RVQKs6jYUFQ64htOU2HUXFQ3TVx+8Tu3EDF19+9vzWi9UukhIMH9rqyyEXIAkk9XL7avt8y2Uyw2dGA==}
+ '@aws-sdk/util-user-agent-node@3.743.0':
+ resolution: {integrity: sha512-YQ2vFYw6UIIgkRQnlU3w/ZZlTHQZL+Ln3EwjKyfsdvUkzlMYS6pRtSXRh42S7BF7TWaO1l9wBYSsF57PB3LR7A==}
engines: {node: '>=18.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
@@ -6518,8 +6015,8 @@ packages:
'@brokerloop/ttlcache@3.2.3':
resolution: {integrity: sha512-kZWoyJGBYTv1cL5oHBYEixlJysJBf2RVnub3gbclD+dwaW9aKubbHzbZ9q1q6bONosxaOqMsoBorOrZKzBDiqg==}
- '@cetusprotocol/aggregator-sdk@0.3.21':
- resolution: {integrity: sha512-ZvYphduw/VHik48Lc+f0SzwkzH3pK8c73mQAI85AIJ/xwxCTTC528ePuRnFd/Era0Vo6kHT4AN65XK4ipqTvwQ==}
+ '@cetusprotocol/aggregator-sdk@0.3.22':
+ resolution: {integrity: sha512-CM3QAqjusAJuq8XxPRboz5Md9KFS9L9po3O83ZV6WAxNqiB+dJsMEK7fGOwIleo08MkmzKf57SVk0I8n0H2pcw==}
peerDependencies:
typescript: ^5.0.0
@@ -7233,8 +6730,8 @@ packages:
resolution: {integrity: sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==}
engines: {node: '>=18.0.0'}
- '@deepgram/sdk@3.10.0':
- resolution: {integrity: sha512-XQvoFUVl2e6Rbu641ClJLVG4XfzlVDUCTg3FGGsAJ2DNvb2qLurBQxL7kOOgDpWHUAobvlzD4JSt4h3P2G9slg==}
+ '@deepgram/sdk@3.10.1':
+ resolution: {integrity: sha512-YyNqQKkaTSf3M5D4s8Cku4R90cZ+B8biDJ0PYZZnVR4K08J2dH4dz/VuPNsdKyTKKgeU3DkfV0r90JobzPfCRg==}
engines: {node: '>=18.0.0'}
'@derhuerst/http-basic@8.2.4':
@@ -9110,17 +8607,6 @@ packages:
'@injectivelabs/utils@1.14.40':
resolution: {integrity: sha512-jbW9zpUooHq8vaW1XIPF+hMM4g2K1AzTx1YJUUGCoOZxJlGSxRwsfP4GIz9kbpzTiiZXOhivLH2Hkh89OpaoFQ==}
- '@inversifyjs/common@1.4.0':
- resolution: {integrity: sha512-qfRJ/3iOlCL/VfJq8+4o5X4oA14cZSBbpAmHsYj8EsIit1xDndoOl0xKOyglKtQD4u4gdNVxMHx4RWARk/I4QA==}
-
- '@inversifyjs/core@1.3.5':
- resolution: {integrity: sha512-B4MFXabhNTAmrfgB+yeD6wd/GIvmvWC6IQ8Rh/j2C3Ix69kmqwz9pr8Jt3E+Nho9aEHOQCZaGmrALgtqRd+oEQ==}
-
- '@inversifyjs/reflect-metadata-utils@0.2.4':
- resolution: {integrity: sha512-u95rV3lKfG+NT2Uy/5vNzoDujos8vN8O18SSA5UyhxsGYd4GLQn/eUsGXfOsfa7m34eKrDelTKRUX1m/BcNX5w==}
- peerDependencies:
- reflect-metadata: 0.2.2
-
'@ioredis/commands@1.2.0':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
@@ -9342,13 +8828,13 @@ packages:
'@keplr-wallet/types@0.11.64':
resolution: {integrity: sha512-GgzeLDHHfZFyne3O7UIfFHj/uYqVbxAZI31RbBwt460OBbvwQzjrlZwvJW3vieWRAgxKSITjzEDBl2WneFTQdQ==}
- '@keplr-wallet/types@0.12.182':
- resolution: {integrity: sha512-UsIR/ix39hH/yygj0ZrdOsMqOGCq43NzkU8famtwQFQjB+jkKKADPq6SmhJjSrVr8PqPtWfIfUxa3jaAmsAUJQ==}
+ '@keplr-wallet/types@0.12.183':
+ resolution: {integrity: sha512-z59MGLg44Bex9CQ65n6Ylioa/Cy67+yBTKvP1WGmftlFuoEh1B9XfM6RUEgo3rA/ugFrVesuEYc9m11PpHXNnQ==}
peerDependencies:
starknet: ^6
- '@keplr-wallet/unit@0.12.182':
- resolution: {integrity: sha512-pvooXBlP/z4euWLa7e/5U0CLwOsTFVE/jZcomLbNSLc84WKtGDyctjNFfmbq7YQeiSa64KEbuSFKgoSXbcg50w==}
+ '@keplr-wallet/unit@0.12.183':
+ resolution: {integrity: sha512-mIcXtOfi+cGpBdBdeh7OYdPP5ucz8nA8stHulRMwT/bS6VUTcByUujNGCfP4CvVjj8bWLcE6qh3HK4/JkSRpjg==}
'@kikobeats/time-span@1.0.5':
resolution: {integrity: sha512-txRAdmi35N1wnsLS1AO5mTlbY5Cv5/61WXqek2y3L9Q7u4mgdUVq819so5xe753hL5gYeLzlWoJ/VJfXg9nx8g==}
@@ -9379,8 +8865,8 @@ packages:
'@langchain/langgraph-sdk@0.0.36':
resolution: {integrity: sha512-KkAZM0uXBaMcD/dpGTBppOhbvNX6gz+Y1zFAC898OblegFkSvICrkd0oRQ5Ro/GWK/NAoDymnMUDXeZDdUkSuw==}
- '@langchain/langgraph@0.2.44':
- resolution: {integrity: sha512-CR9LB7sytdx0Ink56qVUPorDo5gW5m7iOU2ypu1OYA4l5aIrT4xGvHCwrGH9RE80pb/d0FglVUkEgEfuvSDbmw==}
+ '@langchain/langgraph@0.2.45':
+ resolution: {integrity: sha512-yemuA+aTIRLL3WBVQ5TGvFMeEJQm2zoVyjMvHWyekIvg4w7Q4cu3CYB8f+yOXwd6OaxMtnNIX0wGh4hIw/Db+A==}
engines: {node: '>=18'}
peerDependencies:
'@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0'
@@ -10057,11 +9543,11 @@ packages:
'@multiversx/sdk-transaction-decoder@1.0.2':
resolution: {integrity: sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw==}
- '@mysten/bcs@1.3.0':
- resolution: {integrity: sha512-V3V9GwIXEiUS7y8hkCwH3oseWpxs75YOOtfy7xdfyAdSftlFpTYgj5elclwYx8pgHdzg7pHdy6no77LHYGQCaQ==}
+ '@mysten/bcs@1.4.0':
+ resolution: {integrity: sha512-YwDYspceLt8b7v6ohPvy8flQEi+smtfSG5d2A98CbUA48XBmOqTSPNmpw9wsZVVnrH2avr+BS5uVhDZT+EquYA==}
- '@mysten/sui@1.21.1':
- resolution: {integrity: sha512-HVrcqiUUSPToxbQtEgARFCnLr6FMkDHhhwWdy/urk8dqr8jnNZkU3Ppr6YUgg3vRE3sXPhuIjXOCEL6Wyq6Esw==}
+ '@mysten/sui@1.21.2':
+ resolution: {integrity: sha512-8AesvczokAUv796XiOo8af2+1IYA9bRon11Ra+rwehvqhz+sMRT8A+Cw5sDnlSc9/aQwM51JQKUnvMczNbpfYA==}
engines: {node: '>=18'}
'@napi-rs/wasm-runtime@0.2.4':
@@ -10792,9 +10278,6 @@ packages:
resolution: {integrity: sha512-uSO/TCCfi9vaZHOBsGWsRNBXYYKtLnSDbHI+std0M80AaEd7AnVfLqvk+9V3GP1faPcOx06ADx+h8UWwvemIGw==}
engines: {node: '>= 18'}
- '@one-ini/wasm@0.1.1':
- resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
-
'@onflow/config@1.5.1':
resolution: {integrity: sha512-BmD67EhZEqMRePa3y/WIpC5hH/YF9gV9uv5bPSN39P3laYxd93Ojhdf6v0fXkjO/d3WaHylLPoXYgpW/g5seWA==}
@@ -11385,8 +10868,8 @@ packages:
typescript:
optional: true
- '@pythnetwork/client@2.22.0':
- resolution: {integrity: sha512-Cyv23YqewKUL1pcm99jfmdetUa2aaUXjyRF9jvSeFcY895FddRu7uSWftYiaevsnx7vn4WbJgQR6ExxH+aONow==}
+ '@pythnetwork/client@2.22.1':
+ resolution: {integrity: sha512-/RjUB7BMWl42Hr3qSezmO+tsOPBdtrNNXkjskJgZx0kYi+O1UlAweWuwjWBXTNOqlL9jab24odomx8KCAzFjtg==}
peerDependencies:
'@solana/web3.js': npm:@solana/web3.js@1.95.5
@@ -11916,10 +11399,6 @@ packages:
'@raydium-io/raydium-sdk-v2@0.1.95-alpha':
resolution: {integrity: sha512-+u7yxo/R1JDysTCzOuAlh90ioBe2DlM2Hbcz/tFsxP/YzmnYQzShvNjcmc0361a4zJhmlrEJfpFXW0J3kkX5vA==}
- '@react-email/render@0.0.9':
- resolution: {integrity: sha512-nrim7wiACnaXsGtL7GF6jp3Qmml8J6vAjAH88jkC8lIbfNZaCyuPQHANjyYIXlvQeAbsWADQJFZgOHUqFqjh/A==}
- engines: {node: '>=18.0.0'}
-
'@react-icons/all-files@4.1.0':
resolution: {integrity: sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==}
peerDependencies:
@@ -13443,8 +12922,8 @@ packages:
'@swc/types@0.1.17':
resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==}
- '@switchboard-xyz/common@2.5.18':
- resolution: {integrity: sha512-IPrdMrLWUnvPlE3AO2gead19qxYOG8giPRxUHaf9+Jq6jsFCPOS6EFeNBCflf+Ozd01zImQqrE5I6nkUoBjXeg==}
+ '@switchboard-xyz/common@2.5.19':
+ resolution: {integrity: sha512-Bzj1bu2U69YRh2OoNjkrafdREeB1KH+wmeFkBsASDjlhy/xXjey2Ry2HUTAIzdg2DMtfP6DoCW2Nn9ZQD5IO+Q==}
engines: {node: '>=12'}
'@switchboard-xyz/on-demand@1.2.42':
@@ -15394,8 +14873,8 @@ packages:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
- assertion-tools@8.0.0-gamma.2:
- resolution: {integrity: sha512-X9uyTTZiux5NClP25AG0RjhMD2AB8FVy15NW/2JbdJEDKRwUsLTddzYRDdQWFtMv4+TOq+GWe6P2CkCzqN096Q==}
+ assertion-tools@8.0.1:
+ resolution: {integrity: sha512-9LJf5O3X30/UcDs5FyBJ+pLJl3dWbIKgTC3REMuJjhqtTMu7W3Dl0AOPg/HBxWYIYMPjBQtSK6KUKdpX6QrHHg==}
ast-types-flow@0.0.8:
resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
@@ -16668,10 +16147,6 @@ packages:
engines: {node: '>=18'}
hasBin: true
- condense-newlines@0.2.1:
- resolution: {integrity: sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg==}
- engines: {node: '>=0.10.0'}
-
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
@@ -17708,8 +17183,8 @@ packages:
dkg-evm-module@8.0.2:
resolution: {integrity: sha512-IkdfLmP8taDCRRgLrw8jIjQMBoZ5wV587+8UrVOyspEwjYhznF4fK1Uoza23bpD4gl9oDlmPJA8rjuXm+FBvSg==}
- dkg.js@8.0.4:
- resolution: {integrity: sha512-RiYuqBv/kp0BIyLnkX5Pq/ZHbDgeYqW2YJ5zITIYWh9NaoFZrMRoH7jkiKywhxuynkpF6Pey6cJcUd7ptJ6epw==}
+ dkg.js@8.0.6:
+ resolution: {integrity: sha512-lpPdRmWOVd8zHcCHRZ7C1qzQ3FxdQVnFQAX3QFJIXwJk18ORaJU6pYV2xjnl3wXWg4F018D1G6gL2kt8sTaktQ==}
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
@@ -17868,11 +17343,6 @@ packages:
ed2curve@0.3.0:
resolution: {integrity: sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==}
- editorconfig@1.0.4:
- resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
- engines: {node: '>=14'}
- hasBin: true
-
edwin-sdk@0.3.4:
resolution: {integrity: sha512-RJq+sKv287eF8+cGhbbTbw2dgyADsWnaha1Z5N0vpbic9AOPjViKoJpAbaEpFtJNmPIgNGHfYAoSlZv1XqQJdw==}
@@ -17888,8 +17358,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.93:
- resolution: {integrity: sha512-M+29jTcfNNoR9NV7la4SwUqzWAxEwnc7ThA5e1m6LRSotmpfpCpLcIfgtSCVL+MllNLgAyM/5ru86iMRemPzDQ==}
+ electron-to-chromium@1.5.94:
+ resolution: {integrity: sha512-v+oaMuy6AgwZ6Hi2u5UgcM3wxzeFscBTsZBQL2FoDTx/T6k1XEQKz++8fe1VlQ3zjXB6hcvy5JPb5ZSkmVtdIQ==}
elliptic@6.5.4:
resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
@@ -18506,8 +17976,8 @@ packages:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- exponential-backoff@3.1.1:
- resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
+ exponential-backoff@3.1.2:
+ resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
express-prom-bundle@7.0.2:
resolution: {integrity: sha512-ffFV4HGHvCKnkNJFqm42sYztRJE5mLgOj8MpGey1HOatuFhtcwXoBD2m5gca7ZbcyjkIf7lOH5ZdrhlrBf0sGw==}
@@ -19311,8 +18781,8 @@ packages:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
- h3@1.14.0:
- resolution: {integrity: sha512-ao22eiONdgelqcnknw0iD645qW0s9NnrJHr5OBz4WOMdBdycfSas1EQf1wXRsm+PcB2Yoj43pjBPwqIpJQTeWg==}
+ h3@1.15.0:
+ resolution: {integrity: sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ==}
hachure-fill@0.5.2:
resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
@@ -19878,11 +19348,6 @@ packages:
invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
- inversify@6.2.2:
- resolution: {integrity: sha512-KB836KHbZ9WrUnB8ax5MtadOwnqQYa+ZJO3KWbPFgcr4RIEnHM621VaqFZzOZd9+U7ln6upt9n0wJei7x2BNqw==}
- peerDependencies:
- reflect-metadata: ~0.2.2
-
invoices@3.0.0:
resolution: {integrity: sha512-/WDTkfU2RMelQpQ54BwZssqGXYNWbPnWkZ/9QV57vAvD3RLdCDbhDuucOGti8CK3sgk8nmhRV6V0WfMrxojMmA==}
engines: {node: '>=16'}
@@ -20256,10 +19721,6 @@ packages:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
- is-whitespace@0.3.0:
- resolution: {integrity: sha512-RydPhl4S6JwAyj0JJjshWJEFG6hNye3pZFBRZaTUfZFwGHxzppNaNOVgQuS/E/SlhrApuMXrpnK1EEIXfdo3Dg==}
- engines: {node: '>=0.10.0'}
-
is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
@@ -20668,15 +20129,6 @@ packages:
js-base64@3.7.7:
resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
- js-beautify@1.15.1:
- resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==}
- engines: {node: '>=14'}
- hasBin: true
-
- js-cookie@3.0.5:
- resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
- engines: {node: '>=14'}
-
js-git@0.7.8:
resolution: {integrity: sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==}
@@ -21095,8 +20547,8 @@ packages:
openai:
optional: true
- langsmith@0.3.6:
- resolution: {integrity: sha512-FXWbZOZPZsjNfY5DKOO0ORlPhBdysj11cHpO13qf94+R022Rkt+h5YPmiEDqrBI62X4j0mvjLrJ6VN6/HSbPig==}
+ langsmith@0.3.7:
+ resolution: {integrity: sha512-wakN1hxGkm1JR2PpAV7fiT7oC99LKcgxiuUrYGZWPbuj7Y8EPF19F7VNr4B+hA219bfaeWTa4Lxy2YrtPSKnQA==}
peerDependencies:
openai: '*'
peerDependenciesMeta:
@@ -21954,10 +21406,6 @@ packages:
resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==}
engines: {node: '>=16 || 14 >=14.17'}
- minimatch@9.0.1:
- resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
- engines: {node: '>=16 || 14 >=14.17'}
-
minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -22457,6 +21905,9 @@ packages:
node-machine-id@1.1.12:
resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==}
+ node-mock-http@1.0.0:
+ resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==}
+
node-mocks-http@1.16.2:
resolution: {integrity: sha512-2Sh6YItRp1oqewZNlck3LaFp5vbyW2u51HX2p1VLxQ9U/bG90XV8JY9O7Nk+HDd6OOn/oV3nA5Tx5k4Rki0qlg==}
engines: {node: '>=14'}
@@ -24132,10 +23583,6 @@ packages:
resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
engines: {node: '>=4'}
- pretty@2.0.0:
- resolution: {integrity: sha512-G9xUchgTEiNpormdYBl+Pha50gOUovT18IvAe7EYMZ1/f9W/WWMPRn+xI68yXNMUk3QXHDwo/1wV/4NejVNe1w==}
- engines: {node: '>=0.10.0'}
-
prism-media@1.3.5:
resolution: {integrity: sha512-IQdl0Q01m4LrkN1EGIE9lphov5Hy7WWlH6ulf5QdGePLlPas9p2mhgddTEHrlaXYjjFToM1/rWuwF37VF4taaA==}
version: 1.3.5
@@ -24479,11 +23926,6 @@ packages:
typescript:
optional: true
- react-dom@18.2.0:
- resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
- peerDependencies:
- react: ^18.2.0
-
react-dom@18.3.1:
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
@@ -24603,10 +24045,6 @@ packages:
peerDependencies:
react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
- react@18.2.0:
- resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
- engines: {node: '>=0.10.0'}
-
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -24915,10 +24353,6 @@ packages:
requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
- resend@2.1.0:
- resolution: {integrity: sha512-s6LlaEReTUvlbo6w3Eg1M1TMuwK9OKJ1GVgyptIV8smLPHhFZVqnwBTFPZHID9rcsih72t3iuyrtkQ3IIGwnow==}
- engines: {node: '>=18'}
-
resolve-alpn@1.2.1:
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
@@ -26016,8 +25450,8 @@ packages:
stylis@4.2.0:
resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
- stylis@4.3.5:
- resolution: {integrity: sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA==}
+ stylis@4.3.6:
+ resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
subarg@1.0.0:
resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==}
@@ -26072,8 +25506,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- svelte@5.19.8:
- resolution: {integrity: sha512-56Vd/nwJrljV0w7RCV1A8sB4/yjSbWW5qrGDTAzp7q42OxwqEWT+6obWzDt41tHjIW+C9Fs2ygtejjJrXR+ZPA==}
+ svelte@5.19.9:
+ resolution: {integrity: sha512-860s752/ZZxHIsii31ELkdKBOCeAuDsfb/AGUXJyQyzUVLRSt4oqEw/BV5+2+mNg8mbqmD3OK+vMvwWMPM6f8A==}
engines: {node: '>=18'}
svg-parser@2.0.4:
@@ -26214,8 +25648,8 @@ packages:
uglify-js:
optional: true
- terser@5.38.0:
- resolution: {integrity: sha512-a4GD5R1TjEeuCT6ZRiYMHmIf7okbCPEuhQET8bczV6FrQMMlFXA1n+G0KKjdlFCm3TEHV77GxfZB3vZSUQGFpg==}
+ terser@5.38.1:
+ resolution: {integrity: sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==}
engines: {node: '>=10'}
hasBin: true
@@ -26257,8 +25691,8 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
- thirdweb@5.87.3:
- resolution: {integrity: sha512-FZOZjY74qa/XO5gk4HEJx0ntH+KwdqBK/kNWo1PI0QSC9BNTZZlPxjNfZOPQ4aHrn0uafEasq0TKV59dUzs8sA==}
+ thirdweb@5.87.4:
+ resolution: {integrity: sha512-ZVKmSMeOAZQQX/E7Qn+t1d0M0WT2oSm8jCw28zh01j47VKGOYP/teIwkz9PX162BEh2DODuBUUL1p+rUaXihtA==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -26666,8 +26100,8 @@ packages:
ts-xor@1.3.0:
resolution: {integrity: sha512-RLXVjliCzc1gfKQFLRpfeD0rrWmjnSTgj7+RFhoq3KRkUYa8LE/TIidYOzM5h+IdFBDSjjSgk9Lto9sdMfDFEA==}
- tsconfck@3.1.4:
- resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
+ tsconfck@3.1.5:
+ resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==}
engines: {node: ^18 || >=20}
hasBin: true
peerDependencies:
@@ -27061,9 +26495,6 @@ packages:
resolution: {integrity: sha512-Qy96NND4Dou5jKoSJ2gm8ax8AJM/Ey9o9mz7KN1bb9GP+G0l20Zw8afxTnY2f4b7hmhn/z8aC2kfArVQlAhFBw==}
engines: {node: '>=20.18.1'}
- unenv@1.10.0:
- resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
-
unfetch@4.2.0:
resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==}
@@ -28758,7 +28189,7 @@ snapshots:
dependencies:
'@ai-sdk/provider': 1.0.6
'@ai-sdk/provider-utils': 2.1.6(zod@3.23.8)
- '@aws-sdk/client-bedrock-runtime': 3.741.0
+ '@aws-sdk/client-bedrock-runtime': 3.743.0
zod: 3.23.8
transitivePeerDependencies:
- aws-crt
@@ -28767,7 +28198,7 @@ snapshots:
dependencies:
'@ai-sdk/provider': 1.0.6
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
- '@aws-sdk/client-bedrock-runtime': 3.741.0
+ '@aws-sdk/client-bedrock-runtime': 3.743.0
zod: 3.24.1
transitivePeerDependencies:
- aws-crt
@@ -28778,7 +28209,7 @@ snapshots:
'@ai-sdk/provider-utils': 2.1.6(zod@3.23.8)
zod: 3.23.8
- '@ai-sdk/anthropic@0.0.56(zod@3.24.1)':
+ '@ai-sdk/anthropic@1.1.6(zod@3.24.1)':
dependencies:
'@ai-sdk/provider': 1.0.6
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
@@ -28804,7 +28235,7 @@ snapshots:
'@ai-sdk/provider-utils': 2.1.6(zod@3.23.8)
zod: 3.23.8
- '@ai-sdk/google@0.0.55(zod@3.24.1)':
+ '@ai-sdk/google@1.1.0(zod@3.24.1)':
dependencies:
'@ai-sdk/provider': 1.0.6
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
@@ -28905,13 +28336,13 @@ snapshots:
transitivePeerDependencies:
- zod
- '@ai-sdk/svelte@0.0.57(svelte@5.19.8)(zod@3.23.8)':
+ '@ai-sdk/svelte@0.0.57(svelte@5.19.9)(zod@3.23.8)':
dependencies:
'@ai-sdk/provider-utils': 2.1.6(zod@3.23.8)
'@ai-sdk/ui-utils': 0.0.50(zod@3.23.8)
- sswr: 2.1.0(svelte@5.19.8)
+ sswr: 2.1.0(svelte@5.19.9)
optionalDependencies:
- svelte: 5.19.8
+ svelte: 5.19.9
transitivePeerDependencies:
- zod
@@ -29173,7 +28604,7 @@ snapshots:
call-me-maybe: 1.0.2
openapi-types: 12.1.3
- '@apollo/client@3.12.9(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ '@apollo/client@3.12.10(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
'@wry/caches': 1.0.1
@@ -29290,21 +28721,21 @@ snapshots:
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
- '@aws-sdk/client-bedrock-runtime@3.741.0':
+ '@aws-sdk/client-bedrock-runtime@3.743.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.734.0
- '@aws-sdk/credential-provider-node': 3.741.0
+ '@aws-sdk/credential-provider-node': 3.743.0
'@aws-sdk/middleware-host-header': 3.734.0
'@aws-sdk/middleware-logger': 3.734.0
'@aws-sdk/middleware-recursion-detection': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
'@smithy/eventstream-serde-browser': 4.0.1
@@ -29340,21 +28771,21 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-polly@3.741.0':
+ '@aws-sdk/client-polly@3.743.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.734.0
- '@aws-sdk/credential-provider-node': 3.741.0
+ '@aws-sdk/credential-provider-node': 3.743.0
'@aws-sdk/middleware-host-header': 3.734.0
'@aws-sdk/middleware-logger': 3.734.0
'@aws-sdk/middleware-recursion-detection': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
@@ -29385,13 +28816,13 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-s3@3.741.0':
+ '@aws-sdk/client-s3@3.743.0':
dependencies:
'@aws-crypto/sha1-browser': 5.2.0
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.734.0
- '@aws-sdk/credential-provider-node': 3.741.0
+ '@aws-sdk/credential-provider-node': 3.743.0
'@aws-sdk/middleware-bucket-endpoint': 3.734.0
'@aws-sdk/middleware-expect-continue': 3.734.0
'@aws-sdk/middleware-flexible-checksums': 3.735.0
@@ -29401,13 +28832,13 @@ snapshots:
'@aws-sdk/middleware-recursion-detection': 3.734.0
'@aws-sdk/middleware-sdk-s3': 3.740.0
'@aws-sdk/middleware-ssec': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/signature-v4-multi-region': 3.740.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@aws-sdk/xml-builder': 3.734.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
@@ -29446,7 +28877,7 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-sso@3.734.0':
+ '@aws-sdk/client-sso@3.743.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -29454,12 +28885,12 @@ snapshots:
'@aws-sdk/middleware-host-header': 3.734.0
'@aws-sdk/middleware-logger': 3.734.0
'@aws-sdk/middleware-recursion-detection': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
@@ -29489,25 +28920,25 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-transcribe-streaming@3.741.0':
+ '@aws-sdk/client-transcribe-streaming@3.743.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.734.0
- '@aws-sdk/credential-provider-node': 3.741.0
+ '@aws-sdk/credential-provider-node': 3.743.0
'@aws-sdk/eventstream-handler-node': 3.734.0
'@aws-sdk/middleware-eventstream': 3.734.0
'@aws-sdk/middleware-host-header': 3.734.0
'@aws-sdk/middleware-logger': 3.734.0
'@aws-sdk/middleware-recursion-detection': 3.734.0
'@aws-sdk/middleware-sdk-transcribe-streaming': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/middleware-websocket': 3.734.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
'@smithy/eventstream-serde-browser': 4.0.1
@@ -29575,15 +29006,15 @@ snapshots:
'@smithy/util-stream': 4.0.2
tslib: 2.8.1
- '@aws-sdk/credential-provider-ini@3.741.0':
+ '@aws-sdk/credential-provider-ini@3.743.0':
dependencies:
'@aws-sdk/core': 3.734.0
'@aws-sdk/credential-provider-env': 3.734.0
'@aws-sdk/credential-provider-http': 3.734.0
'@aws-sdk/credential-provider-process': 3.734.0
- '@aws-sdk/credential-provider-sso': 3.734.0
- '@aws-sdk/credential-provider-web-identity': 3.734.0
- '@aws-sdk/nested-clients': 3.734.0
+ '@aws-sdk/credential-provider-sso': 3.743.0
+ '@aws-sdk/credential-provider-web-identity': 3.743.0
+ '@aws-sdk/nested-clients': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/credential-provider-imds': 4.0.1
'@smithy/property-provider': 4.0.1
@@ -29593,14 +29024,14 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/credential-provider-node@3.741.0':
+ '@aws-sdk/credential-provider-node@3.743.0':
dependencies:
'@aws-sdk/credential-provider-env': 3.734.0
'@aws-sdk/credential-provider-http': 3.734.0
- '@aws-sdk/credential-provider-ini': 3.741.0
+ '@aws-sdk/credential-provider-ini': 3.743.0
'@aws-sdk/credential-provider-process': 3.734.0
- '@aws-sdk/credential-provider-sso': 3.734.0
- '@aws-sdk/credential-provider-web-identity': 3.734.0
+ '@aws-sdk/credential-provider-sso': 3.743.0
+ '@aws-sdk/credential-provider-web-identity': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/credential-provider-imds': 4.0.1
'@smithy/property-provider': 4.0.1
@@ -29619,11 +29050,11 @@ snapshots:
'@smithy/types': 4.1.0
tslib: 2.8.1
- '@aws-sdk/credential-provider-sso@3.734.0':
+ '@aws-sdk/credential-provider-sso@3.743.0':
dependencies:
- '@aws-sdk/client-sso': 3.734.0
+ '@aws-sdk/client-sso': 3.743.0
'@aws-sdk/core': 3.734.0
- '@aws-sdk/token-providers': 3.734.0
+ '@aws-sdk/token-providers': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/property-provider': 4.0.1
'@smithy/shared-ini-file-loader': 4.0.1
@@ -29632,10 +29063,10 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/credential-provider-web-identity@3.734.0':
+ '@aws-sdk/credential-provider-web-identity@3.743.0':
dependencies:
'@aws-sdk/core': 3.734.0
- '@aws-sdk/nested-clients': 3.734.0
+ '@aws-sdk/nested-clients': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/property-provider': 4.0.1
'@smithy/types': 4.1.0
@@ -29750,11 +29181,11 @@ snapshots:
'@smithy/types': 4.1.0
tslib: 2.8.1
- '@aws-sdk/middleware-user-agent@3.734.0':
+ '@aws-sdk/middleware-user-agent@3.743.0':
dependencies:
'@aws-sdk/core': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@smithy/core': 3.1.2
'@smithy/protocol-http': 5.0.1
'@smithy/types': 4.1.0
@@ -29773,7 +29204,7 @@ snapshots:
'@smithy/util-hex-encoding': 4.0.0
tslib: 2.8.1
- '@aws-sdk/nested-clients@3.734.0':
+ '@aws-sdk/nested-clients@3.743.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -29781,12 +29212,12 @@ snapshots:
'@aws-sdk/middleware-host-header': 3.734.0
'@aws-sdk/middleware-logger': 3.734.0
'@aws-sdk/middleware-recursion-detection': 3.734.0
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/region-config-resolver': 3.734.0
'@aws-sdk/types': 3.734.0
- '@aws-sdk/util-endpoints': 3.734.0
+ '@aws-sdk/util-endpoints': 3.743.0
'@aws-sdk/util-user-agent-browser': 3.734.0
- '@aws-sdk/util-user-agent-node': 3.734.0
+ '@aws-sdk/util-user-agent-node': 3.743.0
'@smithy/config-resolver': 4.0.1
'@smithy/core': 3.1.2
'@smithy/fetch-http-handler': 5.0.1
@@ -29825,7 +29256,7 @@ snapshots:
'@smithy/util-middleware': 4.0.1
tslib: 2.8.1
- '@aws-sdk/s3-request-presigner@3.741.0':
+ '@aws-sdk/s3-request-presigner@3.743.0':
dependencies:
'@aws-sdk/signature-v4-multi-region': 3.740.0
'@aws-sdk/types': 3.734.0
@@ -29845,9 +29276,9 @@ snapshots:
'@smithy/types': 4.1.0
tslib: 2.8.1
- '@aws-sdk/token-providers@3.734.0':
+ '@aws-sdk/token-providers@3.743.0':
dependencies:
- '@aws-sdk/nested-clients': 3.734.0
+ '@aws-sdk/nested-clients': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/property-provider': 4.0.1
'@smithy/shared-ini-file-loader': 4.0.1
@@ -29865,7 +29296,7 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@aws-sdk/util-endpoints@3.734.0':
+ '@aws-sdk/util-endpoints@3.743.0':
dependencies:
'@aws-sdk/types': 3.734.0
'@smithy/types': 4.1.0
@@ -29890,9 +29321,9 @@ snapshots:
bowser: 2.11.0
tslib: 2.8.1
- '@aws-sdk/util-user-agent-node@3.734.0':
+ '@aws-sdk/util-user-agent-node@3.743.0':
dependencies:
- '@aws-sdk/middleware-user-agent': 3.734.0
+ '@aws-sdk/middleware-user-agent': 3.743.0
'@aws-sdk/types': 3.734.0
'@smithy/node-config-provider': 4.0.1
'@smithy/types': 4.1.0
@@ -30927,13 +30358,13 @@ snapshots:
dependencies:
'@soncodi/signal': 2.0.7
- '@cetusprotocol/aggregator-sdk@0.3.21(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)':
+ '@cetusprotocol/aggregator-sdk@0.3.22(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)':
dependencies:
'@babel/core': 7.26.7
'@babel/preset-env': 7.26.7(@babel/core@7.26.7)
'@babel/preset-typescript': 7.26.0(@babel/core@7.26.7)
'@jest/globals': 29.7.0
- '@mysten/sui': 1.21.1(typescript@5.7.3)
+ '@mysten/sui': 1.21.2(typescript@5.7.3)
'@pythnetwork/pyth-sui-js': 2.1.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)
'@types/jest': 29.5.14
'@types/node': 20.17.9
@@ -32485,7 +31916,7 @@ snapshots:
dependencies:
dayjs: 1.11.13
- '@deepgram/sdk@3.10.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)':
+ '@deepgram/sdk@3.10.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@6.0.5)':
dependencies:
'@deepgram/captions': 1.2.0
'@types/node': 18.19.75
@@ -33699,9 +33130,9 @@ snapshots:
'@electric-sql/pglite@0.2.16': {}
- '@elizaos/adapter-sqlite@0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(whatwg-url@14.1.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))':
+ '@elizaos/adapter-sqlite@0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(whatwg-url@14.1.0)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))':
dependencies:
- '@elizaos/core': 0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))
+ '@elizaos/core': 0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))
'@types/better-sqlite3': 7.6.12
better-sqlite3: 11.6.0
sqlite-vec: 0.1.6
@@ -33763,7 +33194,7 @@ snapshots:
- vue
- ws
- '@elizaos/core@0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))':
+ '@elizaos/core@0.1.7-alpha.2(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))':
dependencies:
'@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
'@ai-sdk/google': 0.0.55(zod@3.23.8)
@@ -33773,7 +33204,7 @@ snapshots:
'@anthropic-ai/sdk': 0.30.1(encoding@0.1.13)
'@fal-ai/client': 1.2.0
'@types/uuid': 10.0.0
- ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
+ ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8)
fastembed: 1.14.1
fastestsmallesttextencoderdecoder: 1.0.22
@@ -33814,7 +33245,7 @@ snapshots:
- vue
- ws
- '@elizaos/core@0.1.9(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
+ '@elizaos/core@0.1.9(@google-cloud/vertexai@1.9.3(encoding@0.1.13))(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.38(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@ai-sdk/amazon-bedrock': 1.1.0(zod@3.23.8)
'@ai-sdk/anthropic': 0.0.56(zod@3.23.8)
@@ -33826,7 +33257,7 @@ snapshots:
'@fal-ai/client': 1.2.0
'@tavily/core': 0.0.2
'@types/uuid': 10.0.0
- ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
+ ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8)
dotenv: 16.4.5
fastembed: 1.14.1
@@ -33884,7 +33315,7 @@ snapshots:
'@fal-ai/client': 1.2.0
'@tavily/core': 0.0.2
'@types/uuid': 10.0.0
- ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
+ ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8)
dotenv: 16.4.5
fastembed: 1.14.1
@@ -33942,7 +33373,7 @@ snapshots:
'@fal-ai/client': 1.2.0
'@tavily/core': 0.0.2
'@types/uuid': 10.0.0
- ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
+ ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8)
dotenv: 16.4.5
fastembed: 1.14.1
@@ -34951,23 +34382,23 @@ snapshots:
'@floating-ui/utils@0.2.9': {}
- '@fuel-ts/abi-coder@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/abi-coder@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
'@fuel-ts/math': 0.97.2
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
type-fest: 4.33.0
transitivePeerDependencies:
- vitest
- '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
'@fuel-ts/errors': 0.97.2
'@fuel-ts/interfaces': 0.97.2
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/versions': 0.97.2
commander: 12.1.0
glob: 10.4.5
@@ -34978,18 +34409,18 @@ snapshots:
transitivePeerDependencies:
- vitest
- '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
'@fuel-ts/math': 0.97.2
- '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/versions': 0.97.2
'@fuels/vm-asm': 0.58.2
'@noble/curves': 1.8.1
@@ -35002,30 +34433,30 @@ snapshots:
- encoding
- vitest
- '@fuel-ts/address@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/address@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
'@fuel-ts/interfaces': 0.97.2
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@noble/hashes': 1.7.1
bech32: 2.0.0
transitivePeerDependencies:
- vitest
- '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
'@fuel-ts/math': 0.97.2
- '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/versions': 0.97.2
'@fuels/vm-asm': 0.58.2
ramda: 0.30.1
@@ -35033,12 +34464,12 @@ snapshots:
- encoding
- vitest
- '@fuel-ts/crypto@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/crypto@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@noble/hashes': 1.7.1
transitivePeerDependencies:
- vitest
@@ -35047,11 +34478,11 @@ snapshots:
dependencies:
'@fuel-ts/versions': 0.97.2
- '@fuel-ts/hasher@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/hasher@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@noble/hashes': 1.7.1
transitivePeerDependencies:
- vitest
@@ -35064,78 +34495,78 @@ snapshots:
'@types/bn.js': 5.1.6
bn.js: 5.2.1
- '@fuel-ts/merkle@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/merkle@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/math': 0.97.2
transitivePeerDependencies:
- vitest
- '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
- '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
transitivePeerDependencies:
- encoding
- vitest
- '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
transitivePeerDependencies:
- encoding
- vitest
- '@fuel-ts/transactions@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/transactions@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
'@fuel-ts/math': 0.97.2
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
transitivePeerDependencies:
- vitest
- '@fuel-ts/utils@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@fuel-ts/utils@0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
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.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
'@fuel-ts/versions@0.97.2':
dependencies:
@@ -35488,7 +34919,7 @@ snapshots:
'@ledgerhq/hw-transport': 6.31.4
'@ledgerhq/hw-transport-webhid': 6.30.0
'@ledgerhq/hw-transport-webusb': 6.29.4
- '@mysten/bcs': 1.3.0
+ '@mysten/bcs': 1.4.0
axios: 1.7.9
bech32: 2.0.0
bignumber.js: 9.1.2
@@ -35660,7 +35091,7 @@ snapshots:
'@injectivelabs/sdk-ts@1.14.34-beta.2(@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)':
dependencies:
- '@apollo/client': 3.12.9(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@apollo/client': 3.12.10(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@cosmjs/amino': 0.32.4
'@cosmjs/proto-signing': 0.32.4
'@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -35706,7 +35137,7 @@ snapshots:
'@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)':
dependencies:
- '@apollo/client': 3.12.9(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@apollo/client': 3.12.10(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@cosmjs/amino': 0.32.4
'@cosmjs/proto-signing': 0.32.4
'@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -35752,7 +35183,7 @@ snapshots:
'@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@6.0.5)':
dependencies:
- '@apollo/client': 3.12.9(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@apollo/client': 3.12.10(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@cosmjs/amino': 0.32.4
'@cosmjs/proto-signing': 0.32.4
'@cosmjs/stargate': 0.32.4(bufferutil@4.0.9)(utf-8-validate@6.0.5)
@@ -35798,7 +35229,7 @@ snapshots:
'@injectivelabs/sdk-ts@1.14.5(@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)':
dependencies:
- '@apollo/client': 3.12.9(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@apollo/client': 3.12.10(@types/react@19.0.8)(graphql@16.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@cosmjs/amino': 0.31.3
'@cosmjs/proto-signing': 0.31.3
'@cosmjs/stargate': 0.31.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -35913,19 +35344,6 @@ snapshots:
- debug
- google-protobuf
- '@inversifyjs/common@1.4.0': {}
-
- '@inversifyjs/core@1.3.5(reflect-metadata@0.2.2)':
- dependencies:
- '@inversifyjs/common': 1.4.0
- '@inversifyjs/reflect-metadata-utils': 0.2.4(reflect-metadata@0.2.2)
- transitivePeerDependencies:
- - reflect-metadata
-
- '@inversifyjs/reflect-metadata-utils@0.2.4(reflect-metadata@0.2.2)':
- dependencies:
- reflect-metadata: 0.2.2
-
'@ioredis/commands@1.2.0': {}
'@irys/arweave@0.0.2':
@@ -36529,14 +35947,14 @@ snapshots:
transitivePeerDependencies:
- debug
- '@keplr-wallet/types@0.12.182(starknet@6.18.0(encoding@0.1.13))':
+ '@keplr-wallet/types@0.12.183(starknet@6.18.0(encoding@0.1.13))':
dependencies:
long: 4.0.0
starknet: 6.18.0(encoding@0.1.13)
- '@keplr-wallet/unit@0.12.182(starknet@6.18.0(encoding@0.1.13))':
+ '@keplr-wallet/unit@0.12.183(starknet@6.18.0(encoding@0.1.13))':
dependencies:
- '@keplr-wallet/types': 0.12.182(starknet@6.18.0(encoding@0.1.13))
+ '@keplr-wallet/types': 0.12.183(starknet@6.18.0(encoding@0.1.13))
big-integer: 1.6.52
utility-types: 3.11.0
transitivePeerDependencies:
@@ -36559,7 +35977,7 @@ snapshots:
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.15
- langsmith: 0.3.6(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))
+ langsmith: 0.3.7(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
@@ -36576,7 +35994,7 @@ snapshots:
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.15
- langsmith: 0.3.6(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
+ langsmith: 0.3.7(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
@@ -36593,7 +36011,7 @@ snapshots:
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.15
- langsmith: 0.3.6(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
+ langsmith: 0.3.7(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
@@ -36610,7 +36028,7 @@ snapshots:
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.15
- langsmith: 0.3.6(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.1))
+ langsmith: 0.3.7(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.1))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
@@ -36679,7 +36097,7 @@ snapshots:
p-retry: 4.6.2
uuid: 9.0.1
- '@langchain/langgraph@0.2.44(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))':
+ '@langchain/langgraph@0.2.45(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))':
dependencies:
'@langchain/core': 0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
'@langchain/langgraph-checkpoint': 0.0.15(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))
@@ -39895,14 +39313,14 @@ snapshots:
dependencies:
bech32: 2.0.0
- '@mysten/bcs@1.3.0':
+ '@mysten/bcs@1.4.0':
dependencies:
bs58: 5.0.0
- '@mysten/sui@1.21.1(typescript@5.7.3)':
+ '@mysten/sui@1.21.2(typescript@5.7.3)':
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
- '@mysten/bcs': 1.3.0
+ '@mysten/bcs': 1.4.0
'@noble/curves': 1.8.1
'@noble/hashes': 1.7.1
'@scure/bip32': 1.6.2
@@ -40015,7 +39433,7 @@ snapshots:
'@near-js/types': 0.3.1
'@near-js/utils': 1.0.1
borsh: 1.0.0
- exponential-backoff: 3.1.1
+ exponential-backoff: 3.1.2
isomorphic-unfetch: 3.1.0(encoding@0.1.13)
optionalDependencies:
node-fetch: 2.6.7(encoding@0.1.13)
@@ -40840,8 +40258,6 @@ snapshots:
'@octokit/request-error': 6.1.6
'@octokit/webhooks-methods': 5.1.0
- '@one-ini/wasm@0.1.1': {}
-
'@onflow/config@1.5.1':
dependencies:
'@babel/runtime': 7.26.7
@@ -42068,7 +41484,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@pythnetwork/client@2.22.0(@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)(utf-8-validate@5.0.10)':
+ '@pythnetwork/client@2.22.1(@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)(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.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))
@@ -42147,7 +41563,7 @@ snapshots:
'@pythnetwork/pyth-sui-js@2.1.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)':
dependencies:
- '@mysten/sui': 1.21.1(typescript@5.7.3)
+ '@mysten/sui': 1.21.2(typescript@5.7.3)
'@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
buffer: 6.0.3
transitivePeerDependencies:
@@ -42728,13 +42144,6 @@ snapshots:
- typescript
- utf-8-validate
- '@react-email/render@0.0.9':
- dependencies:
- html-to-text: 9.0.5
- pretty: 2.0.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
-
'@react-icons/all-files@4.1.0(react@19.0.0)':
dependencies:
react: 19.0.0
@@ -42947,7 +42356,7 @@ snapshots:
'@rollup/plugin-terser@0.1.0(rollup@2.79.2)':
dependencies:
- terser: 5.38.0
+ terser: 5.38.1
optionalDependencies:
rollup: 2.79.2
@@ -43372,7 +42781,7 @@ snapshots:
'@cosmjs/tendermint-rpc': 0.32.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@injectivelabs/core-proto-ts': 0.0.21
'@injectivelabs/sdk-ts': 1.14.5(@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)
- '@keplr-wallet/unit': 0.12.182(starknet@6.18.0(encoding@0.1.13))
+ '@keplr-wallet/unit': 0.12.183(starknet@6.18.0(encoding@0.1.13))
'@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))
axios: 1.7.9
cosmjs-types: 0.9.0
@@ -45783,7 +45192,7 @@ snapshots:
dependencies:
'@swc/counter': 0.1.3
- '@switchboard-xyz/common@2.5.18(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
+ '@switchboard-xyz/common@2.5.19(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)':
dependencies:
'@solana/web3.js': 1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
axios: 1.7.9
@@ -45808,7 +45217,7 @@ snapshots:
'@coral-xyz/anchor-30': '@coral-xyz/anchor@0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(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)
'@solworks/soltoolkit-sdk': 0.0.23(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
- '@switchboard-xyz/common': 2.5.18(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
+ '@switchboard-xyz/common': 2.5.19(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
axios: 1.7.9
big.js: 6.2.2
bs58: 5.0.0
@@ -45857,7 +45266,7 @@ snapshots:
bn.js: 5.2.1
borsh: 0.7.0
bs58: 5.0.0
- exponential-backoff: 3.1.1
+ exponential-backoff: 3.1.2
js-sha3: 0.8.0
semaphore: 1.1.0
transitivePeerDependencies:
@@ -45882,7 +45291,7 @@ snapshots:
bn.js: 5.2.1
borsh: 0.7.0
bs58: 5.0.0
- exponential-backoff: 3.1.1
+ exponential-backoff: 3.1.2
js-sha3: 0.8.0
semaphore: 1.1.0
transitivePeerDependencies:
@@ -47193,10 +46602,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.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0))':
+ '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0))':
dependencies:
'@swc/core': 1.10.14(@swc/helpers@0.5.15)
- vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)
+ vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
- '@swc/helpers'
@@ -47213,11 +46622,11 @@ snapshots:
std-env: 3.8.0
test-exclude: 6.0.0
v8-to-istanbul: 9.3.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@vitest/coverage-v8@1.1.3(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47232,11 +46641,11 @@ snapshots:
std-env: 3.8.0
test-exclude: 6.0.0
v8-to-istanbul: 9.3.0
- vitest: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@1.6.1(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@vitest/coverage-v8@1.6.1(vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47251,11 +46660,11 @@ snapshots:
std-env: 3.8.0
strip-literal: 2.1.1
test-exclude: 6.0.0
- vitest: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0))':
+ '@vitest/coverage-v8@1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47270,11 +46679,11 @@ snapshots:
std-env: 3.8.0
strip-literal: 2.1.1
test-exclude: 6.0.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@vitest/coverage-v8@1.6.1(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47289,7 +46698,7 @@ snapshots:
std-env: 3.8.0
strip-literal: 2.1.1
test-exclude: 6.0.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
@@ -47308,11 +46717,11 @@ snapshots:
std-env: 3.8.0
strip-literal: 2.1.1
test-exclude: 6.0.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@2.1.5(vitest@3.0.5(@types/debug@4.1.12)(@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.38.0))':
+ '@vitest/coverage-v8@2.1.5(vitest@3.0.5(@types/debug@4.1.12)(@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.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47326,11 +46735,11 @@ snapshots:
std-env: 3.8.0
test-exclude: 7.0.1
tinyrainbow: 1.2.0
- vitest: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@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.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@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.38.0))':
+ '@vitest/coverage-v8@2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@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.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47344,11 +46753,11 @@ snapshots:
std-env: 3.8.0
test-exclude: 7.0.1
tinyrainbow: 1.2.0
- vitest: 3.0.5(@types/debug@4.1.12)(@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.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@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.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0))':
+ '@vitest/coverage-v8@2.1.9(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -47362,11 +46771,11 @@ snapshots:
std-env: 3.8.0
test-exclude: 7.0.1
tinyrainbow: 1.2.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@vitest/coverage-v8@3.0.5(vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
@@ -47380,17 +46789,17 @@ snapshots:
std-env: 3.8.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.23.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@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))':
+ '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.23.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@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))':
dependencies:
eslint: 9.19.0(jiti@2.4.2)
optionalDependencies:
'@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)
typescript: 5.6.3
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)
'@vitest/expect@1.4.0':
dependencies:
@@ -47418,29 +46827,29 @@ snapshots:
chai: 5.1.2
tinyrainbow: 2.0.0
- '@vitest/mocker@2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))':
+ '@vitest/mocker@2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))':
dependencies:
'@vitest/spy': 2.1.9
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
- '@vitest/mocker@3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))':
+ '@vitest/mocker@3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))':
dependencies:
'@vitest/spy': 3.0.5
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
- '@vitest/mocker@3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))':
+ '@vitest/mocker@3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))':
dependencies:
'@vitest/spy': 3.0.5
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
'@vitest/pretty-format@2.1.9':
dependencies:
@@ -47521,7 +46930,7 @@ snapshots:
pathe: 1.1.2
picocolors: 1.1.1
sirv: 2.0.4
- vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0)
+ vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1)
'@vitest/utils@0.34.7':
dependencies:
@@ -47900,7 +47309,7 @@ snapshots:
dependencies:
'@walletconnect/jsonrpc-utils': 1.0.8
'@walletconnect/safe-json': 1.0.2
- cross-fetch: 3.2.0(encoding@0.1.13)
+ cross-fetch: 3.1.8(encoding@0.1.13)
events: 3.3.0
transitivePeerDependencies:
- encoding
@@ -48943,13 +48352,13 @@ snapshots:
- typescript
- utf-8-validate
- ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.24.1))(react@19.0.0)(sswr@2.1.0(svelte@5.19.8))(svelte@5.19.8)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8):
+ ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.9))(svelte@5.19.9)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8):
dependencies:
'@ai-sdk/provider': 1.0.6
'@ai-sdk/provider-utils': 2.1.6(zod@3.23.8)
'@ai-sdk/react': 0.0.70(react@19.0.0)(zod@3.23.8)
'@ai-sdk/solid': 0.0.54(zod@3.23.8)
- '@ai-sdk/svelte': 0.0.57(svelte@5.19.8)(zod@3.23.8)
+ '@ai-sdk/svelte': 0.0.57(svelte@5.19.9)(zod@3.23.8)
'@ai-sdk/ui-utils': 0.0.50(zod@3.23.8)
'@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)
'@opentelemetry/api': 1.9.0
@@ -48961,8 +48370,8 @@ snapshots:
optionalDependencies:
openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
react: 19.0.0
- sswr: 2.1.0(svelte@5.19.8)
- svelte: 5.19.8
+ sswr: 2.1.0(svelte@5.19.9)
+ svelte: 5.19.9
zod: 3.23.8
transitivePeerDependencies:
- solid-js
@@ -49355,7 +48764,7 @@ snapshots:
arweave-stream-tx@1.2.2(arweave@1.15.5):
dependencies:
arweave: 1.15.5
- exponential-backoff: 3.1.1
+ exponential-backoff: 3.1.2
optional: true
arweave@1.15.5:
@@ -49421,7 +48830,7 @@ snapshots:
assertion-error@2.0.1: {}
- assertion-tools@8.0.0-gamma.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3):
+ assertion-tools@8.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3):
dependencies:
ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
jsonld: 8.3.3(web-streams-polyfill@3.3.3)
@@ -50309,7 +49718,7 @@ snapshots:
browserslist@4.24.4:
dependencies:
caniuse-lite: 1.0.30001697
- electron-to-chromium: 1.5.93
+ electron-to-chromium: 1.5.94
node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4)
@@ -51080,12 +50489,6 @@ snapshots:
tree-kill: 1.2.2
yargs: 17.7.2
- condense-newlines@0.2.1:
- dependencies:
- extend-shallow: 2.0.1
- is-whitespace: 0.3.0
- kind-of: 3.2.2
-
confbox@0.1.8: {}
config-chain@1.1.13:
@@ -52284,11 +51687,12 @@ 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.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3):
+ dkg.js@8.0.6(@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.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(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)
+ assertion-tools: 8.0.1(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.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.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ dotenv: 16.4.7
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)
@@ -52465,8 +51869,8 @@ snapshots:
echogarden@2.0.7(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(encoding@0.1.13)(utf-8-validate@5.0.10)(zod@3.24.1):
dependencies:
- '@aws-sdk/client-polly': 3.741.0
- '@aws-sdk/client-transcribe-streaming': 3.741.0
+ '@aws-sdk/client-polly': 3.743.0
+ '@aws-sdk/client-transcribe-streaming': 3.743.0
'@echogarden/audio-io': 0.2.3
'@echogarden/espeak-ng-emscripten': 0.3.3
'@echogarden/fasttext-wasm': 0.1.0
@@ -52531,13 +51935,6 @@ snapshots:
dependencies:
tweetnacl: 1.0.3
- editorconfig@1.0.4:
- dependencies:
- '@one-ini/wasm': 0.1.1
- commander: 10.0.1
- minimatch: 9.0.1
- semver: 7.7.1
-
edwin-sdk@0.3.4(bignumber.js@9.1.2)(bufferutil@4.0.9)(encoding@0.1.13)(reflect-metadata@0.2.2)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@6.0.5):
dependencies:
'@aave/contract-helpers': 1.31.1(bignumber.js@9.1.2)(encoding@0.1.13)(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@6.0.5))(reflect-metadata@0.2.2)(tslib@2.8.1)
@@ -52569,7 +51966,7 @@ snapshots:
dependencies:
jake: 10.9.2
- electron-to-chromium@1.5.93: {}
+ electron-to-chromium@1.5.94: {}
elliptic@6.5.4:
dependencies:
@@ -53725,7 +53122,7 @@ snapshots:
jest-message-util: 29.7.0
jest-util: 29.7.0
- exponential-backoff@3.1.1: {}
+ exponential-backoff@3.1.2: {}
express-prom-bundle@7.0.2(prom-client@15.1.3):
dependencies:
@@ -53795,7 +53192,7 @@ snapshots:
extract-zip@2.0.1:
dependencies:
- debug: 4.4.0(supports-color@8.1.1)
+ debug: 4.3.4
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -54014,7 +53411,7 @@ snapshots:
flash-sdk@2.28.10(@swc/core@1.10.14(@swc/helpers@0.5.15))(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)
- '@pythnetwork/client': 2.22.0(@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)(utf-8-validate@5.0.10)
+ '@pythnetwork/client': 2.22.1(@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)(utf-8-validate@5.0.10)
'@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@solana/spl-token': 0.3.11(@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)
@@ -54042,7 +53439,7 @@ snapshots:
flash-sdk@2.28.10(@swc/core@1.10.14(@swc/helpers@0.5.15))(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)
- '@pythnetwork/client': 2.22.0(@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)(utf-8-validate@5.0.10)
+ '@pythnetwork/client': 2.22.1(@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)(utf-8-validate@5.0.10)
'@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@solana/spl-token': 0.3.11(@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.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -54303,24 +53700,24 @@ snapshots:
fsevents@2.3.3:
optional: true
- fuels@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0)):
+ fuels@0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1)):
dependencies:
- '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/address': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/crypto': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/errors': 0.97.2
- '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/hasher': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/interfaces': 0.97.2
'@fuel-ts/math': 0.97.2
- '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
- '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0))
+ '@fuel-ts/merkle': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/transactions': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
+ '@fuel-ts/utils': 0.97.2(vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1))
'@fuel-ts/versions': 0.97.2
bundle-require: 5.1.0(esbuild@0.24.2)
chalk: 4.1.2
@@ -54831,18 +54228,18 @@ snapshots:
dependencies:
duplexer: 0.1.2
- h3@1.14.0:
+ h3@1.15.0:
dependencies:
cookie-es: 1.2.2
crossws: 0.3.3
defu: 6.1.4
destr: 2.0.3
iron-webcrypto: 1.2.1
+ node-mock-http: 1.0.0
ohash: 1.1.4
radix3: 1.1.2
ufo: 1.5.4
uncrypto: 0.1.3
- unenv: 1.10.0
hachure-fill@0.5.2: {}
@@ -55250,7 +54647,7 @@ snapshots:
he: 1.2.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.38.0
+ terser: 5.38.1
html-minifier-terser@7.2.0:
dependencies:
@@ -55260,7 +54657,7 @@ snapshots:
entities: 4.5.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.38.0
+ terser: 5.38.1
html-tags@3.3.1: {}
@@ -55672,12 +55069,6 @@ snapshots:
dependencies:
loose-envify: 1.4.0
- inversify@6.2.2(reflect-metadata@0.2.2):
- dependencies:
- '@inversifyjs/common': 1.4.0
- '@inversifyjs/core': 1.3.5(reflect-metadata@0.2.2)
- reflect-metadata: 0.2.2
-
invoices@3.0.0:
dependencies:
bech32: 2.0.0
@@ -56032,8 +55423,6 @@ snapshots:
call-bound: 1.0.3
get-intrinsic: 1.2.7
- is-whitespace@0.3.0: {}
-
is-windows@1.0.2: {}
is-wsl@2.2.0:
@@ -57088,16 +56477,6 @@ snapshots:
js-base64@3.7.7: {}
- js-beautify@1.15.1:
- dependencies:
- config-chain: 1.1.13
- editorconfig: 1.0.4
- glob: 10.4.5
- js-cookie: 3.0.5
- nopt: 7.2.1
-
- js-cookie@3.0.5: {}
-
js-git@0.7.8:
dependencies:
bodec: 0.1.0
@@ -57484,7 +56863,7 @@ snapshots:
js-tiktoken: 1.0.15
js-yaml: 4.1.0
jsonpointer: 5.0.1
- langsmith: 0.3.6(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
+ langsmith: 0.3.7(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))
openapi-types: 12.1.3
p-retry: 4.6.2
uuid: 10.0.0
@@ -57650,7 +57029,7 @@ snapshots:
optionalDependencies:
openai: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)
- langsmith@0.3.6(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)):
+ langsmith@0.3.7(openai@4.73.0(encoding@0.1.13)(zod@3.24.1)):
dependencies:
'@types/uuid': 10.0.0
chalk: 4.1.2
@@ -57662,7 +57041,7 @@ snapshots:
optionalDependencies:
openai: 4.73.0(encoding@0.1.13)(zod@3.23.8)
- langsmith@0.3.6(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)):
+ langsmith@0.3.7(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)):
dependencies:
'@types/uuid': 10.0.0
chalk: 4.1.2
@@ -57674,7 +57053,7 @@ snapshots:
optionalDependencies:
openai: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)
- langsmith@0.3.6(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)):
+ langsmith@0.3.7(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)):
dependencies:
'@types/uuid': 10.0.0
chalk: 4.1.2
@@ -57686,7 +57065,7 @@ snapshots:
optionalDependencies:
openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)
- langsmith@0.3.6(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.1)):
+ langsmith@0.3.7(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.24.1)):
dependencies:
'@types/uuid': 10.0.0
chalk: 4.1.2
@@ -58561,7 +57940,7 @@ snapshots:
lodash-es: 4.17.21
marked: 13.0.3
roughjs: 4.6.6
- stylis: 4.3.5
+ stylis: 4.3.6
ts-dedent: 2.2.0
uuid: 9.0.1
transitivePeerDependencies:
@@ -58991,10 +58370,6 @@ snapshots:
dependencies:
brace-expansion: 2.0.1
- minimatch@9.0.1:
- dependencies:
- brace-expansion: 2.0.1
-
minimatch@9.0.3:
dependencies:
brace-expansion: 2.0.1
@@ -59498,7 +58873,7 @@ snapshots:
node-gyp@10.3.1:
dependencies:
env-paths: 2.2.1
- exponential-backoff: 3.1.1
+ exponential-backoff: 3.1.2
glob: 10.4.5
graceful-fs: 4.2.11
make-fetch-happen: 13.0.1
@@ -59584,6 +58959,8 @@ snapshots:
node-machine-id@1.1.12: {}
+ node-mock-http@1.0.0: {}
+
node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.13.1):
dependencies:
accepts: 1.3.8
@@ -61602,12 +60979,6 @@ snapshots:
pretty-time@1.1.0: {}
- pretty@2.0.0:
- dependencies:
- condense-newlines: 0.2.1
- extend-shallow: 2.0.1
- js-beautify: 1.15.1
-
prism-media@1.3.5(@discordjs/opus@https://codeload.github.com/discordjs/opus/tar.gz/679ff3f58e6804b80becc166c7214deb2ca026e2(encoding@0.1.13))(ffmpeg-static@5.2.0):
optionalDependencies:
'@discordjs/opus': https://codeload.github.com/discordjs/opus/tar.gz/679ff3f58e6804b80becc166c7214deb2ca026e2(encoding@0.1.13)
@@ -62074,12 +61445,6 @@ snapshots:
- supports-color
- vue-template-compiler
- react-dom@18.2.0(react@18.2.0):
- dependencies:
- loose-envify: 1.4.0
- react: 18.2.0
- scheduler: 0.23.2
-
react-dom@18.3.1(react@18.3.1):
dependencies:
loose-envify: 1.4.0
@@ -62204,10 +61569,6 @@ snapshots:
react: 18.3.1
react-is: 18.3.1
- react@18.2.0:
- dependencies:
- loose-envify: 1.4.0
-
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -62636,10 +61997,6 @@ snapshots:
requires-port@1.0.0: {}
- resend@2.1.0:
- dependencies:
- '@react-email/render': 0.0.9
-
resolve-alpn@1.2.1: {}
resolve-cwd@3.0.0:
@@ -63477,7 +62834,7 @@ snapshots:
'@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.9)(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.38(openai@4.82.0(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.38(openai@4.82.0(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.44(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))
+ '@langchain/langgraph': 0.2.45(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))
'@langchain/openai': 0.3.17(@langchain/core@0.3.38(openai@4.82.0(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))
'@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(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)
'@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -63560,7 +62917,7 @@ snapshots:
'@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@22.13.1)(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.38(openai@4.82.0(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.38(openai@4.82.0(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.44(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))
+ '@langchain/langgraph': 0.2.45(@langchain/core@0.3.38(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))
'@langchain/openai': 0.3.17(@langchain/core@0.3.38(openai@4.82.0(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))
'@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(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)
'@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)
@@ -63861,9 +63218,9 @@ snapshots:
dependencies:
minipass: 7.1.2
- sswr@2.1.0(svelte@5.19.8):
+ sswr@2.1.0(svelte@5.19.9):
dependencies:
- svelte: 5.19.8
+ svelte: 5.19.9
swrev: 4.0.0
stable-hash@0.0.4: {}
@@ -64161,7 +63518,7 @@ snapshots:
stylis@4.2.0: {}
- stylis@4.3.5: {}
+ stylis@4.3.6: {}
subarg@1.0.0:
dependencies:
@@ -64213,7 +63570,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte@5.19.8:
+ svelte@5.19.9:
dependencies:
'@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0
@@ -64449,12 +63806,12 @@ snapshots:
jest-worker: 27.5.1
schema-utils: 4.3.0
serialize-javascript: 6.0.2
- terser: 5.38.0
+ terser: 5.38.1
webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))
optionalDependencies:
'@swc/core': 1.10.14(@swc/helpers@0.5.15)
- terser@5.38.0:
+ terser@5.38.1:
dependencies:
'@jridgewell/source-map': 0.3.6
acorn: 8.14.0
@@ -64497,7 +63854,7 @@ snapshots:
dependencies:
any-promise: 1.3.0
- thirdweb@5.87.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.87.4(@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)
@@ -64771,7 +64128,7 @@ snapshots:
dependencies:
'@trpc/server': 10.40.0
co-body: 6.2.0
- h3: 1.14.0
+ h3: 1.15.0
lodash.clonedeep: 4.5.0
node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.13.1)
openapi-types: 12.1.3
@@ -65063,11 +64420,11 @@ snapshots:
ts-xor@1.3.0: {}
- tsconfck@3.1.4(typescript@5.6.3):
+ tsconfck@3.1.5(typescript@5.6.3):
optionalDependencies:
typescript: 5.6.3
- tsconfck@3.1.4(typescript@5.7.3):
+ tsconfck@3.1.5(typescript@5.7.3):
optionalDependencies:
typescript: 5.7.3
@@ -65533,14 +64890,6 @@ snapshots:
undici@7.3.0: {}
- unenv@1.10.0:
- dependencies:
- consola: 3.4.0
- defu: 6.1.4
- mime: 3.0.0
- node-fetch-native: 1.6.6
- pathe: 1.1.2
-
unfetch@4.2.0: {}
unicode-9.0.0@0.7.0: {}
@@ -65681,7 +65030,7 @@ snapshots:
anymatch: 3.1.3
chokidar: 3.6.0
destr: 2.0.3
- h3: 1.14.0
+ h3: 1.15.0
lru-cache: 10.4.3
node-fetch-native: 1.6.6
ofetch: 1.4.1
@@ -66054,13 +65403,13 @@ snapshots:
- utf-8-validate
- zod
- vite-node@1.4.0(@types/node@22.13.1)(terser@5.38.0):
+ vite-node@1.4.0(@types/node@22.13.1)(terser@5.38.1):
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.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66072,13 +65421,13 @@ snapshots:
- supports-color
- terser
- vite-node@1.6.1(@types/node@22.13.1)(terser@5.38.0):
+ vite-node@1.6.1(@types/node@22.13.1)(terser@5.38.1):
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.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66090,13 +65439,13 @@ snapshots:
- supports-color
- terser
- vite-node@2.1.9(@types/node@20.17.9)(terser@5.38.0):
+ vite-node@2.1.9(@types/node@20.17.9)(terser@5.38.1):
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@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66108,13 +65457,13 @@ snapshots:
- supports-color
- terser
- vite-node@2.1.9(@types/node@22.13.1)(terser@5.38.0):
+ vite-node@2.1.9(@types/node@22.13.1)(terser@5.38.1):
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.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66126,13 +65475,13 @@ snapshots:
- supports-color
- terser
- vite-node@3.0.5(@types/node@18.19.75)(terser@5.38.0):
+ vite-node@3.0.5(@types/node@18.19.75)(terser@5.38.1):
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@18.19.75)(terser@5.38.0)
+ vite: 5.4.12(@types/node@18.19.75)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66144,13 +65493,13 @@ snapshots:
- supports-color
- terser
- vite-node@3.0.5(@types/node@20.17.9)(terser@5.38.0):
+ vite-node@3.0.5(@types/node@20.17.9)(terser@5.38.1):
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@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66162,13 +65511,13 @@ snapshots:
- supports-color
- terser
- vite-node@3.0.5(@types/node@22.13.1)(terser@5.38.0):
+ vite-node@3.0.5(@types/node@22.13.1)(terser@5.38.1):
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.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66180,13 +65529,13 @@ snapshots:
- supports-color
- terser
- vite-node@3.0.5(@types/node@22.8.4)(terser@5.38.0):
+ vite-node@3.0.5(@types/node@22.8.4)(terser@5.38.1):
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.8.4)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.8.4)(terser@5.38.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -66198,49 +65547,49 @@ snapshots:
- supports-color
- terser
- vite-plugin-compression@0.5.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)):
+ vite-plugin-compression@0.5.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(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.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)
+ vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0)):
+ vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1)):
dependencies:
debug: 4.4.0(supports-color@8.1.1)
globrex: 0.1.2
- tsconfck: 3.1.4(typescript@5.7.3)
+ tsconfck: 3.1.5(typescript@5.7.3)
optionalDependencies:
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
transitivePeerDependencies:
- supports-color
- typescript
- vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)):
+ vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(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)
+ tsconfck: 3.1.5(typescript@5.6.3)
optionalDependencies:
- vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)
+ vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)):
+ vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.1)(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.7.3)
+ tsconfck: 3.1.5(typescript@5.7.3)
optionalDependencies:
- vite: 6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0)
+ vite: 6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@5.4.12(@types/node@18.19.75)(terser@5.38.0):
+ vite@5.4.12(@types/node@18.19.75)(terser@5.38.1):
dependencies:
esbuild: 0.21.5
postcss: 8.5.1
@@ -66248,9 +65597,9 @@ snapshots:
optionalDependencies:
'@types/node': 18.19.75
fsevents: 2.3.3
- terser: 5.38.0
+ terser: 5.38.1
- vite@5.4.12(@types/node@20.17.9)(terser@5.38.0):
+ vite@5.4.12(@types/node@20.17.9)(terser@5.38.1):
dependencies:
esbuild: 0.21.5
postcss: 8.5.1
@@ -66258,9 +65607,9 @@ snapshots:
optionalDependencies:
'@types/node': 20.17.9
fsevents: 2.3.3
- terser: 5.38.0
+ terser: 5.38.1
- vite@5.4.12(@types/node@22.13.1)(terser@5.38.0):
+ vite@5.4.12(@types/node@22.13.1)(terser@5.38.1):
dependencies:
esbuild: 0.21.5
postcss: 8.5.1
@@ -66268,9 +65617,9 @@ snapshots:
optionalDependencies:
'@types/node': 22.13.1
fsevents: 2.3.3
- terser: 5.38.0
+ terser: 5.38.1
- vite@5.4.12(@types/node@22.8.4)(terser@5.38.0):
+ vite@5.4.12(@types/node@22.8.4)(terser@5.38.1):
dependencies:
esbuild: 0.21.5
postcss: 8.5.1
@@ -66278,9 +65627,9 @@ snapshots:
optionalDependencies:
'@types/node': 22.8.4
fsevents: 2.3.3
- terser: 5.38.0
+ terser: 5.38.1
- vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0):
+ vite@6.1.0(@types/node@20.17.9)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0):
dependencies:
esbuild: 0.24.2
postcss: 8.5.1
@@ -66289,12 +65638,12 @@ snapshots:
'@types/node': 20.17.9
fsevents: 2.3.3
jiti: 2.4.2
- terser: 5.38.0
+ terser: 5.38.1
tsx: 4.19.2
yaml: 2.7.0
optional: true
- vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.0)(tsx@4.19.2)(yaml@2.7.0):
+ vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(terser@5.38.1)(tsx@4.19.2)(yaml@2.7.0):
dependencies:
esbuild: 0.24.2
postcss: 8.5.1
@@ -66303,11 +65652,11 @@ snapshots:
'@types/node': 22.13.1
fsevents: 2.3.3
jiti: 2.4.2
- terser: 5.38.0
+ terser: 5.38.1
tsx: 4.19.2
yaml: 2.7.0
- vitest@1.4.0(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@1.4.0(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 1.4.0
'@vitest/runner': 1.4.0
@@ -66326,8 +65675,8 @@ snapshots:
strip-literal: 2.1.1
tinybench: 2.9.0
tinypool: 0.8.4
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 1.4.0(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 1.4.0(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.1
@@ -66342,7 +65691,7 @@ snapshots:
- supports-color
- terser
- vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@1.6.1(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 1.6.1
'@vitest/runner': 1.6.1
@@ -66361,8 +65710,8 @@ snapshots:
strip-literal: 2.1.1
tinybench: 2.9.0
tinypool: 0.8.4
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 1.6.1(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 1.6.1(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.1
@@ -66377,10 +65726,10 @@ snapshots:
- supports-color
- terser
- vitest@2.1.9(@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.38.0):
+ vitest@2.1.9(@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.38.1):
dependencies:
'@vitest/expect': 2.1.9
- '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 2.1.9
'@vitest/runner': 2.1.9
'@vitest/snapshot': 2.1.9
@@ -66396,8 +65745,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 1.2.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 2.1.9(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
+ vite-node: 2.1.9(@types/node@20.17.9)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 20.17.9
@@ -66413,46 +65762,10 @@ snapshots:
- supports-color
- terser
- vitest@2.1.9(@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.38.0):
- dependencies:
- '@vitest/expect': 2.1.9
- '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
- '@vitest/pretty-format': 2.1.9
- '@vitest/runner': 2.1.9
- '@vitest/snapshot': 2.1.9
- '@vitest/spy': 2.1.9
- '@vitest/utils': 2.1.9
- chai: 5.1.2
- debug: 4.4.0(supports-color@8.1.1)
- expect-type: 1.1.0
- magic-string: 0.30.17
- pathe: 1.1.2
- std-env: 3.8.0
- tinybench: 2.9.0
- tinyexec: 0.3.2
- tinypool: 1.0.2
- tinyrainbow: 1.2.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 2.1.9(@types/node@20.17.9)(terser@5.38.0)
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@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)
- transitivePeerDependencies:
- - less
- - lightningcss
- - msw
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
-
- vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0):
+ vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1):
dependencies:
'@vitest/expect': 2.1.9
- '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 2.1.9
'@vitest/runner': 2.1.9
'@vitest/snapshot': 2.1.9
@@ -66468,8 +65781,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 1.2.0
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 2.1.9(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 2.1.9(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.1
@@ -66485,10 +65798,10 @@ snapshots:
- supports-color
- terser
- vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@2.1.9(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 2.1.9
- '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 2.1.9(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 2.1.9
'@vitest/runner': 2.1.9
'@vitest/snapshot': 2.1.9
@@ -66504,8 +65817,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 1.2.0
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 2.1.9(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 2.1.9(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.13.1
@@ -66521,10 +65834,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@types/node@18.19.75)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@18.19.75)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66540,8 +65853,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@18.19.75)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@18.19.75)(terser@5.38.0)
+ vite: 5.4.12(@types/node@18.19.75)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@18.19.75)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66558,10 +65871,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66577,8 +65890,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66596,10 +65909,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.17.9)(@vitest/ui@0.34.7)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@20.17.9)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66615,8 +65928,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66634,10 +65947,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@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.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@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.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66653,8 +65966,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66671,10 +65984,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@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.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@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.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66690,8 +66003,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@20.17.9)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.0)
+ vite: 5.4.12(@types/node@20.17.9)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@20.17.9)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66708,10 +66021,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66727,8 +66040,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66745,10 +66058,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@types/node@22.13.1)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66764,8 +66077,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@22.13.1)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@22.13.1)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.13.1)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@22.13.1)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
@@ -66782,10 +66095,10 @@ snapshots:
- supports-color
- terser
- vitest@3.0.5(@types/debug@4.1.12)(@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.38.0):
+ vitest@3.0.5(@types/debug@4.1.12)(@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.38.1):
dependencies:
'@vitest/expect': 3.0.5
- '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.0))
+ '@vitest/mocker': 3.0.5(vite@5.4.12(@types/node@22.13.1)(terser@5.38.1))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@@ -66801,8 +66114,8 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.12(@types/node@22.8.4)(terser@5.38.0)
- vite-node: 3.0.5(@types/node@22.8.4)(terser@5.38.0)
+ vite: 5.4.12(@types/node@22.8.4)(terser@5.38.1)
+ vite-node: 3.0.5(@types/node@22.8.4)(terser@5.38.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
diff --git a/turbo.json b/turbo.json
index 3a0492e3b8d..4a86680531c 100644
--- a/turbo.json
+++ b/turbo.json
@@ -14,53 +14,6 @@
"outputs": ["dist/**"],
"dependsOn": ["^@elizaos/core#build"]
},
- "@elizaos/client-direct#build": {
- "outputs": ["dist/**"],
- "dependsOn": [
- "@elizaos/plugin-image-generation#build",
- "@elizaos/plugin-tee-log#build"
- ]
- },
- "@elizaos/plugin-solana#build": {
- "outputs": ["dist/**"],
- "dependsOn": [
- "@elizaos/plugin-trustdb#build",
- "@elizaos/plugin-tee#build"
- ]
- },
- "@elizaos/plugin-nft-generation#build": {
- "outputs": ["dist/**"],
- "dependsOn": ["@elizaos/plugin-node#build"]
- },
- "@elizaos/client-direct#build": {
- "outputs": ["dist/**"],
- "dependsOn": ["@elizaos/plugin-tee-verifiable-log#build"]
- },
- "@elizaos/plugin-tee-verifiable-log#build": {
- "outputs": ["dist/**"],
- "dependsOn": ["@elizaos/core#build", "@elizaos/plugin-tee#build"]
- },
- "@elizaos/plugin-evm#build": {
- "outputs": ["dist/**"],
- "dependsOn": ["@elizaos/plugin-tee#build"]
- },
- "@elizaos/plugin-tee-log#build": {
- "outputs": ["dist/**"],
- "dependsOn": [
- "@elizaos/plugin-tee#build",
- "@elizaos/plugin-sgx#build"
- ]
- },
- "@elizaos/plugin-quai#build": {
- "outputs": ["dist/**"],
- "dependsOn": [
- "@elizaos/plugin-trustdb#build"
- ]
- },
- "@elizaos/plugin-lightning#build": {
- "outputs": ["dist/**"],
- "dependsOn": ["@elizaos/plugin-tee#build"]
- },
"eliza-docs#build": {
"outputs": ["build/**"]
},